From 21f01aea9d23e611156d372e5a606f486eac4e73 Mon Sep 17 00:00:00 2001 From: James Date: Wed, 16 Jul 2025 01:17:56 +0100 Subject: [PATCH 01/19] refactor: use yargs for the cli --- .changeset/hungry-ideas-buy.md | 5 + packages/cloudflare/package.json | 4 +- packages/cloudflare/src/cli/args.spec.ts | 38 --- packages/cloudflare/src/cli/args.ts | 227 +++++++++--------- packages/cloudflare/src/cli/commands/build.ts | 21 ++ .../cloudflare/src/cli/commands/deploy.ts | 28 +-- .../src/cli/commands/populate-cache.ts | 49 ++-- .../cloudflare/src/cli/commands/preview.ts | 24 +- .../cloudflare/src/cli/commands/setup-cli.ts | 60 +++++ .../cloudflare/src/cli/commands/upload.ts | 28 +-- packages/cloudflare/src/cli/index.ts | 63 +---- .../src/cli/utils/run-wrangler.spec.ts | 54 ----- .../cloudflare/src/cli/utils/run-wrangler.ts | 51 ---- pnpm-lock.yaml | 63 +++++ pnpm-workspace.yaml | 2 + 15 files changed, 337 insertions(+), 380 deletions(-) create mode 100644 .changeset/hungry-ideas-buy.md delete mode 100644 packages/cloudflare/src/cli/args.spec.ts create mode 100644 packages/cloudflare/src/cli/commands/build.ts create mode 100644 packages/cloudflare/src/cli/commands/setup-cli.ts delete mode 100644 packages/cloudflare/src/cli/utils/run-wrangler.spec.ts diff --git a/.changeset/hungry-ideas-buy.md b/.changeset/hungry-ideas-buy.md new file mode 100644 index 00000000..9d44bce6 --- /dev/null +++ b/.changeset/hungry-ideas-buy.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": minor +--- + +refactor: use yargs for the cli diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index 3c3888bc..16f62e13 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -57,7 +57,8 @@ "cloudflare": "^4.4.1", "enquirer": "^2.4.1", "glob": "catalog:", - "ts-tqdm": "^0.8.6" + "ts-tqdm": "^0.8.6", + "yargs": "catalog:" }, "devDependencies": { "@cloudflare/workers-types": "catalog:", @@ -66,6 +67,7 @@ "@types/mock-fs": "catalog:", "@types/node": "catalog:", "@types/picomatch": "^4.0.0", + "@types/yargs": "catalog:", "diff": "^8.0.2", "esbuild": "catalog:", "eslint": "catalog:", diff --git a/packages/cloudflare/src/cli/args.spec.ts b/packages/cloudflare/src/cli/args.spec.ts deleted file mode 100644 index f4fb0234..00000000 --- a/packages/cloudflare/src/cli/args.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { describe, expect, it } from "vitest"; - -import { getPassthroughArgs } from "./args.js"; - -describe("getPassthroughArgs", () => { - it("should return args not used by the cli", () => { - const args = [ - "pnpm", - "/opennextjs/cloudflare/examples/ssg-app/node_modules/@opennextjs/cloudflare/dist/cli/index.js", - "preview", - "--skipBuild", - "--preview", - "-t", - "-v=1", - "-pre", - "152", - "--pre2=1543", - "--", - "--port", - "1234", - "--inspector-port", - "1234", - ]; - - expect(getPassthroughArgs(args, { options: { skipBuild: { type: "boolean" } } })).toEqual([ - "--preview", - "-t", - "-v=1", - "-pre", - "152", - "--pre2=1543", - "--port", - "1234", - "--inspector-port", - "1234", - ]); - }); -}); diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts index 8669dde5..ab00f06d 100644 --- a/packages/cloudflare/src/cli/args.ts +++ b/packages/cloudflare/src/cli/args.ts @@ -1,127 +1,118 @@ -import { mkdirSync, type Stats, statSync } from "node:fs"; -import { resolve } from "node:path"; -import type { ParseArgsConfig } from "node:util"; -import { parseArgs } from "node:util"; +import yargs from "yargs"; -import type { WranglerTarget } from "./utils/run-wrangler.js"; -import { getWranglerEnvironmentFlag, isWranglerTarget } from "./utils/run-wrangler.js"; +import { buildCommand } from "./commands/build.js"; +import { deployCommand } from "./commands/deploy.js"; +import { populateCacheCommand } from "./commands/populate-cache.js"; +import { previewCommand } from "./commands/preview.js"; +import { uploadCommand } from "./commands/upload.js"; -export type Arguments = ( - | { - command: "build"; - skipNextBuild: boolean; - skipWranglerConfigCheck: boolean; - minify: boolean; - } - | { - command: "preview" | "deploy" | "upload"; - passthroughArgs: string[]; - cacheChunkSize?: number; - } - | { - command: "populateCache"; - target: WranglerTarget; - environment?: string; - cacheChunkSize?: number; - } -) & { outputDir?: string }; - -// Config for parsing CLI arguments -const config = { - allowPositionals: true, - strict: false, - options: { - skipBuild: { type: "boolean", short: "s", default: false }, - output: { type: "string", short: "o" }, - noMinify: { type: "boolean", default: false }, - skipWranglerConfigCheck: { type: "boolean", default: false }, - cacheChunkSize: { type: "string" }, - }, -} as const satisfies ParseArgsConfig; - -export function getArgs(): Arguments { - const { positionals, values } = parseArgs(config); - - const outputDir = typeof values.output === "string" ? resolve(values.output) : undefined; - if (outputDir) assertDirArg(outputDir, "output", true); - - switch (positionals[0]) { - case "build": - return { - command: "build", - outputDir, - skipNextBuild: - !!values.skipBuild || ["1", "true", "yes"].includes(String(process.env.SKIP_NEXT_APP_BUILD)), - skipWranglerConfigCheck: - !!values.skipWranglerConfigCheck || - ["1", "true", "yes"].includes(String(process.env.SKIP_WRANGLER_CONFIG_CHECK)), - minify: !values.noMinify, - }; - case "preview": - case "deploy": - case "upload": - return { - command: positionals[0], - outputDir, - passthroughArgs: getPassthroughArgs(process.argv, config), - ...(values.cacheChunkSize && { cacheChunkSize: Number(values.cacheChunkSize) }), - }; - case "populateCache": - if (!isWranglerTarget(positionals[1])) { - throw new Error(`Error: invalid target for populating the cache, expected 'local' | 'remote'`); - } - return { - command: "populateCache", - outputDir, - target: positionals[1], - environment: getWranglerEnvironmentFlag(process.argv), - ...(values.cacheChunkSize && { cacheChunkSize: Number(values.cacheChunkSize) }), - }; - default: - throw new Error( - "Error: invalid command, expected 'build' | 'preview' | 'deploy' | 'upload' | 'populateCache'" - ); - } +export function runCommand() { + return yargs(process.argv.slice(2)) + .scriptName("opennextjs-cloudflare") + .parserConfiguration({ "unknown-options-as-args": true }) + .command( + "build", + "Build an OpenNext Cloudflare worker", + (c) => + withWranglerOptions(c) + .option("skipNextBuild", { + type: "boolean", + alias: ["skipBuild", "s"], + default: ["1", "true", "yes"].includes(String(process.env.SKIP_NEXT_APP_BUILD)), + desc: "Skip building the Next.js app", + }) + .option("noMinify", { + type: "boolean", + alias: "s", + default: false, + desc: "Disable worker minification", + }) + .option("skipWranglerConfigCheck", { + type: "boolean", + alias: "s", + default: ["1", "true", "yes"].includes(String(process.env.SKIP_WRANGLER_CONFIG_CHECK)), + desc: "Skip checking for a Wrangler config", + }), + (args) => buildCommand(withWranglerPassthroughArgs(args)) + ) + .command( + "preview", + "Preview a built OpenNext app with a Wrangler dev server", + (c) => withPopulateCacheOptions(c), + (args) => previewCommand(withWranglerPassthroughArgs(args)) + ) + .command( + "deploy", + "Deploy a built OpenNext app to Cloudflare Workers", + (c) => withPopulateCacheOptions(c), + (args) => deployCommand(withWranglerPassthroughArgs(args)) + ) + .command( + "upload", + "Upload a built OpenNext app to Cloudflare Workers", + (c) => withPopulateCacheOptions(c), + (args) => uploadCommand(withWranglerPassthroughArgs(args)) + ) + .command("populateCache", "Populate the cache for a built Next.js app", (c) => + c + .command( + "local", + "Local dev server cache", + (c) => withPopulateCacheOptions(c), + (args) => populateCacheCommand("local", withWranglerPassthroughArgs(args)) + ) + .command( + "remote", + "Remote Cloudflare Worker cache", + (c) => withPopulateCacheOptions(c), + (args) => populateCacheCommand("remote", withWranglerPassthroughArgs(args)) + ) + .demandCommand(1, 1) + ) + .demandCommand(1, 1) + .parse(); } -export function getPassthroughArgs(args: string[], { options = {} }: T) { - const passthroughArgs: string[] = []; - - for (let i = 0; i < args.length; i++) { - if (args[i] === "--") { - passthroughArgs.push(...args.slice(i + 1)); - return passthroughArgs; - } - - // look for `--arg(=value)`, `-arg(=value)` - const [, name] = /^--?(\w[\w-]*)(=.+)?$/.exec(args[i]!) ?? []; - if (name && !(name in options)) { - passthroughArgs.push(args[i]!); - - // Array args can have multiple values - // ref https://github.com/yargs/yargs-parser/blob/main/README.md#greedy-arrays - while (i < args.length - 1 && !args[i + 1]?.startsWith("-")) { - passthroughArgs.push(args[++i]!); - } - } - } +function withWranglerOptions(args: T) { + return args + .options("config", { + type: "string", + alias: "c", + desc: "Wrangler config file path", + }) + .options("env", { + type: "string", + alias: "e", + desc: "Wrangler environment", + }); +} - return passthroughArgs; +function withPopulateCacheOptions(args: T) { + return withWranglerOptions(args).options("cacheChunkSize", { + type: "number", + default: 25, + desc: "Number of entries per chunk when populating the cache", + }); } -function assertDirArg(path: string, argName?: string, make?: boolean) { - let dirStats: Stats; - try { - dirStats = statSync(path); - } catch { - if (!make) { - throw new Error(`Error: the provided${argName ? ` "${argName}"` : ""} input is not a valid path`); - } - mkdirSync(path); - return; - } +function getWranglerArgs(args: { + _: (string | number)[]; + config: string | undefined; + env: string | undefined; +}): string[] { + return [ + ...(args.config ? ["--config", args.config] : []), + ...(args.env ? ["--env", args.env] : []), + // Note: the first args in `_` will be the commands. + ...args._.slice(args._[0] === "populateCache" ? 2 : 1).map((a) => `${a}`), + ]; +} - if (!dirStats.isDirectory()) { - throw new Error(`Error: the provided${argName ? ` "${argName}"` : ""} input is not a directory`); - } +function withWranglerPassthroughArgs< + T extends yargs.ArgumentsCamelCase<{ + config: string | undefined; + env: string | undefined; + }>, +>(args: T) { + return { ...args, passthrough: getWranglerArgs(args) }; } diff --git a/packages/cloudflare/src/cli/commands/build.ts b/packages/cloudflare/src/cli/commands/build.ts new file mode 100644 index 00000000..932d48fd --- /dev/null +++ b/packages/cloudflare/src/cli/commands/build.ts @@ -0,0 +1,21 @@ +import { compileOpenNextConfig } from "@opennextjs/aws/build/compileConfig.js"; + +import { build as buildImpl } from "../build/build.js"; +import { createOpenNextConfigIfNotExistent } from "../build/utils/create-config-files.js"; +import { setupCLI } from "./setup-cli.js"; + +export async function buildCommand(args: { + passthrough: string[]; + config: string | undefined; + env: string | undefined; + skipNextBuild: boolean; + noMinify: boolean; + skipWranglerConfigCheck: boolean; +}) { + const { options, config, wranglerConfig, baseDir } = await setupCLI("build", args, async (baseDir) => { + await createOpenNextConfigIfNotExistent(baseDir); + return compileOpenNextConfig(baseDir, undefined, { compileEdge: true }); + }); + + return buildImpl(options, config, { ...args, minify: !args.noMinify, sourceDir: baseDir }, wranglerConfig); +} diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index f8edb26f..41ce9548 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -1,35 +1,33 @@ -import { BuildOptions } from "@opennextjs/aws/build/helper.js"; - -import type { OpenNextConfig } from "../../api/config.js"; import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; import { populateCache } from "./populate-cache.js"; +import type { WithWranglerArgs } from "./setup-cli.js"; +import { setupCompiledAppCLI } from "./setup-cli.js"; import { getDeploymentMapping } from "./skew-protection.js"; -export async function deploy( - options: BuildOptions, - config: OpenNextConfig, - deployOptions: { passthroughArgs: string[]; cacheChunkSize?: number } -) { +export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { + const { options, config, wranglerConfig } = await setupCompiledAppCLI("deploy", args); + const envVars = await getEnvFromPlatformProxy({ - // TODO: Pass the configPath, update everywhere applicable - environment: getWranglerEnvironmentFlag(deployOptions.passthroughArgs), + configPath: args.config, + environment: args.env, }); const deploymentMapping = await getDeploymentMapping(options, config, envVars); - await populateCache(options, config, { + await populateCache(options, config, wranglerConfig, { target: "remote", - environment: getWranglerEnvironmentFlag(deployOptions.passthroughArgs), - cacheChunkSize: deployOptions.cacheChunkSize, + environment: args.env, + configPath: args.config, + cacheChunkSize: args.cacheChunkSize, }); runWrangler( options, [ "deploy", - ...deployOptions.passthroughArgs, + ...args.passthrough, ...(deploymentMapping ? [`--var ${DEPLOYMENT_MAPPING_ENV_NAME}:${quoteShellMeta(JSON.stringify(deploymentMapping))}`] : []), diff --git a/packages/cloudflare/src/cli/commands/populate-cache.ts b/packages/cloudflare/src/cli/commands/populate-cache.ts index 70dbe5e1..7cab5550 100644 --- a/packages/cloudflare/src/cli/commands/populate-cache.ts +++ b/packages/cloudflare/src/cli/commands/populate-cache.ts @@ -12,7 +12,7 @@ import type { import type { IncrementalCache, TagCache } from "@opennextjs/aws/types/overrides.js"; import { globSync } from "glob"; import { tqdm } from "ts-tqdm"; -import { unstable_readConfig } from "wrangler"; +import type { Unstable_Config as WranglerConfig } from "wrangler"; import { BINDING_NAME as KV_CACHE_BINDING_NAME, @@ -37,6 +37,8 @@ import { normalizePath } from "../build/utils/normalize-path.js"; import type { WranglerTarget } from "../utils/run-wrangler.js"; import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; +import type { WithWranglerArgs } from "./setup-cli.js"; +import { setupCompiledAppCLI } from "./setup-cli.js"; async function resolveCacheName( value: @@ -94,14 +96,20 @@ export function getCacheAssets(opts: BuildOptions): CacheAsset[] { return assets; } +type PopulateCacheOptions = { + target: WranglerTarget; + environment?: string; + configPath?: string; + cacheChunkSize?: number; +}; + async function populateR2IncrementalCache( options: BuildOptions, - populateCacheOptions: { target: WranglerTarget; environment?: string } + config: WranglerConfig, + populateCacheOptions: PopulateCacheOptions ) { logger.info("\nPopulating R2 incremental cache..."); - const config = unstable_readConfig({ env: populateCacheOptions.environment }); - const binding = config.r2_buckets.find(({ binding }) => binding === R2_CACHE_BINDING_NAME); if (!binding) { throw new Error(`No R2 binding ${JSON.stringify(R2_CACHE_BINDING_NAME)} found!`); @@ -140,12 +148,11 @@ async function populateR2IncrementalCache( async function populateKVIncrementalCache( options: BuildOptions, - populateCacheOptions: { target: WranglerTarget; environment?: string; cacheChunkSize?: number } + config: WranglerConfig, + populateCacheOptions: PopulateCacheOptions ) { logger.info("\nPopulating KV incremental cache..."); - const config = unstable_readConfig({ env: populateCacheOptions.environment }); - const binding = config.kv_namespaces.find(({ binding }) => binding === KV_CACHE_BINDING_NAME); if (!binding) { throw new Error(`No KV binding ${JSON.stringify(KV_CACHE_BINDING_NAME)} found!`); @@ -190,12 +197,11 @@ async function populateKVIncrementalCache( function populateD1TagCache( options: BuildOptions, - populateCacheOptions: { target: WranglerTarget; environment?: string } + config: WranglerConfig, + populateCacheOptions: PopulateCacheOptions ) { logger.info("\nCreating D1 table if necessary..."); - const config = unstable_readConfig({ env: populateCacheOptions.environment }); - const binding = config.d1_databases.find(({ binding }) => binding === D1_TAG_BINDING_NAME); if (!binding) { throw new Error(`No D1 binding ${JSON.stringify(D1_TAG_BINDING_NAME)} found!`); @@ -229,7 +235,8 @@ function populateStaticAssetsIncrementalCache(options: BuildOptions) { export async function populateCache( options: BuildOptions, config: OpenNextConfig, - populateCacheOptions: { target: WranglerTarget; environment?: string; cacheChunkSize?: number } + wranglerConfig: WranglerConfig, + populateCacheOptions: PopulateCacheOptions ) { const { incrementalCache, tagCache } = config.default.override ?? {}; @@ -242,10 +249,10 @@ export async function populateCache( const name = await resolveCacheName(incrementalCache); switch (name) { case R2_CACHE_NAME: - await populateR2IncrementalCache(options, populateCacheOptions); + await populateR2IncrementalCache(options, wranglerConfig, populateCacheOptions); break; case KV_CACHE_NAME: - await populateKVIncrementalCache(options, populateCacheOptions); + await populateKVIncrementalCache(options, wranglerConfig, populateCacheOptions); break; case STATIC_ASSETS_CACHE_NAME: populateStaticAssetsIncrementalCache(options); @@ -259,10 +266,24 @@ export async function populateCache( const name = await resolveCacheName(tagCache); switch (name) { case D1_TAG_NAME: - populateD1TagCache(options, populateCacheOptions); + populateD1TagCache(options, wranglerConfig, populateCacheOptions); break; default: logger.info("Tag cache does not need populating"); } } } + +export async function populateCacheCommand( + target: "local" | "remote", + args: WithWranglerArgs<{ cacheChunkSize: number }> +) { + const { options, config, wranglerConfig } = await setupCompiledAppCLI("populate cache", args); + + await populateCache(options, config, wranglerConfig, { + target, + environment: args.env, + configPath: args.config, + cacheChunkSize: args.cacheChunkSize, + }); +} diff --git a/packages/cloudflare/src/cli/commands/preview.ts b/packages/cloudflare/src/cli/commands/preview.ts index 9640e535..4872988a 100644 --- a/packages/cloudflare/src/cli/commands/preview.ts +++ b/packages/cloudflare/src/cli/commands/preview.ts @@ -1,19 +1,17 @@ -import { BuildOptions } from "@opennextjs/aws/build/helper.js"; - -import type { OpenNextConfig } from "../../api/config.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { runWrangler } from "../utils/run-wrangler.js"; import { populateCache } from "./populate-cache.js"; +import type { WithWranglerArgs } from "./setup-cli.js"; +import { setupCompiledAppCLI } from "./setup-cli.js"; + +export async function previewCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { + const { options, config, wranglerConfig } = await setupCompiledAppCLI("preview", args); -export async function preview( - options: BuildOptions, - config: OpenNextConfig, - previewOptions: { passthroughArgs: string[]; cacheChunkSize?: number } -) { - await populateCache(options, config, { + await populateCache(options, config, wranglerConfig, { target: "local", - environment: getWranglerEnvironmentFlag(previewOptions.passthroughArgs), - cacheChunkSize: previewOptions.cacheChunkSize, + environment: args.env, + configPath: args.config, + cacheChunkSize: args.cacheChunkSize, }); - runWrangler(options, ["dev", ...previewOptions.passthroughArgs], { logging: "all" }); + runWrangler(options, ["dev", ...args.passthrough], { logging: "all" }); } diff --git a/packages/cloudflare/src/cli/commands/setup-cli.ts b/packages/cloudflare/src/cli/commands/setup-cli.ts new file mode 100644 index 00000000..72a9eed6 --- /dev/null +++ b/packages/cloudflare/src/cli/commands/setup-cli.ts @@ -0,0 +1,60 @@ +import { existsSync } from "node:fs"; +import { createRequire } from "node:module"; +import path from "node:path"; + +import { normalizeOptions } from "@opennextjs/aws/build/helper.js"; +import { printHeader, showWarningOnWindows } from "@opennextjs/aws/build/utils.js"; +import logger from "@opennextjs/aws/logger.js"; +import { unstable_readConfig } from "wrangler"; + +import { OpenNextConfig } from "../../api/config.js"; +import { ensureCloudflareConfig } from "../build/utils/index.js"; + +export type WithWranglerArgs = T & { + passthrough: string[]; + config: string | undefined; + env: string | undefined; +}; + +const nextAppDir = process.cwd(); + +export async function setupCLI( + command: string, + args: WithWranglerArgs, + getOpenNextConfig: (baseDir: string) => Promise<{ config: OpenNextConfig; buildDir: string }> +) { + printHeader(`Cloudflare ${command}`); + + showWarningOnWindows(); + + const baseDir = nextAppDir; + const require = createRequire(import.meta.url); + const openNextDistDir = path.dirname(require.resolve("@opennextjs/aws/index.js")); + + const { config, buildDir } = await getOpenNextConfig(baseDir); + ensureCloudflareConfig(config); + + // Initialize options + const options = normalizeOptions(config, openNextDistDir, buildDir); + logger.setLevel(options.debug ? "debug" : "info"); + + const wranglerConfig = unstable_readConfig({ env: args.env, config: args.config }); + + return { options, config, wranglerConfig, baseDir }; +} + +export function setupCompiledAppCLI(command: string, args: WithWranglerArgs) { + return setupCLI(command, args, async (baseDir) => { + const configPath = path.join(baseDir, ".open-next/.build/open-next.config.edge.mjs"); + + if (!existsSync(configPath)) { + logger.error("Could not find compiled Open Next config"); + process.exit(1); + } + + const config = await import(configPath).then((mod) => mod.default); + + // Note: buildDir is not used when an app is already compiled. + return { config, buildDir: baseDir }; + }); +} diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index 24200abf..4ee3ac8f 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -1,35 +1,33 @@ -import { BuildOptions } from "@opennextjs/aws/build/helper.js"; - -import type { OpenNextConfig } from "../../api/config.js"; import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; import { populateCache } from "./populate-cache.js"; +import type { WithWranglerArgs } from "./setup-cli.js"; +import { setupCompiledAppCLI } from "./setup-cli.js"; import { getDeploymentMapping } from "./skew-protection.js"; -export async function upload( - options: BuildOptions, - config: OpenNextConfig, - uploadOptions: { passthroughArgs: string[]; cacheChunkSize?: number } -) { +export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { + const { options, config, wranglerConfig } = await setupCompiledAppCLI("upload", args); + const envVars = await getEnvFromPlatformProxy({ - // TODO: Pass the configPath, update everywhere applicable - environment: getWranglerEnvironmentFlag(uploadOptions.passthroughArgs), + configPath: args.config, + environment: args.env, }); const deploymentMapping = await getDeploymentMapping(options, config, envVars); - await populateCache(options, config, { + await populateCache(options, config, wranglerConfig, { target: "remote", - environment: getWranglerEnvironmentFlag(uploadOptions.passthroughArgs), - cacheChunkSize: uploadOptions.cacheChunkSize, + environment: args.env, + configPath: args.config, + cacheChunkSize: args.cacheChunkSize, }); runWrangler( options, [ "versions upload", - ...uploadOptions.passthroughArgs, + ...args.passthrough, ...(deploymentMapping ? [`--var ${DEPLOYMENT_MAPPING_ENV_NAME}:${quoteShellMeta(JSON.stringify(deploymentMapping))}`] : []), diff --git a/packages/cloudflare/src/cli/index.ts b/packages/cloudflare/src/cli/index.ts index d3139faf..1f7d0654 100644 --- a/packages/cloudflare/src/cli/index.ts +++ b/packages/cloudflare/src/cli/index.ts @@ -1,63 +1,4 @@ #!/usr/bin/env node -import { createRequire } from "node:module"; -import path from "node:path"; +import { runCommand } from "./args.js"; -import { compileOpenNextConfig } from "@opennextjs/aws/build/compileConfig.js"; -import { normalizeOptions } from "@opennextjs/aws/build/helper.js"; -import { printHeader, showWarningOnWindows } from "@opennextjs/aws/build/utils.js"; -import logger from "@opennextjs/aws/logger.js"; -import { unstable_readConfig } from "wrangler"; - -import { Arguments, getArgs } from "./args.js"; -import { build } from "./build/build.js"; -import { createOpenNextConfigIfNotExistent, ensureCloudflareConfig } from "./build/utils/index.js"; -import { deploy } from "./commands/deploy.js"; -import { populateCache } from "./commands/populate-cache.js"; -import { preview } from "./commands/preview.js"; -import { upload } from "./commands/upload.js"; -import { getWranglerConfigFlag, getWranglerEnvironmentFlag } from "./utils/run-wrangler.js"; - -const nextAppDir = process.cwd(); - -async function runCommand(args: Arguments) { - printHeader(`Cloudflare ${args.command}`); - - showWarningOnWindows(); - - const baseDir = nextAppDir; - const require = createRequire(import.meta.url); - const openNextDistDir = path.dirname(require.resolve("@opennextjs/aws/index.js")); - - // TODO: retrieve the compiled version if command != build - await createOpenNextConfigIfNotExistent(baseDir); - const { config, buildDir } = await compileOpenNextConfig(baseDir, undefined, { - compileEdge: true, - }); - - ensureCloudflareConfig(config); - - // Initialize options - const options = normalizeOptions(config, openNextDistDir, buildDir); - logger.setLevel(options.debug ? "debug" : "info"); - - switch (args.command) { - case "build": { - const argv = process.argv.slice(2); - const wranglerEnv = getWranglerEnvironmentFlag(argv); - const wranglerConfigFile = getWranglerConfigFlag(argv); - const wranglerConfig = unstable_readConfig({ env: wranglerEnv, config: wranglerConfigFile }); - - return build(options, config, { ...args, sourceDir: baseDir }, wranglerConfig); - } - case "preview": - return preview(options, config, args); - case "deploy": - return deploy(options, config, args); - case "upload": - return upload(options, config, args); - case "populateCache": - return populateCache(options, config, args); - } -} - -await runCommand(getArgs()); +await runCommand(); diff --git a/packages/cloudflare/src/cli/utils/run-wrangler.spec.ts b/packages/cloudflare/src/cli/utils/run-wrangler.spec.ts deleted file mode 100644 index 1642bf51..00000000 --- a/packages/cloudflare/src/cli/utils/run-wrangler.spec.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { describe, expect, test } from "vitest"; - -import { getFlagValue, getWranglerConfigFlag, getWranglerEnvironmentFlag } from "./run-wrangler.js"; - -describe("getFlagValue", () => { - test("long", () => { - expect(getFlagValue(["--flag", "value"], "--flag", "-f")).toEqual("value"); - expect(getFlagValue(["--flag=value"], "--flag", "-f")).toEqual("value"); - }); - - test("short", () => { - expect(getFlagValue(["-f", "value"], "--flag", "-f")).toEqual("value"); - expect(getFlagValue(["-f=value"], "--flag", "-f")).toEqual("value"); - }); - - test("not found", () => { - expect(getFlagValue(["--some", "value"], "--other", "-o")).toBeUndefined(); - expect(getFlagValue(["--some=value"], "--other", "-o")).toBeUndefined(); - }); -}); - -describe("getWranglerEnvironmentFlag", () => { - test("long", () => { - expect(getWranglerEnvironmentFlag(["--env", "value"])).toEqual("value"); - expect(getWranglerEnvironmentFlag(["--env=value"])).toEqual("value"); - }); - - test("short", () => { - expect(getWranglerEnvironmentFlag(["-e", "value"])).toEqual("value"); - expect(getWranglerEnvironmentFlag(["-e=value"])).toEqual("value"); - }); - - test("not found", () => { - expect(getWranglerEnvironmentFlag(["--some", "value"])).toBeUndefined(); - expect(getWranglerEnvironmentFlag(["--some=value"])).toBeUndefined(); - }); -}); - -describe("getWranglerConfigFlag", () => { - test("long", () => { - expect(getWranglerConfigFlag(["--config", "path/to/wrangler.jsonc"])).toEqual("path/to/wrangler.jsonc"); - expect(getWranglerConfigFlag(["--config=path/to/wrangler.jsonc"])).toEqual("path/to/wrangler.jsonc"); - }); - - test("short", () => { - expect(getWranglerConfigFlag(["-c", "path/to/wrangler.jsonc"])).toEqual("path/to/wrangler.jsonc"); - expect(getWranglerConfigFlag(["-c=path/to/wrangler.jsonc"])).toEqual("path/to/wrangler.jsonc"); - }); - - test("not found", () => { - expect(getWranglerConfigFlag(["--some", "value"])).toBeUndefined(); - expect(getWranglerConfigFlag(["--some=value"])).toBeUndefined(); - }); -}); diff --git a/packages/cloudflare/src/cli/utils/run-wrangler.ts b/packages/cloudflare/src/cli/utils/run-wrangler.ts index 2ecb3cfb..f7dd5eb0 100644 --- a/packages/cloudflare/src/cli/utils/run-wrangler.ts +++ b/packages/cloudflare/src/cli/utils/run-wrangler.ts @@ -93,54 +93,3 @@ export function runWrangler(options: BuildOptions, args: string[], wranglerOpts: export function isWranglerTarget(v: string | undefined): v is WranglerTarget { return !!v && ["local", "remote"].includes(v); } - -/** - * Returns the value of the flag. - * - * The value is retrieved for ` value` or `=value`. - * - * @param args List of args - * @param argName The arg name with leading dashes, i.e. `--env` or `-e` - * @returns The value or undefined when not found - */ -export function getFlagValue(args: string[], ...argNames: string[]): string | undefined { - if (argNames.some((name) => !name.startsWith("-"))) { - // Names should start with "-" or "--" - throw new Error(`Invalid arg names: ${argNames}`); - } - - for (const argName of argNames) { - for (let i = 0; i <= args.length; i++) { - const arg = args[i]; - if (!arg) continue; - - if (arg === argName) { - return args[i + 1]; - } - - if (arg.startsWith(argName)) { - return arg.split("=")[1]; - } - } - } -} - -/** - * Find the value of the environment flag (`--env` / `-e`) used by Wrangler. - * - * @param args - CLI arguments. - * @returns Value of the environment flag or undefined when not found - */ -export function getWranglerEnvironmentFlag(args: string[]): string | undefined { - return getFlagValue(args, "--env", "-e"); -} - -/** - * Find the value of the config flag (`--config` / `-c`) used by Wrangler. - * - * @param args - CLI arguments. - * @returns Value of the config flag or undefined when not found - */ -export function getWranglerConfigFlag(args: string[]): string | undefined { - return getFlagValue(args, "--config", "-c"); -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4718c6c1..18d4da17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,6 +33,9 @@ catalogs: '@types/react-dom': specifier: ^18 version: 18.3.0 + '@types/yargs': + specifier: ^17.0.33 + version: 17.0.33 esbuild: specifier: ^0.25.4 version: 0.25.4 @@ -84,6 +87,9 @@ catalogs: wrangler: specifier: ^4.24.4 version: 4.24.4 + yargs: + specifier: ^18.0.0 + version: 18.0.0 e2e: '@types/node': specifier: 20.17.6 @@ -1052,6 +1058,9 @@ importers: wrangler: specifier: 'catalog:' version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + yargs: + specifier: 'catalog:' + version: 18.0.0 devDependencies: '@cloudflare/workers-types': specifier: 'catalog:' @@ -1071,6 +1080,9 @@ importers: '@types/picomatch': specifier: ^4.0.0 version: 4.0.0 + '@types/yargs': + specifier: 'catalog:' + version: 17.0.33 diff: specifier: ^8.0.2 version: 8.0.2 @@ -4810,6 +4822,12 @@ packages: '@types/ws@8.5.14': resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@8.7.0': resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5377,6 +5395,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + cloudflare@4.4.1: resolution: {integrity: sha512-wrtQ9WMflnfRcmdQZf/XfVVkeucgwzzYeqFDfgbNdADTaexsPwrtt3etzUvPGvVUeEk9kOPfNkl8MSzObxrIsg==} @@ -9487,6 +9509,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -9537,10 +9563,18 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yauzl-clone@1.0.4: resolution: {integrity: sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==} engines: {node: '>=6'} @@ -14335,6 +14369,12 @@ snapshots: dependencies: '@types/node': 20.14.10 + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -15159,6 +15199,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + cloudflare@4.4.1: dependencies: '@types/node': 18.19.112 @@ -20568,6 +20614,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} ws@8.18.0: {} @@ -20595,6 +20647,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -20605,6 +20659,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yauzl-clone@1.0.4: dependencies: events-intercept: 2.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5d29848b..63b3fa91 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,6 +17,7 @@ catalog: "@types/node": ^22.2.0 "@types/react-dom": ^18 "@types/react": ^18 + "@types/yargs": ^17.0.33 esbuild: ^0.25.4 eslint-plugin-import: ^2.31.0 eslint-plugin-simple-import-sort: ^12.1.1 @@ -35,6 +36,7 @@ catalog: typescript: ^5.7.3 vitest: ^2.1.1 wrangler: ^4.24.4 + yargs: ^18.0.0 # e2e tests catalogs: From dd5ffd640ea84df3fb9ffd210e99d730f4d9f565 Mon Sep 17 00:00:00 2001 From: James Date: Wed, 16 Jul 2025 08:35:33 +0100 Subject: [PATCH 02/19] fix e2e environment passing now that `--env` is a proper first class citizen --- examples/common/config-e2e.ts | 4 ++-- packages/cloudflare/src/cli/args.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/common/config-e2e.ts b/examples/common/config-e2e.ts index f67421d8..f53fec7e 100644 --- a/examples/common/config-e2e.ts +++ b/examples/common/config-e2e.ts @@ -26,11 +26,11 @@ export function configurePlaywright( const env = app === "r2-incremental-cache" ? "--env e2e" : ""; if (isCI) { // Do not build on CI - there is a preceding build step - command = `pnpm preview:worker -- --port ${port} --inspector-port ${inspectorPort} ${env}`; + command = `pnpm preview:worker ${env} -- --port ${port} --inspector-port ${inspectorPort}`; timeout = 100_000; } else { timeout = 500_000; - command = `pnpm preview -- --port ${port} --inspector-port ${inspectorPort} ${env}`; + command = `pnpm preview ${env} -- --port ${port} --inspector-port ${inspectorPort}`; } } else { timeout = 100_000; diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts index ab00f06d..ebcef1bc 100644 --- a/packages/cloudflare/src/cli/args.ts +++ b/packages/cloudflare/src/cli/args.ts @@ -78,12 +78,12 @@ function withWranglerOptions(args: T) { .options("config", { type: "string", alias: "c", - desc: "Wrangler config file path", + desc: "Path to Wrangler configuration file", }) .options("env", { type: "string", alias: "e", - desc: "Wrangler environment", + desc: "Wrangler environment to use for operations", }); } From bd6e31409c86a307893a1a0f4667a9900d762f26 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 09:35:06 +0100 Subject: [PATCH 03/19] remove accidental aliases --- packages/cloudflare/src/cli/args.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts index ebcef1bc..5fe6da77 100644 --- a/packages/cloudflare/src/cli/args.ts +++ b/packages/cloudflare/src/cli/args.ts @@ -23,13 +23,11 @@ export function runCommand() { }) .option("noMinify", { type: "boolean", - alias: "s", default: false, desc: "Disable worker minification", }) .option("skipWranglerConfigCheck", { type: "boolean", - alias: "s", default: ["1", "true", "yes"].includes(String(process.env.SKIP_WRANGLER_CONFIG_CHECK)), desc: "Skip checking for a Wrangler config", }), From 1da65f2f4e84c70f07baf225812f6beb6057a1c2 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 09:36:38 +0100 Subject: [PATCH 04/19] passthrough -> wranglerArgs --- packages/cloudflare/src/cli/args.ts | 2 +- packages/cloudflare/src/cli/commands/build.ts | 2 +- packages/cloudflare/src/cli/commands/deploy.ts | 2 +- packages/cloudflare/src/cli/commands/preview.ts | 2 +- packages/cloudflare/src/cli/commands/setup-cli.ts | 2 +- packages/cloudflare/src/cli/commands/upload.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts index 5fe6da77..1a082a5f 100644 --- a/packages/cloudflare/src/cli/args.ts +++ b/packages/cloudflare/src/cli/args.ts @@ -112,5 +112,5 @@ function withWranglerPassthroughArgs< env: string | undefined; }>, >(args: T) { - return { ...args, passthrough: getWranglerArgs(args) }; + return { ...args, wranglerArgs: getWranglerArgs(args) }; } diff --git a/packages/cloudflare/src/cli/commands/build.ts b/packages/cloudflare/src/cli/commands/build.ts index 932d48fd..c4a38bb0 100644 --- a/packages/cloudflare/src/cli/commands/build.ts +++ b/packages/cloudflare/src/cli/commands/build.ts @@ -5,7 +5,7 @@ import { createOpenNextConfigIfNotExistent } from "../build/utils/create-config- import { setupCLI } from "./setup-cli.js"; export async function buildCommand(args: { - passthrough: string[]; + wranglerArgs: string[]; config: string | undefined; env: string | undefined; skipNextBuild: boolean; diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index 41ce9548..be0c9209 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -27,7 +27,7 @@ export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: num options, [ "deploy", - ...args.passthrough, + ...args.wranglerArgs, ...(deploymentMapping ? [`--var ${DEPLOYMENT_MAPPING_ENV_NAME}:${quoteShellMeta(JSON.stringify(deploymentMapping))}`] : []), diff --git a/packages/cloudflare/src/cli/commands/preview.ts b/packages/cloudflare/src/cli/commands/preview.ts index 4872988a..37f71181 100644 --- a/packages/cloudflare/src/cli/commands/preview.ts +++ b/packages/cloudflare/src/cli/commands/preview.ts @@ -13,5 +13,5 @@ export async function previewCommand(args: WithWranglerArgs<{ cacheChunkSize: nu cacheChunkSize: args.cacheChunkSize, }); - runWrangler(options, ["dev", ...args.passthrough], { logging: "all" }); + runWrangler(options, ["dev", ...args.wranglerArgs], { logging: "all" }); } diff --git a/packages/cloudflare/src/cli/commands/setup-cli.ts b/packages/cloudflare/src/cli/commands/setup-cli.ts index 72a9eed6..1b5a7e56 100644 --- a/packages/cloudflare/src/cli/commands/setup-cli.ts +++ b/packages/cloudflare/src/cli/commands/setup-cli.ts @@ -11,7 +11,7 @@ import { OpenNextConfig } from "../../api/config.js"; import { ensureCloudflareConfig } from "../build/utils/index.js"; export type WithWranglerArgs = T & { - passthrough: string[]; + wranglerArgs: string[]; config: string | undefined; env: string | undefined; }; diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index 4ee3ac8f..fe036482 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -27,7 +27,7 @@ export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: num options, [ "versions upload", - ...args.passthrough, + ...args.wranglerArgs, ...(deploymentMapping ? [`--var ${DEPLOYMENT_MAPPING_ENV_NAME}:${quoteShellMeta(JSON.stringify(deploymentMapping))}`] : []), From b2795b5972b5943a54f2b62de9332619b155a878 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 09:41:51 +0100 Subject: [PATCH 05/19] jsdoc comments --- packages/cloudflare/src/cli/commands/setup-cli.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/cloudflare/src/cli/commands/setup-cli.ts b/packages/cloudflare/src/cli/commands/setup-cli.ts index 1b5a7e56..b2eadba8 100644 --- a/packages/cloudflare/src/cli/commands/setup-cli.ts +++ b/packages/cloudflare/src/cli/commands/setup-cli.ts @@ -18,6 +18,14 @@ export type WithWranglerArgs = T & { const nextAppDir = process.cwd(); +/** + * Setup the CLI, print necessary messages, and retrieve various options and configs. + * + * @param command + * @param args + * @param getOpenNextConfig - Function that resolves to a config file + * @returns CLI options, OpenNext config, and Wrangler config + */ export async function setupCLI( command: string, args: WithWranglerArgs, @@ -43,6 +51,13 @@ export async function setupCLI( return { options, config, wranglerConfig, baseDir }; } +/** + * Setup the CLI, print necessary messages, and resolve the compiled OpenNext config. + * + * @param command + * @param args + * @returns CLI config + */ export function setupCompiledAppCLI(command: string, args: WithWranglerArgs) { return setupCLI(command, args, async (baseDir) => { const configPath = path.join(baseDir, ".open-next/.build/open-next.config.edge.mjs"); From df1cf00769107548dbf8e8ce837d80bbdd15acc1 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 09:53:33 +0100 Subject: [PATCH 06/19] move adding commands to their own files --- packages/cloudflare/src/cli/args.ts | 121 ++---------------- packages/cloudflare/src/cli/commands/build.ts | 31 ++++- .../cloudflare/src/cli/commands/deploy.ts | 15 ++- .../src/cli/commands/populate-cache.ts | 30 ++++- .../cloudflare/src/cli/commands/preview.ts | 15 ++- .../cloudflare/src/cli/commands/setup-cli.ts | 37 ++++++ .../cloudflare/src/cli/commands/upload.ts | 15 ++- 7 files changed, 147 insertions(+), 117 deletions(-) diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts index 1a082a5f..f4bf9a9f 100644 --- a/packages/cloudflare/src/cli/args.ts +++ b/packages/cloudflare/src/cli/args.ts @@ -1,116 +1,21 @@ import yargs from "yargs"; -import { buildCommand } from "./commands/build.js"; -import { deployCommand } from "./commands/deploy.js"; -import { populateCacheCommand } from "./commands/populate-cache.js"; -import { previewCommand } from "./commands/preview.js"; -import { uploadCommand } from "./commands/upload.js"; +import { addBuildCommand } from "./commands/build.js"; +import { addDeployCommand } from "./commands/deploy.js"; +import { addPopulateCacheCommand } from "./commands/populate-cache.js"; +import { addPreviewCommand } from "./commands/preview.js"; +import { addUploadCommand } from "./commands/upload.js"; export function runCommand() { - return yargs(process.argv.slice(2)) + let y = yargs(process.argv.slice(2)) .scriptName("opennextjs-cloudflare") - .parserConfiguration({ "unknown-options-as-args": true }) - .command( - "build", - "Build an OpenNext Cloudflare worker", - (c) => - withWranglerOptions(c) - .option("skipNextBuild", { - type: "boolean", - alias: ["skipBuild", "s"], - default: ["1", "true", "yes"].includes(String(process.env.SKIP_NEXT_APP_BUILD)), - desc: "Skip building the Next.js app", - }) - .option("noMinify", { - type: "boolean", - default: false, - desc: "Disable worker minification", - }) - .option("skipWranglerConfigCheck", { - type: "boolean", - default: ["1", "true", "yes"].includes(String(process.env.SKIP_WRANGLER_CONFIG_CHECK)), - desc: "Skip checking for a Wrangler config", - }), - (args) => buildCommand(withWranglerPassthroughArgs(args)) - ) - .command( - "preview", - "Preview a built OpenNext app with a Wrangler dev server", - (c) => withPopulateCacheOptions(c), - (args) => previewCommand(withWranglerPassthroughArgs(args)) - ) - .command( - "deploy", - "Deploy a built OpenNext app to Cloudflare Workers", - (c) => withPopulateCacheOptions(c), - (args) => deployCommand(withWranglerPassthroughArgs(args)) - ) - .command( - "upload", - "Upload a built OpenNext app to Cloudflare Workers", - (c) => withPopulateCacheOptions(c), - (args) => uploadCommand(withWranglerPassthroughArgs(args)) - ) - .command("populateCache", "Populate the cache for a built Next.js app", (c) => - c - .command( - "local", - "Local dev server cache", - (c) => withPopulateCacheOptions(c), - (args) => populateCacheCommand("local", withWranglerPassthroughArgs(args)) - ) - .command( - "remote", - "Remote Cloudflare Worker cache", - (c) => withPopulateCacheOptions(c), - (args) => populateCacheCommand("remote", withWranglerPassthroughArgs(args)) - ) - .demandCommand(1, 1) - ) - .demandCommand(1, 1) - .parse(); -} - -function withWranglerOptions(args: T) { - return args - .options("config", { - type: "string", - alias: "c", - desc: "Path to Wrangler configuration file", - }) - .options("env", { - type: "string", - alias: "e", - desc: "Wrangler environment to use for operations", - }); -} + .parserConfiguration({ "unknown-options-as-args": true }); -function withPopulateCacheOptions(args: T) { - return withWranglerOptions(args).options("cacheChunkSize", { - type: "number", - default: 25, - desc: "Number of entries per chunk when populating the cache", - }); -} - -function getWranglerArgs(args: { - _: (string | number)[]; - config: string | undefined; - env: string | undefined; -}): string[] { - return [ - ...(args.config ? ["--config", args.config] : []), - ...(args.env ? ["--env", args.env] : []), - // Note: the first args in `_` will be the commands. - ...args._.slice(args._[0] === "populateCache" ? 2 : 1).map((a) => `${a}`), - ]; -} + y = addBuildCommand(y); + y = addPreviewCommand(y); + y = addDeployCommand(y); + y = addUploadCommand(y); + y = addPopulateCacheCommand(y); -function withWranglerPassthroughArgs< - T extends yargs.ArgumentsCamelCase<{ - config: string | undefined; - env: string | undefined; - }>, ->(args: T) { - return { ...args, wranglerArgs: getWranglerArgs(args) }; + return y.demandCommand(1, 1).parse(); } diff --git a/packages/cloudflare/src/cli/commands/build.ts b/packages/cloudflare/src/cli/commands/build.ts index c4a38bb0..dfe6c661 100644 --- a/packages/cloudflare/src/cli/commands/build.ts +++ b/packages/cloudflare/src/cli/commands/build.ts @@ -1,10 +1,11 @@ import { compileOpenNextConfig } from "@opennextjs/aws/build/compileConfig.js"; +import type yargs from "yargs"; import { build as buildImpl } from "../build/build.js"; import { createOpenNextConfigIfNotExistent } from "../build/utils/create-config-files.js"; -import { setupCLI } from "./setup-cli.js"; +import { setupCLI, withWranglerOptions, withWranglerPassthroughArgs } from "./setup-cli.js"; -export async function buildCommand(args: { +async function buildCommand(args: { wranglerArgs: string[]; config: string | undefined; env: string | undefined; @@ -19,3 +20,29 @@ export async function buildCommand(args: { return buildImpl(options, config, { ...args, minify: !args.noMinify, sourceDir: baseDir }, wranglerConfig); } + +export function addBuildCommand(y: T) { + return y.command( + "build", + "Build an OpenNext Cloudflare worker", + (c) => + withWranglerOptions(c) + .option("skipNextBuild", { + type: "boolean", + alias: ["skipBuild", "s"], + default: ["1", "true", "yes"].includes(String(process.env.SKIP_NEXT_APP_BUILD)), + desc: "Skip building the Next.js app", + }) + .option("noMinify", { + type: "boolean", + default: false, + desc: "Disable worker minification", + }) + .option("skipWranglerConfigCheck", { + type: "boolean", + default: ["1", "true", "yes"].includes(String(process.env.SKIP_WRANGLER_CONFIG_CHECK)), + desc: "Skip checking for a Wrangler config", + }), + (args) => buildCommand(withWranglerPassthroughArgs(args)) + ); +} diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index be0c9209..5adc8f9f 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -1,9 +1,11 @@ +import type yargs from "yargs"; + import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; -import { populateCache } from "./populate-cache.js"; +import { populateCache, withPopulateCacheOptions } from "./populate-cache.js"; import type { WithWranglerArgs } from "./setup-cli.js"; -import { setupCompiledAppCLI } from "./setup-cli.js"; +import { setupCompiledAppCLI, withWranglerPassthroughArgs } from "./setup-cli.js"; import { getDeploymentMapping } from "./skew-protection.js"; export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { @@ -37,3 +39,12 @@ export async function deployCommand(args: WithWranglerArgs<{ cacheChunkSize: num } ); } + +export function addDeployCommand(y: T) { + return y.command( + "deploy", + "Deploy a built OpenNext app to Cloudflare Workers", + (c) => withPopulateCacheOptions(c), + (args) => deployCommand(withWranglerPassthroughArgs(args)) + ); +} diff --git a/packages/cloudflare/src/cli/commands/populate-cache.ts b/packages/cloudflare/src/cli/commands/populate-cache.ts index 7cab5550..c183ca2d 100644 --- a/packages/cloudflare/src/cli/commands/populate-cache.ts +++ b/packages/cloudflare/src/cli/commands/populate-cache.ts @@ -13,6 +13,7 @@ import type { IncrementalCache, TagCache } from "@opennextjs/aws/types/overrides import { globSync } from "glob"; import { tqdm } from "ts-tqdm"; import type { Unstable_Config as WranglerConfig } from "wrangler"; +import type yargs from "yargs"; import { BINDING_NAME as KV_CACHE_BINDING_NAME, @@ -38,7 +39,7 @@ import type { WranglerTarget } from "../utils/run-wrangler.js"; import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; import type { WithWranglerArgs } from "./setup-cli.js"; -import { setupCompiledAppCLI } from "./setup-cli.js"; +import { setupCompiledAppCLI, withWranglerOptions, withWranglerPassthroughArgs } from "./setup-cli.js"; async function resolveCacheName( value: @@ -287,3 +288,30 @@ export async function populateCacheCommand( cacheChunkSize: args.cacheChunkSize, }); } + +export function addPopulateCacheCommand(y: T) { + return y.command("populateCache", "Populate the cache for a built Next.js app", (c) => + c + .command( + "local", + "Local dev server cache", + (c) => withPopulateCacheOptions(c), + (args) => populateCacheCommand("local", withWranglerPassthroughArgs(args)) + ) + .command( + "remote", + "Remote Cloudflare Worker cache", + (c) => withPopulateCacheOptions(c), + (args) => populateCacheCommand("remote", withWranglerPassthroughArgs(args)) + ) + .demandCommand(1, 1) + ); +} + +export function withPopulateCacheOptions(args: T) { + return withWranglerOptions(args).options("cacheChunkSize", { + type: "number", + default: 25, + desc: "Number of entries per chunk when populating the cache", + }); +} diff --git a/packages/cloudflare/src/cli/commands/preview.ts b/packages/cloudflare/src/cli/commands/preview.ts index 37f71181..966b8e1b 100644 --- a/packages/cloudflare/src/cli/commands/preview.ts +++ b/packages/cloudflare/src/cli/commands/preview.ts @@ -1,7 +1,9 @@ +import type yargs from "yargs"; + import { runWrangler } from "../utils/run-wrangler.js"; -import { populateCache } from "./populate-cache.js"; +import { populateCache, withPopulateCacheOptions } from "./populate-cache.js"; import type { WithWranglerArgs } from "./setup-cli.js"; -import { setupCompiledAppCLI } from "./setup-cli.js"; +import { setupCompiledAppCLI, withWranglerPassthroughArgs } from "./setup-cli.js"; export async function previewCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { const { options, config, wranglerConfig } = await setupCompiledAppCLI("preview", args); @@ -15,3 +17,12 @@ export async function previewCommand(args: WithWranglerArgs<{ cacheChunkSize: nu runWrangler(options, ["dev", ...args.wranglerArgs], { logging: "all" }); } + +export function addPreviewCommand(y: T) { + return y.command( + "preview", + "Preview a built OpenNext app with a Wrangler dev server", + (c) => withPopulateCacheOptions(c), + (args) => previewCommand(withWranglerPassthroughArgs(args)) + ); +} diff --git a/packages/cloudflare/src/cli/commands/setup-cli.ts b/packages/cloudflare/src/cli/commands/setup-cli.ts index b2eadba8..c2e86fc7 100644 --- a/packages/cloudflare/src/cli/commands/setup-cli.ts +++ b/packages/cloudflare/src/cli/commands/setup-cli.ts @@ -6,6 +6,7 @@ import { normalizeOptions } from "@opennextjs/aws/build/helper.js"; import { printHeader, showWarningOnWindows } from "@opennextjs/aws/build/utils.js"; import logger from "@opennextjs/aws/logger.js"; import { unstable_readConfig } from "wrangler"; +import type yargs from "yargs"; import { OpenNextConfig } from "../../api/config.js"; import { ensureCloudflareConfig } from "../build/utils/index.js"; @@ -73,3 +74,39 @@ export function setupCompiledAppCLI(command: string, args: WithWranglerArgs) { return { config, buildDir: baseDir }; }); } + +export function withWranglerOptions(args: T) { + return args + .options("config", { + type: "string", + alias: "c", + desc: "Path to Wrangler configuration file", + }) + .options("env", { + type: "string", + alias: "e", + desc: "Wrangler environment to use for operations", + }); +} + +function getWranglerArgs(args: { + _: (string | number)[]; + config: string | undefined; + env: string | undefined; +}): string[] { + return [ + ...(args.config ? ["--config", args.config] : []), + ...(args.env ? ["--env", args.env] : []), + // Note: the first args in `_` will be the commands. + ...args._.slice(args._[0] === "populateCache" ? 2 : 1).map((a) => `${a}`), + ]; +} + +export function withWranglerPassthroughArgs< + T extends yargs.ArgumentsCamelCase<{ + config: string | undefined; + env: string | undefined; + }>, +>(args: T) { + return { ...args, wranglerArgs: getWranglerArgs(args) }; +} diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index fe036482..34ec8e0e 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -1,9 +1,11 @@ +import type yargs from "yargs"; + import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; import { runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; -import { populateCache } from "./populate-cache.js"; +import { populateCache, withPopulateCacheOptions } from "./populate-cache.js"; import type { WithWranglerArgs } from "./setup-cli.js"; -import { setupCompiledAppCLI } from "./setup-cli.js"; +import { setupCompiledAppCLI, withWranglerPassthroughArgs } from "./setup-cli.js"; import { getDeploymentMapping } from "./skew-protection.js"; export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: number }>) { @@ -35,3 +37,12 @@ export async function uploadCommand(args: WithWranglerArgs<{ cacheChunkSize: num { logging: "all" } ); } + +export function addUploadCommand(y: T) { + return y.command( + "upload", + "Upload a built OpenNext app to Cloudflare Workers", + (c) => withPopulateCacheOptions(c), + (args) => uploadCommand(withWranglerPassthroughArgs(args)) + ); +} From c7b998a755a7ab91f137c21745430c4777dbed7a Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 09:54:14 +0100 Subject: [PATCH 07/19] remove args.ts file --- packages/cloudflare/src/cli/args.ts | 21 --------------------- packages/cloudflare/src/cli/index.ts | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 packages/cloudflare/src/cli/args.ts diff --git a/packages/cloudflare/src/cli/args.ts b/packages/cloudflare/src/cli/args.ts deleted file mode 100644 index f4bf9a9f..00000000 --- a/packages/cloudflare/src/cli/args.ts +++ /dev/null @@ -1,21 +0,0 @@ -import yargs from "yargs"; - -import { addBuildCommand } from "./commands/build.js"; -import { addDeployCommand } from "./commands/deploy.js"; -import { addPopulateCacheCommand } from "./commands/populate-cache.js"; -import { addPreviewCommand } from "./commands/preview.js"; -import { addUploadCommand } from "./commands/upload.js"; - -export function runCommand() { - let y = yargs(process.argv.slice(2)) - .scriptName("opennextjs-cloudflare") - .parserConfiguration({ "unknown-options-as-args": true }); - - y = addBuildCommand(y); - y = addPreviewCommand(y); - y = addDeployCommand(y); - y = addUploadCommand(y); - y = addPopulateCacheCommand(y); - - return y.demandCommand(1, 1).parse(); -} diff --git a/packages/cloudflare/src/cli/index.ts b/packages/cloudflare/src/cli/index.ts index 1f7d0654..51c81d4c 100644 --- a/packages/cloudflare/src/cli/index.ts +++ b/packages/cloudflare/src/cli/index.ts @@ -1,4 +1,25 @@ #!/usr/bin/env node -import { runCommand } from "./args.js"; + +import yargs from "yargs"; + +import { addBuildCommand } from "./commands/build.js"; +import { addDeployCommand } from "./commands/deploy.js"; +import { addPopulateCacheCommand } from "./commands/populate-cache.js"; +import { addPreviewCommand } from "./commands/preview.js"; +import { addUploadCommand } from "./commands/upload.js"; + +export function runCommand() { + let y = yargs(process.argv.slice(2)) + .scriptName("opennextjs-cloudflare") + .parserConfiguration({ "unknown-options-as-args": true }); + + y = addBuildCommand(y); + y = addPreviewCommand(y); + y = addDeployCommand(y); + y = addUploadCommand(y); + y = addPopulateCacheCommand(y); + + return y.demandCommand(1, 1).parse(); +} await runCommand(); From 8c1e059ce433dc30fa1c2d3402251b0b0e57eacb Mon Sep 17 00:00:00 2001 From: James Date: Thu, 17 Jul 2025 10:17:18 +0100 Subject: [PATCH 08/19] bump eslint due to typescript-eslint/issues/10353 --- .../.changeset}/README.md | 0 .../.changeset}/config.json | 0 .../.changeset}/empty-garlics-lead.md | 0 .../.changeset}/hungry-ideas-buy.md | 0 .../.editorconfig | 0 .../.github}/ISSUE_TEMPLATE/1.bug_report.yml | 0 .../ISSUE_TEMPLATE/2.feature_request.yml | 0 .../.github}/ISSUE_TEMPLATE/config.yml | 0 .../actions/install-dependencies/action.yml | 0 .../actions/setup-playwright/action.yml | 0 .../.github}/workflows/changesets.yml | 0 .../.github}/workflows/checks.yml | 0 .../.github}/workflows/playwright.yml | 0 .../.github}/workflows/prereleases.yml | 0 .gitignore => .auto-resolution/.gitignore | 0 .../.prettierignore | 0 .prettierrc => .auto-resolution/.prettierrc | 0 .../.vscode}/settings.json | 0 .../CONTRIBUTING.md | 0 LICENSE => .auto-resolution/LICENSE | 0 README.md => .auto-resolution/README.md | 0 .../benchmarking}/.gitignore | 0 .../benchmarking}/README.md | 0 .../benchmarking}/package.json | 0 .../benchmarking}/src/benchmarking.ts | 0 .../benchmarking}/src/cloudflare.ts | 0 .../benchmarking}/src/index.ts | 0 .../benchmarking}/src/utils.ts | 0 .../benchmarking}/tsconfig.json | 0 .../examples}/bugs/gh-119/.eslintrc.json | 0 .../examples}/bugs/gh-119/.gitignore | 0 .../examples}/bugs/gh-119/README.md | 0 .../examples}/bugs/gh-119/app/favicon.ico | Bin .../bugs/gh-119/app/fonts/GeistMonoVF.woff | Bin .../bugs/gh-119/app/fonts/GeistVF.woff | Bin .../examples}/bugs/gh-119/app/globals.css | 0 .../examples}/bugs/gh-119/app/layout.tsx | 0 .../examples}/bugs/gh-119/app/page.tsx | 0 .../examples}/bugs/gh-119/e2e/base.spec.ts | 0 .../bugs/gh-119/e2e/playwright.config.ts | 0 .../examples}/bugs/gh-119/next.config.ts | 0 .../examples}/bugs/gh-119/open-next.config.ts | 0 .../examples}/bugs/gh-119/package.json | 0 .../examples}/bugs/gh-119/postcss.config.mjs | 0 .../examples}/bugs/gh-119/public/file.svg | 0 .../examples}/bugs/gh-119/public/globe.svg | 0 .../examples}/bugs/gh-119/public/next.svg | 0 .../examples}/bugs/gh-119/public/vercel.svg | 0 .../examples}/bugs/gh-119/public/window.svg | 0 .../examples}/bugs/gh-119/tailwind.config.ts | 0 .../examples}/bugs/gh-119/tsconfig.json | 0 .../examples}/bugs/gh-119/wrangler.jsonc | 0 .../examples}/bugs/gh-219/.dev.vars | 0 .../examples}/bugs/gh-219/.gitignore | 0 .../examples}/bugs/gh-219/README.md | 0 .../examples}/bugs/gh-219/e2e/base.spec.ts | 0 .../bugs/gh-219/e2e/playwright.config.ts | 0 .../examples}/bugs/gh-219/eslint.config.mjs | 0 .../examples}/bugs/gh-219/next.config.ts | 0 .../examples}/bugs/gh-219/open-next.config.ts | 0 .../examples}/bugs/gh-219/package.json | 0 .../examples}/bugs/gh-219/postcss.config.mjs | 0 .../examples}/bugs/gh-219/public/file.svg | 0 .../examples}/bugs/gh-219/public/globe.svg | 0 .../examples}/bugs/gh-219/public/next.svg | 0 .../examples}/bugs/gh-219/public/vercel.svg | 0 .../examples}/bugs/gh-219/public/window.svg | 0 .../examples}/bugs/gh-219/src/app/favicon.ico | Bin .../examples}/bugs/gh-219/src/app/globals.css | 0 .../examples}/bugs/gh-219/src/app/layout.tsx | 0 .../examples}/bugs/gh-219/src/app/page.tsx | 0 .../bugs/gh-219/src/firebase/config.js | 0 .../examples}/bugs/gh-219/tailwind.config.ts | 0 .../examples}/bugs/gh-219/tsconfig.json | 0 .../examples}/bugs/gh-219/wrangler.jsonc | 0 .../examples}/bugs/gh-223/.eslintrc.json | 0 .../examples}/bugs/gh-223/.gitignore | 0 .../examples}/bugs/gh-223/README.md | 0 .../bugs/gh-223/app/api/image/route.ts | 0 .../examples}/bugs/gh-223/app/favicon.ico | Bin .../examples}/bugs/gh-223/app/globals.css | 0 .../examples}/bugs/gh-223/app/layout.tsx | 0 .../examples}/bugs/gh-223/app/page.tsx | 0 .../examples}/bugs/gh-223/e2e/base.spec.ts | 0 .../bugs/gh-223/e2e/playwright.config.ts | 0 .../examples}/bugs/gh-223/next.config.mjs | 0 .../examples}/bugs/gh-223/open-next.config.ts | 0 .../examples}/bugs/gh-223/package.json | 0 .../examples}/bugs/gh-223/postcss.config.mjs | 0 .../examples}/bugs/gh-223/public/next.svg | 0 .../examples}/bugs/gh-223/public/vercel.svg | 0 .../examples}/bugs/gh-223/src/utils/common.ts | 0 .../bugs/gh-223/src/utils/s3Bucket.ts | 0 .../examples}/bugs/gh-223/tailwind.config.ts | 0 .../examples}/bugs/gh-223/tsconfig.json | 0 .../examples}/bugs/gh-223/wrangler.jsonc | 0 .../examples}/common/apps.ts | 0 .../examples}/common/config-e2e.ts | 0 .../examples}/common/package.json | 0 .../examples}/common/tsconfig.json | 0 .../examples}/create-next-app/.eslintrc.json | 0 .../examples}/create-next-app/.gitignore | 0 .../examples}/create-next-app/README.md | 0 .../create-next-app/e2e/base.spec.ts | 0 .../create-next-app/e2e/playwright.config.ts | 0 .../examples}/create-next-app/next.config.mjs | 0 .../create-next-app/open-next.config.ts | 0 .../examples}/create-next-app/package.json | 0 .../create-next-app/postcss.config.mjs | 0 .../examples}/create-next-app/public/next.svg | 0 .../create-next-app/public/vercel.svg | 0 .../create-next-app/src/app/favicon.ico | Bin .../src/app/fonts/GeistMonoVF.woff | Bin .../src/app/fonts/GeistVF.woff | Bin .../create-next-app/src/app/globals.css | 0 .../create-next-app/src/app/layout.tsx | 0 .../create-next-app/src/app/page.tsx | 0 .../create-next-app/tailwind.config.ts | 0 .../examples}/create-next-app/tsconfig.json | 0 .../examples}/create-next-app/wrangler.jsonc | 0 .../examples}/e2e/app-pages-router/.env | 0 .../examples}/e2e/app-pages-router/.gitignore | 0 .../e2e/app-pages-router/CHANGELOG.md | 0 .../examples}/e2e/app-pages-router/README.md | 0 .../albums/@modal/(.)[album]/[song]/page.tsx | 0 .../app/albums/@modal/(.)[album]/page.tsx | 0 .../app/albums/@modal/default.tsx | 0 .../app/albums/[album]/[song]/page.tsx | 0 .../app/albums/[album]/page.tsx | 0 .../app-pages-router/app/albums/layout.tsx | 0 .../e2e/app-pages-router/app/albums/page.tsx | 0 .../app-pages-router/app/api/client/route.ts | 0 .../app-pages-router/app/api/host/route.ts | 0 .../e2e/app-pages-router/app/api/page.tsx | 0 .../e2e/app-pages-router/app/globals.css | 0 .../app/image-optimization/page.tsx | 0 .../e2e/app-pages-router/app/isr/page.tsx | 0 .../e2e/app-pages-router/app/layout.tsx | 0 .../e2e/app-pages-router/app/page.tsx | 0 .../app/parallel/@a/a-page/page.tsx | 0 .../app-pages-router/app/parallel/@a/page.tsx | 0 .../app/parallel/@b/b-page/page.tsx | 0 .../app-pages-router/app/parallel/@b/page.tsx | 0 .../app-pages-router/app/parallel/layout.tsx | 0 .../app-pages-router/app/parallel/page.tsx | 0 .../app/redirect-destination/page.tsx | 0 .../app/rewrite-destination/page.tsx | 0 .../app/server-actions/client.tsx | 0 .../app/server-actions/page.tsx | 0 .../e2e/app-pages-router/app/ssr/layout.tsx | 0 .../e2e/app-pages-router/app/ssr/loading.tsx | 0 .../e2e/app-pages-router/app/ssr/page.tsx | 0 .../e2e/app-pages-router/e2e/api.test.ts | 0 .../e2e/app-pages-router/e2e/host.test.ts | 0 .../e2e/image-optimization.test.ts | 0 .../e2e/app-pages-router/e2e/isr.test.ts | 0 .../e2e/middleware.redirect.test.ts | 0 .../e2e/middleware.rewrite.test.ts | 0 .../e2e/app-pages-router/e2e/modals.test.ts | 0 .../app-pages-router/e2e/pages_isr.test.ts | 0 .../app-pages-router/e2e/pages_ssr.test.ts | 0 .../e2e/app-pages-router/e2e/parallel.test.ts | 0 .../app-pages-router/e2e/playwright.config.ts | 0 .../e2e/serverActions.test.ts | 0 .../e2e/skip_trailing.test.ts | 0 .../e2e/app-pages-router/e2e/ssr.test.ts | 0 .../e2e/app-pages-router/middleware.ts | 0 .../e2e/app-pages-router/next.config.ts | 0 .../e2e/app-pages-router/open-next.config.ts | 0 .../e2e/app-pages-router/package.json | 0 .../e2e/app-pages-router/pages/_app.tsx | 0 .../e2e/app-pages-router/pages/_document.tsx | 0 .../e2e/app-pages-router/pages/api/hello.ts | 0 .../pages/pages_isr/index.tsx | 0 .../pages/pages_ssr/index.tsx | 0 .../e2e/app-pages-router/postcss.config.js | 0 .../e2e/app-pages-router/public/favicon.ico | Bin .../public/static/corporate_holiday_card.jpg | Bin .../app-pages-router/public/static/frank.webp | Bin .../e2e/app-pages-router/styles/globals.css | 0 .../e2e/app-pages-router/tailwind.config.ts | 0 .../e2e/app-pages-router/tsconfig.json | 0 .../e2e/app-pages-router/wrangler.jsonc | 0 .../examples}/e2e/app-router/.gitignore | 0 .../examples}/e2e/app-router/CHANGELOG.md | 0 .../examples}/e2e/app-router/README.md | 0 .../albums/@modal/(.)[album]/[song]/page.tsx | 0 .../app/albums/@modal/(.)[album]/page.tsx | 0 .../app-router/app/albums/@modal/default.tsx | 0 .../app/albums/[album]/[song]/page.tsx | 0 .../app-router/app/albums/[album]/page.tsx | 0 .../e2e/app-router/app/albums/layout.tsx | 0 .../e2e/app-router/app/albums/page.tsx | 0 .../app/api/after/revalidate/route.ts | 0 .../e2e/app-router/app/api/after/ssg/route.ts | 0 .../e2e/app-router/app/api/client/route.ts | 0 .../e2e/app-router/app/api/host/route.ts | 0 .../e2e/app-router/app/api/isr/route.ts | 0 .../e2e/app-router/app/api/og/route.tsx | 0 .../examples}/e2e/app-router/app/api/page.tsx | 0 .../app/api/revalidate-path/route.ts | 0 .../app/api/revalidate-tag/route.ts | 0 .../e2e/app-router/app/api/sse/route.ts | 0 .../app-router/app/config-redirect/page.tsx | 0 .../e2e/app-router/app/cookies/page.tsx | 0 .../examples}/e2e/app-router/app/globals.css | 0 .../e2e/app-router/app/headers/page.tsx | 0 .../app/image-optimization/page.tsx | 0 .../app-router/app/isr-data-cache/page.tsx | 0 .../isr/dynamic-params-false/[id]/page.tsx | 0 .../app/isr/dynamic-params-true/[id]/page.tsx | 0 .../examples}/e2e/app-router/app/isr/page.tsx | 0 .../examples}/e2e/app-router/app/layout.tsx | 0 .../get/dynamic-segments/[slug]/route.ts | 0 .../app-router/app/methods/get/query/route.ts | 0 .../app/methods/get/redirect/route.ts | 0 .../app/methods/get/revalidate/route.ts | 0 .../app/methods/get/static/route.ts | 0 .../app/methods/post/cookies/route.ts | 0 .../app/methods/post/formdata/route.ts | 0 .../e2e/app-router/app/methods/route.ts | 0 .../e2e/app-router/app/og/opengraph-image.tsx | 0 .../examples}/e2e/app-router/app/og/page.tsx | 0 .../examples}/e2e/app-router/app/page.tsx | 0 .../app/parallel/@a/a-page/page.tsx | 0 .../e2e/app-router/app/parallel/@a/page.tsx | 0 .../app/parallel/@b/b-page/page.tsx | 0 .../e2e/app-router/app/parallel/@b/page.tsx | 0 .../e2e/app-router/app/parallel/layout.tsx | 0 .../e2e/app-router/app/parallel/page.tsx | 0 .../app/redirect-destination/page.tsx | 0 .../app-router/app/revalidate-path/page.tsx | 0 .../app-router/app/revalidate-tag/layout.tsx | 0 .../app/revalidate-tag/nested/page.tsx | 0 .../app-router/app/revalidate-tag/page.tsx | 0 .../app/rewrite-destination/page.tsx | 0 .../e2e/app-router/app/search-query/page.tsx | 0 .../app-router/app/server-actions/client.tsx | 0 .../app-router/app/server-actions/page.tsx | 0 .../examples}/e2e/app-router/app/sse/page.tsx | 0 .../e2e/app-router/app/ssr/layout.tsx | 0 .../e2e/app-router/app/ssr/loading.tsx | 0 .../examples}/e2e/app-router/app/ssr/page.tsx | 0 .../e2e/app-router/e2e/after.test.ts | 0 .../examples}/e2e/app-router/e2e/api.test.ts | 0 .../app-router/e2e/config.redirect.test.ts | 0 .../e2e/app-router/e2e/headers.test.ts | 0 .../examples}/e2e/app-router/e2e/host.test.ts | 0 .../app-router/e2e/image-optimization.test.ts | 0 .../e2e/app-router/e2e/isr.revalidate.test.ts | 0 .../examples}/e2e/app-router/e2e/isr.test.ts | 0 .../e2e/app-router/e2e/methods.test.ts | 0 .../app-router/e2e/middleware.cookies.test.ts | 0 .../e2e/middleware.redirect.test.ts | 0 .../app-router/e2e/middleware.rewrite.test.ts | 0 .../e2e/app-router/e2e/modals.test.ts | 0 .../examples}/e2e/app-router/e2e/og.test.ts | 0 .../e2e/app-router/e2e/parallel.test.ts | 0 .../e2e/app-router/e2e/playwright.config.ts | 0 .../e2e/app-router/e2e/query.test.ts | 0 .../e2e/app-router/e2e/revalidateTag.test.ts | 0 .../e2e/app-router/e2e/serverActions.test.ts | 0 .../examples}/e2e/app-router/e2e/sse.test.ts | 0 .../examples}/e2e/app-router/e2e/ssr.test.ts | 0 .../e2e/app-router/e2e/trailing.test.ts | 0 .../examples}/e2e/app-router/middleware.ts | 0 .../examples}/e2e/app-router/next.config.ts | 0 .../e2e/app-router/open-next.config.ts | 0 .../examples}/e2e/app-router/package.json | 0 .../e2e/app-router/postcss.config.js | 0 .../e2e/app-router/public/favicon.ico | Bin .../public/static/corporate_holiday_card.jpg | Bin .../e2e/app-router/public/static/frank.webp | Bin .../e2e/app-router/tailwind.config.ts | 0 .../examples}/e2e/app-router/tsconfig.json | 0 .../examples}/e2e/app-router/wrangler.jsonc | 0 .../examples}/e2e/experimental/.gitignore | 0 .../examples}/e2e/experimental/README.md | 0 .../experimental/e2e/nodeMiddleware.test.ts | 0 .../e2e/experimental/e2e/playwright.config.ts | 0 .../e2e/experimental/e2e/ppr.test.ts | 0 .../e2e/experimental/e2e/use-cache.test.ts | 0 .../examples}/e2e/experimental/next.config.ts | 0 .../e2e/experimental/open-next.config.ts | 0 .../examples}/e2e/experimental/package.json | 0 .../src/app/api/revalidate/route.ts | 0 .../e2e/experimental/src/app/favicon.ico | Bin .../e2e/experimental/src/app/globals.css | 0 .../e2e/experimental/src/app/layout.tsx | 0 .../e2e/experimental/src/app/page.module.css | 0 .../e2e/experimental/src/app/page.tsx | 0 .../e2e/experimental/src/app/ppr/page.tsx | 0 .../src/app/use-cache/fetch/page.tsx | 0 .../src/app/use-cache/isr/page.tsx | 0 .../experimental/src/app/use-cache/layout.tsx | 0 .../src/app/use-cache/ssr/page.tsx | 0 .../experimental/src/components/cached.tsx | 0 .../experimental/src/components/dynamic.tsx | 0 .../experimental/src/components/static.tsx | 0 .../e2e/experimental/src/middleware.ts | 0 .../examples}/e2e/experimental/tsconfig.json | 0 .../examples}/e2e/experimental/wrangler.jsonc | 0 .../e2e/pages-router/.env.production | 0 .../examples}/e2e/pages-router/.gitignore | 0 .../examples}/e2e/pages-router/README.md | 0 .../e2e/pages-router/e2e/404.test.ts | 0 .../e2e/pages-router/e2e/amp.test.ts | 0 .../e2e/pages-router/e2e/api.test.ts | 0 .../e2e/pages-router/e2e/data.test.ts | 0 .../e2e/pages-router/e2e/fallback.test.ts | 0 .../e2e/pages-router/e2e/head.test.ts | 0 .../e2e/pages-router/e2e/header.test.ts | 0 .../e2e/pages-router/e2e/i18n.test.ts | 0 .../e2e/pages-router/e2e/isr.test.ts | 0 .../e2e/pages-router/e2e/playwright.config.ts | 0 .../e2e/pages-router/e2e/redirect.test.ts | 0 .../e2e/pages-router/e2e/revalidate.test.ts | 0 .../e2e/pages-router/e2e/rewrite.test.ts | 0 .../e2e/pages-router/e2e/ssr.test.ts | 0 .../e2e/pages-router/e2e/streaming.test.ts | 0 .../e2e/pages-router/e2e/trailing.test.ts | 0 .../examples}/e2e/pages-router/next.config.ts | 0 .../e2e/pages-router/open-next.config.ts | 0 .../examples}/e2e/pages-router/package.json | 0 .../e2e/pages-router/postcss.config.js | 0 .../e2e/pages-router/public/favicon.ico | Bin .../e2e/pages-router/public/static/frank.webp | Bin .../e2e/pages-router/src/middleware.ts | 0 .../e2e/pages-router/src/pages/_app.tsx | 0 .../e2e/pages-router/src/pages/_document.tsx | 0 .../e2e/pages-router/src/pages/amp/index.tsx | 0 .../src/pages/api/dynamic/[slug].ts | 0 .../dynamic/catch-all-optional/[[...slug]].ts | 0 .../pages/api/dynamic/catch-all/[...slug].ts | 0 .../src/pages/api/dynamic/precedence/index.ts | 0 .../e2e/pages-router/src/pages/api/hello.ts | 0 .../e2e/pages-router/src/pages/api/query.ts | 0 .../pages-router/src/pages/api/revalidate.ts | 0 .../src/pages/api/streaming/index.ts | 0 .../pages/fallback-intercepted/[...slugs].tsx | 0 .../src/pages/fallback-intercepted/[slug].tsx | 0 .../src/pages/fallback-intercepted/ssg.tsx | 0 .../src/pages/fallback-intercepted/static.tsx | 0 .../src/pages/fallback/[slug].tsx | 0 .../e2e/pages-router/src/pages/head/index.tsx | 0 .../e2e/pages-router/src/pages/index.tsx | 0 .../e2e/pages-router/src/pages/isr/index.tsx | 0 .../e2e/pages-router/src/pages/sse/index.tsx | 0 .../e2e/pages-router/src/pages/ssg/index.tsx | 0 .../e2e/pages-router/src/pages/ssr/index.tsx | 0 .../e2e/pages-router/src/styles/globals.css | 0 .../examples}/e2e/pages-router/tsconfig.json | 0 .../examples}/e2e/pages-router/wrangler.jsonc | 0 .../examples}/e2e/shared/api/index.ts | 0 .../examples}/e2e/shared/api/songs.json | 0 .../e2e/shared/components/Album/Album.tsx | 0 .../e2e/shared/components/Album/Song.tsx | 0 .../e2e/shared/components/Album/index.tsx | 0 .../e2e/shared/components/Filler/index.tsx | 0 .../e2e/shared/components/Modal/index.tsx | 0 .../e2e/shared/components/Nav/index.tsx | 0 .../examples}/e2e/shared/package.json | 0 .../examples}/e2e/shared/sst-env.d.ts | 0 .../examples}/e2e/shared/tsconfig.json | 0 .../examples}/e2e/utils.ts | 0 .../examples}/middleware/.env | 0 .../examples}/middleware/.gitignore | 0 .../examples}/middleware/README.md | 0 .../examples}/middleware/app/about/page.tsx | 0 .../examples}/middleware/app/about2/page.tsx | 0 .../examples}/middleware/app/another/page.tsx | 0 .../examples}/middleware/app/clerk/route.ts | 0 .../examples}/middleware/app/layout.tsx | 0 .../middleware/app/middleware/page.tsx | 0 .../examples}/middleware/app/page.tsx | 0 .../middleware/app/redirected/page.tsx | 0 .../examples}/middleware/app/rewrite/page.tsx | 0 .../examples}/middleware/e2e/base.spec.ts | 0 .../middleware/e2e/cloudflare-context.spec.ts | 0 .../middleware/e2e/playwright.config.ts | 0 .../middleware/e2e/playwright.dev.config.ts | 0 .../examples}/middleware/middleware.ts | 0 .../examples}/middleware/next.config.mjs | 0 .../examples}/middleware/open-next.config.ts | 0 .../examples}/middleware/package.json | 0 .../examples}/middleware/public/favicon.ico | Bin .../examples}/middleware/public/vercel.svg | 0 .../examples}/middleware/tsconfig.json | 0 .../examples}/middleware/wrangler.jsonc | 0 .../next-partial-prerendering/.gitignore | 0 .../next-partial-prerendering/.prettierrc | 0 .../next-partial-prerendering/README.md | 0 .../next-partial-prerendering/app/favicon.ico | Bin .../next-partial-prerendering/app/layout.tsx | 0 .../app/not-found.tsx | 0 .../app/opengraph-image.png | Bin .../next-partial-prerendering/app/page.tsx | 0 .../next-partial-prerendering/app/styles.tsx | 0 .../app/twitter-image.png | Bin .../components/add-to-cart.tsx | 0 .../components/byline.tsx | 0 .../components/cart-count-context.tsx | 0 .../components/cart-count.tsx | 0 .../components/header.tsx | 0 .../components/next-logo.tsx | 0 .../components/ping.tsx | 0 .../components/pricing.tsx | 0 .../components/product-best-seller.tsx | 0 .../components/product-card.tsx | 0 .../components/product-currency-symbol.tsx | 0 .../components/product-deal.tsx | 0 .../components/product-estimated-arrival.tsx | 0 .../components/product-lightening-deal.tsx | 0 .../components/product-low-stock-warning.tsx | 0 .../components/product-price.tsx | 0 .../components/product-rating.tsx | 0 .../components/product-review-card.tsx | 0 .../components/product-split-payments.tsx | 0 .../components/product-used-price.tsx | 0 .../components/recommended-products.tsx | 0 .../components/reviews.tsx | 0 .../components/sidebar.tsx | 0 .../components/single-product.tsx | 0 .../components/vercel-logo.tsx | 0 .../e2e/playwright.config.ts | 0 .../next-partial-prerendering/e2e/ppr.test.ts | 0 .../next-partial-prerendering/lib/delay.ts | 0 .../next-partial-prerendering/lib/products.ts | 0 .../next-partial-prerendering/lib/reviews.ts | 0 .../next-partial-prerendering/next.config.js | 0 .../open-next.config.ts | 0 .../next-partial-prerendering/package.json | 0 .../postcss.config.js | 0 ...alexander-andrews-brAkTCdnhW8-unsplash.jpg | Bin .../public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg | Bin .../next-partial-prerendering/public/grid.svg | 0 .../guillaume-coupy-6HuoHgK7FN8-unsplash.jpg | Bin .../public/nextjs-icon-light-background.png | Bin .../public/patrick-OIFgeLnjwrM-unsplash.jpg | Bin .../prince-akachi-LWkFHEGpleE-unsplash.jpg | Bin .../yoann-siloine-_T4w3JDm6ug-unsplash.jpg | Bin .../tailwind.config.ts | 0 .../next-partial-prerendering/tsconfig.json | 0 .../types/product.d.ts | 0 .../types/review.d.ts | 0 .../next-partial-prerendering/wrangler.jsonc | 0 .../overrides/d1-tag-next/.gitignore | 0 .../overrides/d1-tag-next/app/action.ts | 0 .../app/components/revalidationButtons.tsx | 0 .../overrides/d1-tag-next/app/favicon.ico | Bin .../overrides/d1-tag-next/app/globals.css | 0 .../overrides/d1-tag-next/app/layout.tsx | 0 .../overrides/d1-tag-next/app/page.module.css | 0 .../overrides/d1-tag-next/app/page.tsx | 0 .../overrides/d1-tag-next/e2e/base.spec.ts | 0 .../d1-tag-next/e2e/playwright.config.ts | 0 .../overrides/d1-tag-next/next.config.ts | 0 .../overrides/d1-tag-next/open-next.config.ts | 0 .../overrides/d1-tag-next/package.json | 0 .../overrides/d1-tag-next/tsconfig.json | 0 .../overrides/d1-tag-next/wrangler.jsonc | 0 .../overrides/memory-queue/.gitignore | 0 .../overrides/memory-queue/app/favicon.ico | Bin .../overrides/memory-queue/app/globals.css | 0 .../overrides/memory-queue/app/layout.tsx | 0 .../memory-queue/app/page.module.css | 0 .../overrides/memory-queue/app/page.tsx | 0 .../overrides/memory-queue/e2e/base.spec.ts | 0 .../memory-queue/e2e/playwright.config.ts | 0 .../overrides/memory-queue/next.config.ts | 0 .../memory-queue/open-next.config.ts | 0 .../overrides/memory-queue/package.json | 0 .../overrides/memory-queue/tsconfig.json | 0 .../overrides/memory-queue/wrangler.jsonc | 0 .../overrides/r2-incremental-cache/.gitignore | 0 .../r2-incremental-cache/app/favicon.ico | Bin .../r2-incremental-cache/app/globals.css | 0 .../r2-incremental-cache/app/layout.tsx | 0 .../r2-incremental-cache/app/page.module.css | 0 .../r2-incremental-cache/app/page.tsx | 0 .../r2-incremental-cache/e2e/base.spec.ts | 0 .../e2e/playwright.config.ts | 0 .../r2-incremental-cache/next.config.ts | 0 .../r2-incremental-cache/open-next.config.ts | 0 .../r2-incremental-cache/package.json | 0 .../r2-incremental-cache/tsconfig.json | 0 .../r2-incremental-cache/wrangler.jsonc | 0 .../.gitignore | 0 .../app/action.ts | 0 .../app/components/revalidationButtons.tsx | 0 .../app/favicon.ico | Bin .../app/globals.css | 0 .../app/layout.tsx | 0 .../app/page.module.css | 0 .../app/page.tsx | 0 .../e2e/base.spec.ts | 0 .../e2e/playwright.config.ts | 0 .../next-env.d.ts | 0 .../next.config.ts | 0 .../open-next.config.ts | 0 .../package.json | 0 .../tsconfig.json | 0 .../wrangler.jsonc | 0 .../examples}/playground14/.dev.vars | 0 .../examples}/playground14/.env.development | 0 .../examples}/playground14/.gitignore | 0 .../playground14/app/api/buildid/route.ts | 0 .../playground14/app/api/env/route.ts | 0 .../playground14/app/api/hello/route.ts | 0 .../app/api/instrumentation/route.ts | 0 .../playground14/app/api/request/route.ts | 0 .../app/isr/[id]/dynamic/page.tsx | 0 .../app/isr/[id]/no-dynamic/page.tsx | 0 .../examples}/playground14/app/layout.js | 0 .../examples}/playground14/app/og/route.tsx | 0 .../examples}/playground14/app/page.js | 0 .../examples}/playground14/e2e/base.spec.ts | 0 .../playground14/e2e/cloudflare.spec.ts | 0 .../examples}/playground14/e2e/head.spec.ts | 0 .../playground14/e2e/instrumentation.spec.ts | 0 .../examples}/playground14/e2e/isr.spec.ts | 0 .../playground14/e2e/playwright.config.ts | 0 .../playground14/e2e/playwright.dev.config.ts | 0 .../examples}/playground14/instrumentation.js | 0 .../examples}/playground14/lib/posts.ts | 0 .../examples}/playground14/middleware.js | 0 .../examples}/playground14/next.config.mjs | 0 .../playground14/open-next.config.ts | 0 .../examples}/playground14/package.json | 0 .../examples}/playground14/pages/api/pages.ts | 0 .../examples}/playground14/pages/head.tsx | 0 .../examples}/playground14/public/.gitkeep | 0 .../playground14/public/snipp/snipp.webp | Bin .../examples}/playground14/tsconfig.json | 0 .../playground14/worker-configuration.d.ts | 0 .../examples}/playground14/worker.ts | 0 .../examples}/playground14/wrangler.jsonc | 0 .../examples}/playground15/.dev.vars | 0 .../examples}/playground15/.env.development | 0 .../examples}/playground15/.gitignore | 0 .../playground15/app/api/buildid/route.ts | 0 .../playground15/app/api/env/route.ts | 0 .../playground15/app/api/hello/route.ts | 0 .../app/api/instrumentation/route.ts | 0 .../playground15/app/api/request/route.ts | 0 .../playground15/app/from-app/page.tsx | 0 .../app/isr/[id]/dynamic/page.tsx | 0 .../app/isr/[id]/no-dynamic/page.tsx | 0 .../examples}/playground15/app/layout.js | 0 .../examples}/playground15/app/og/route.tsx | 0 .../playground15/app/other-app/page.tsx | 0 .../examples}/playground15/app/page.js | 0 .../examples}/playground15/data.js | 0 .../examples}/playground15/data.module.css | 0 .../examples}/playground15/e2e/base.spec.ts | 0 .../playground15/e2e/cloudflare.spec.ts | 0 .../examples}/playground15/e2e/head.spec.ts | 0 .../playground15/e2e/instrumentation.spec.ts | 0 .../examples}/playground15/e2e/isr.spec.ts | 0 .../playground15/e2e/playwright.config.ts | 0 .../playground15/e2e/playwright.dev.config.ts | 0 .../examples}/playground15/instrumentation.js | 0 .../examples}/playground15/lib/posts.ts | 0 .../examples}/playground15/middleware.js | 0 .../examples}/playground15/next.config.mjs | 0 .../playground15/open-next.config.ts | 0 .../examples}/playground15/package.json | 0 .../examples}/playground15/pages/head.tsx | 0 .../examples}/playground15/public/.gitkeep | 0 .../examples}/playground15/public/test.jpg | Bin .../examples}/playground15/tsconfig.json | 0 .../playground15/worker-configuration.d.ts | 0 .../examples}/playground15/wrangler.jsonc | 0 .../examples}/prisma/.gitignore | 0 .../examples}/prisma/README.md | 0 .../examples}/prisma/e2e/playwright.config.ts | 0 .../prisma/e2e/playwright.dev.config.ts | 0 .../examples}/prisma/e2e/prisma.spec.ts | 0 .../examples}/prisma/next.config.ts | 0 .../examples}/prisma/open-next.config.ts | 0 .../examples}/prisma/package.json | 0 .../examples}/prisma/populate.sql | 0 .../examples}/prisma/prisma.config.ts | 0 .../examples}/prisma/schema.prisma | 0 .../examples}/prisma/src/app/favicon.ico | Bin .../examples}/prisma/src/app/globals.css | 0 .../examples}/prisma/src/app/layout.tsx | 0 .../examples}/prisma/src/app/page.module.css | 0 .../examples}/prisma/src/app/page.tsx | 0 .../examples}/prisma/src/lib/db.ts | 0 .../examples}/prisma/tsconfig.json | 0 .../prisma/worker-configuration.d.ts | 0 .../examples}/prisma/wrangler.jsonc | 0 .../examples}/ssg-app/.dev.vars | 0 .../examples}/ssg-app/.gitignore | 0 .../examples}/ssg-app/app/favicon.ico | Bin .../examples}/ssg-app/app/globals.css | 0 .../examples}/ssg-app/app/layout.tsx | 0 .../examples}/ssg-app/app/page.module.css | 0 .../examples}/ssg-app/app/page.tsx | 0 .../examples}/ssg-app/e2e/base.spec.ts | 0 .../ssg-app/e2e/playwright.config.ts | 0 .../examples}/ssg-app/next.config.ts | 0 .../examples}/ssg-app/open-next.config.ts | 0 .../examples}/ssg-app/package.json | 0 .../examples}/ssg-app/tsconfig.json | 0 .../ssg-app/worker-configuration.d.ts | 0 .../examples}/ssg-app/wrangler.jsonc | 0 .../examples}/vercel-blog-starter/.gitignore | 0 .../examples}/vercel-blog-starter/README.md | 0 .../_posts/dynamic-routing.md | 0 .../vercel-blog-starter/_posts/hello-world.md | 0 .../vercel-blog-starter/_posts/preview.md | 0 .../vercel-blog-starter/next.config.mjs | 0 .../vercel-blog-starter/open-next.config.ts | 0 .../vercel-blog-starter/package.json | 0 .../vercel-blog-starter/postcss.config.js | 0 .../public/assets/blog/authors/jj.jpeg | Bin .../public/assets/blog/authors/joe.jpeg | Bin .../public/assets/blog/authors/tim.jpeg | Bin .../assets/blog/dynamic-routing/cover.jpg | Bin .../public/assets/blog/hello-world/cover.jpg | Bin .../public/assets/blog/preview/cover.jpg | Bin .../public/favicon/android-chrome-192x192.png | Bin .../public/favicon/android-chrome-512x512.png | Bin .../public/favicon/apple-touch-icon.png | Bin .../public/favicon/browserconfig.xml | 0 .../public/favicon/favicon-16x16.png | Bin .../public/favicon/favicon-32x32.png | Bin .../public/favicon/favicon.ico | Bin .../public/favicon/mstile-150x150.png | Bin .../public/favicon/safari-pinned-tab.svg | 0 .../public/favicon/site.webmanifest | 0 .../src/app/_components/alert.tsx | 0 .../src/app/_components/avatar.tsx | 0 .../src/app/_components/container.tsx | 0 .../src/app/_components/cover-image.tsx | 0 .../src/app/_components/date-formatter.tsx | 0 .../src/app/_components/footer.tsx | 0 .../src/app/_components/header.tsx | 0 .../src/app/_components/hero-post.tsx | 0 .../src/app/_components/intro.tsx | 0 .../_components/markdown-styles.module.css | 0 .../src/app/_components/more-stories.tsx | 0 .../src/app/_components/post-body.tsx | 0 .../src/app/_components/post-header.tsx | 0 .../src/app/_components/post-preview.tsx | 0 .../src/app/_components/post-title.tsx | 0 .../src/app/_components/section-separator.tsx | 0 .../src/app/_components/switch.module.css | 0 .../src/app/_components/theme-switcher.tsx | 0 .../vercel-blog-starter/src/app/globals.css | 0 .../vercel-blog-starter/src/app/layout.tsx | 0 .../vercel-blog-starter/src/app/page.tsx | 0 .../src/app/posts/[slug]/page.tsx | 0 .../src/interfaces/author.ts | 0 .../src/interfaces/post.ts | 0 .../vercel-blog-starter/src/lib/api.ts | 0 .../vercel-blog-starter/src/lib/constants.ts | 0 .../src/lib/markdownToHtml.ts | 0 .../vercel-blog-starter/tailwind.config.ts | 0 .../vercel-blog-starter/tsconfig.json | 0 .../vercel-blog-starter/wrangler.jsonc | 0 package.json => .auto-resolution/package.json | 0 .../packages}/cloudflare/.gitignore | 0 .../packages}/cloudflare/CHANGELOG.md | 0 .../packages}/cloudflare/README.md | 0 .../packages}/cloudflare/env.d.ts | 0 .../packages}/cloudflare/eslint.config.mjs | 0 .../packages}/cloudflare/package.json | 0 .../cloudflare/src/api/cloudflare-context.ts | 0 .../packages}/cloudflare/src/api/config.ts | 0 .../bucket-cache-purge.spec.ts | 0 .../api/durable-objects/bucket-cache-purge.ts | 0 .../src/api/durable-objects/queue.spec.ts | 0 .../src/api/durable-objects/queue.ts | 0 .../durable-objects/sharded-tag-cache.spec.ts | 0 .../api/durable-objects/sharded-tag-cache.ts | 0 .../packages}/cloudflare/src/api/index.ts | 0 .../overrides/asset-resolver/index.spec.ts | 0 .../src/api/overrides/asset-resolver/index.ts | 0 .../src/api/overrides/cache-purge/index.ts | 0 .../incremental-cache/kv-incremental-cache.ts | 0 .../incremental-cache/r2-incremental-cache.ts | 0 .../incremental-cache/regional-cache.ts | 0 .../static-assets-incremental-cache.ts | 0 .../cloudflare/src/api/overrides/internal.ts | 0 .../src/api/overrides/queue/do-queue.ts | 0 .../api/overrides/queue/memory-queue.spec.ts | 0 .../src/api/overrides/queue/memory-queue.ts | 0 .../api/overrides/queue/queue-cache.spec.ts | 0 .../src/api/overrides/queue/queue-cache.ts | 0 .../tag-cache/d1-next-tag-cache.spec.ts | 0 .../overrides/tag-cache/d1-next-tag-cache.ts | 0 .../tag-cache/do-sharded-tag-cache.spec.ts | 0 .../tag-cache/do-sharded-tag-cache.ts | 0 .../tag-cache/tag-cache-filter.spec.ts | 0 .../overrides/tag-cache/tag-cache-filter.ts | 0 .../cloudflare/src/cli/build/build.ts | 0 .../cloudflare/src/cli/build/bundle-server.ts | 0 .../compile-cache-assets-manifest.ts | 0 .../cli/build/open-next/compile-env-files.ts | 0 .../src/cli/build/open-next/compile-images.ts | 0 .../src/cli/build/open-next/compile-init.ts | 0 .../open-next/compile-skew-protection.ts | 0 .../build/open-next/compileDurableObjects.ts | 0 .../cli/build/open-next/createServerBundle.ts | 0 .../ast/patch-vercel-og-library.spec.ts | 0 .../patches/ast/patch-vercel-og-library.ts | 0 .../cli/build/patches/ast/vercel-og.spec.ts | 0 .../src/cli/build/patches/ast/vercel-og.ts | 0 .../build/patches/ast/webpack-runtime.spec.ts | 0 .../cli/build/patches/ast/webpack-runtime.ts | 0 .../build/patches/plugins/dynamic-requires.ts | 0 .../src/cli/build/patches/plugins/find-dir.ts | 0 .../patches/plugins/instrumentation.spec.ts | 0 .../build/patches/plugins/instrumentation.ts | 0 .../build/patches/plugins/load-manifest.ts | 0 .../build/patches/plugins/next-server.spec.ts | 0 .../cli/build/patches/plugins/next-server.ts | 0 .../cli/build/patches/plugins/open-next.ts | 0 .../build/patches/plugins/optional-deps.ts | 0 .../patches/plugins/pages-router-context.ts | 0 .../plugins/patch-depd-deprecations.spec.ts | 0 .../plugins/patch-depd-deprecations.ts | 0 .../cli/build/patches/plugins/require-hook.ts | 0 .../src/cli/build/patches/plugins/require.ts | 0 .../patches/plugins/res-revalidate.spec.ts | 0 .../build/patches/plugins/res-revalidate.ts | 0 .../build/patches/plugins/use-cache.spec.ts | 0 .../cli/build/patches/plugins/use-cache.ts | 0 .../patches/plugins/wrangler-external.ts | 0 .../cli/build/utils/copy-package-cli-files.ts | 0 .../cli/build/utils/create-config-files.ts | 0 .../src/cli/build/utils/ensure-cf-config.ts | 0 .../utils/extract-project-env-vars.spec.ts | 0 .../build/utils/extract-project-env-vars.ts | 0 .../cloudflare/src/cli/build/utils/index.ts | 0 .../build/utils/needs-experimental-react.ts | 0 .../src/cli/build/utils/normalize-path.ts | 0 .../src/cli/build/utils/test-patch.ts | 0 .../cloudflare/src/cli/build/utils/version.ts | 0 .../src/cli/build/utils/workerd.spec.ts | 0 .../cloudflare/src/cli/build/utils/workerd.ts | 0 .../cloudflare/src/cli/commands/build.ts | 0 .../cloudflare/src/cli/commands/deploy.ts | 0 .../cloudflare/src/cli/commands/helpers.ts | 0 .../src/cli/commands/populate-cache.spec.ts | 0 .../src/cli/commands/populate-cache.ts | 0 .../cloudflare/src/cli/commands/preview.ts | 0 .../cloudflare/src/cli/commands/setup-cli.ts | 0 .../src/cli/commands/skew-protection.spec.ts | 0 .../src/cli/commands/skew-protection.ts | 0 .../cloudflare/src/cli/commands/upload.ts | 0 .../packages}/cloudflare/src/cli/index.ts | 0 .../cloudflare/src/cli/project-options.ts | 0 .../src/cli/templates/images.spec.ts | 0 .../cloudflare/src/cli/templates/images.ts | 0 .../cloudflare/src/cli/templates/init.ts | 0 .../src/cli/templates/shims/empty.ts | 0 .../cloudflare/src/cli/templates/shims/env.ts | 0 .../src/cli/templates/shims/fetch.ts | 0 .../src/cli/templates/shims/throw.ts | 0 .../src/cli/templates/skew-protection.ts | 0 .../cloudflare/src/cli/templates/worker.ts | 0 .../src/cli/utils/ask-confirmation.ts | 0 .../cloudflare/src/cli/utils/run-wrangler.ts | 0 .../utils/get-package-templates-dir-path.ts | 0 .../cloudflare/templates/open-next.config.ts | 0 .../cloudflare/templates/wrangler.jsonc | 0 .../packages}/cloudflare/tsconfig.json | 0 .auto-resolution/pnpm-lock.yaml | 21051 ++++++++++++++++ .auto-resolution/pnpm-workspace.yaml | 52 + .conflict-base-0/.changeset/README.md | 8 + .conflict-base-0/.changeset/config.json | 17 + .../.changeset/crazy-birds-jam.md | 5 + .../.changeset/eager-steaks-crash.md | 5 + .../.changeset/hungry-ideas-buy.md | 5 + .conflict-base-0/.editorconfig | 6 + .../.github/ISSUE_TEMPLATE/1.bug_report.yml | 71 + .../ISSUE_TEMPLATE/2.feature_request.yml | 68 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../actions/install-dependencies/action.yml | 21 + .../actions/setup-playwright/action.yml | 27 + .../.github/workflows/changesets.yml | 35 + .conflict-base-0/.github/workflows/checks.yml | 24 + .../.github/workflows/playwright.yml | 39 + .../.github/workflows/prereleases.yml | 27 + .conflict-base-0/.gitignore | 8 + .conflict-base-0/.prettierignore | 7 + .conflict-base-0/.prettierrc | 16 + .conflict-base-0/.vscode/settings.json | 4 + .conflict-base-0/CONTRIBUTING.md | 183 + .conflict-base-0/LICENSE | 25 + .conflict-base-0/README.md | 41 + .conflict-base-0/benchmarking/.gitignore | 1 + .conflict-base-0/benchmarking/README.md | 17 + .conflict-base-0/benchmarking/package.json | 14 + .../benchmarking/src/benchmarking.ts | 132 + .../benchmarking/src/cloudflare.ts | 123 + .conflict-base-0/benchmarking/src/index.ts | 42 + .conflict-base-0/benchmarking/src/utils.ts | 61 + .conflict-base-0/benchmarking/tsconfig.json | 15 + .../examples/bugs/gh-119/.eslintrc.json | 3 + .../examples/bugs/gh-119/.gitignore | 47 + .../examples/bugs/gh-119/README.md | 36 + .../examples/bugs/gh-119/app/favicon.ico | Bin 0 -> 25931 bytes .../bugs/gh-119/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../bugs/gh-119/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../examples/bugs/gh-119/app/globals.css | 21 + .../examples/bugs/gh-119/app/layout.tsx | 31 + .../examples/bugs/gh-119/app/page.tsx | 70 + .../examples/bugs/gh-119/e2e/base.spec.ts | 8 + .../bugs/gh-119/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-119/next.config.ts | 8 + .../examples/bugs/gh-119/open-next.config.ts | 3 + .../examples/bugs/gh-119/package.json | 34 + .../examples/bugs/gh-119/postcss.config.mjs | 8 + .../examples/bugs/gh-119/public/file.svg | 1 + .../examples/bugs/gh-119/public/globe.svg | 1 + .../examples/bugs/gh-119/public/next.svg | 1 + .../examples/bugs/gh-119/public/vercel.svg | 1 + .../examples/bugs/gh-119/public/window.svg | 1 + .../examples/bugs/gh-119/tailwind.config.ts | 18 + .../examples/bugs/gh-119/tsconfig.json | 27 + .../examples/bugs/gh-119/wrangler.jsonc | 11 + .../examples/bugs/gh-219/.dev.vars | 1 + .../examples/bugs/gh-219/.gitignore | 56 + .../examples/bugs/gh-219/README.md | 38 + .../examples/bugs/gh-219/e2e/base.spec.ts | 8 + .../bugs/gh-219/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-219/eslint.config.mjs | 14 + .../examples/bugs/gh-219/next.config.ts | 8 + .../examples/bugs/gh-219/open-next.config.ts | 3 + .../examples/bugs/gh-219/package.json | 61 + .../examples/bugs/gh-219/postcss.config.mjs | 8 + .../examples/bugs/gh-219/public/file.svg | 1 + .../examples/bugs/gh-219/public/globe.svg | 1 + .../examples/bugs/gh-219/public/next.svg | 1 + .../examples/bugs/gh-219/public/vercel.svg | 1 + .../examples/bugs/gh-219/public/window.svg | 1 + .../examples/bugs/gh-219/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-219/src/app/globals.css | 21 + .../examples/bugs/gh-219/src/app/layout.tsx | 30 + .../examples/bugs/gh-219/src/app/page.tsx | 70 + .../bugs/gh-219/src/firebase/config.js | 23 + .../examples/bugs/gh-219/tailwind.config.ts | 18 + .../examples/bugs/gh-219/tsconfig.json | 27 + .../examples/bugs/gh-219/wrangler.jsonc | 11 + .../examples/bugs/gh-223/.eslintrc.json | 3 + .../examples/bugs/gh-223/.gitignore | 53 + .../examples/bugs/gh-223/README.md | 36 + .../bugs/gh-223/app/api/image/route.ts | 16 + .../examples/bugs/gh-223/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-223/app/globals.css | 29 + .../examples/bugs/gh-223/app/layout.tsx | 22 + .../examples/bugs/gh-223/app/page.tsx | 113 + .../examples/bugs/gh-223/e2e/base.spec.ts | 9 + .../bugs/gh-223/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-223/next.config.mjs | 7 + .../examples/bugs/gh-223/open-next.config.ts | 3 + .../examples/bugs/gh-223/package.json | 37 + .../examples/bugs/gh-223/postcss.config.mjs | 8 + .../examples/bugs/gh-223/public/next.svg | 1 + .../examples/bugs/gh-223/public/vercel.svg | 1 + .../examples/bugs/gh-223/src/utils/common.ts | 29 + .../bugs/gh-223/src/utils/s3Bucket.ts | 30 + .../examples/bugs/gh-223/tailwind.config.ts | 19 + .../examples/bugs/gh-223/tsconfig.json | 28 + .../examples/bugs/gh-223/wrangler.jsonc | 11 + .conflict-base-0/examples/common/apps.ts | 53 + .../examples/common/config-e2e.ts | 93 + .conflict-base-0/examples/common/package.json | 5 + .../examples/common/tsconfig.json | 15 + .../examples/create-next-app/.eslintrc.json | 3 + .../examples/create-next-app/.gitignore | 45 + .../examples/create-next-app/README.md | 36 + .../examples/create-next-app/e2e/base.spec.ts | 8 + .../create-next-app/e2e/playwright.config.ts | 3 + .../examples/create-next-app/next.config.mjs | 11 + .../create-next-app/open-next.config.ts | 3 + .../examples/create-next-app/package.json | 33 + .../create-next-app/postcss.config.mjs | 8 + .../examples/create-next-app/public/next.svg | 1 + .../create-next-app/public/vercel.svg | 1 + .../create-next-app/src/app/favicon.ico | Bin 0 -> 25931 bytes .../src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../create-next-app/src/app/globals.css | 27 + .../create-next-app/src/app/layout.tsx | 31 + .../examples/create-next-app/src/app/page.tsx | 111 + .../create-next-app/tailwind.config.ts | 19 + .../examples/create-next-app/tsconfig.json | 26 + .../examples/create-next-app/wrangler.jsonc | 11 + .../examples/e2e/app-pages-router/.env | 1 + .../examples/e2e/app-pages-router/.gitignore | 42 + .../e2e/app-pages-router/CHANGELOG.md | 43 + .../examples/e2e/app-pages-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app/albums/[album]/page.tsx | 3 + .../app-pages-router/app/albums/layout.tsx | 10 + .../e2e/app-pages-router/app/albums/page.tsx | 13 + .../app-pages-router/app/api/client/route.ts | 7 + .../app-pages-router/app/api/host/route.ts | 7 + .../e2e/app-pages-router/app/api/page.tsx | 40 + .../e2e/app-pages-router/app/globals.css | 23 + .../app/image-optimization/page.tsx | 9 + .../e2e/app-pages-router/app/isr/page.tsx | 9 + .../e2e/app-pages-router/app/layout.tsx | 22 + .../e2e/app-pages-router/app/page.tsx | 48 + .../app/parallel/@a/a-page/page.tsx | 3 + .../app-pages-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../app-pages-router/app/parallel/@b/page.tsx | 11 + .../app-pages-router/app/parallel/layout.tsx | 42 + .../app-pages-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app/rewrite-destination/page.tsx | 12 + .../app/server-actions/client.tsx | 26 + .../app/server-actions/page.tsx | 10 + .../e2e/app-pages-router/app/ssr/layout.tsx | 10 + .../e2e/app-pages-router/app/ssr/loading.tsx | 3 + .../e2e/app-pages-router/app/ssr/page.tsx | 22 + .../e2e/app-pages-router/e2e/api.test.ts | 35 + .../e2e/app-pages-router/e2e/host.test.ts | 14 + .../e2e/image-optimization.test.ts | 19 + .../e2e/app-pages-router/e2e/isr.test.ts | 41 + .../e2e/middleware.redirect.test.ts | 20 + .../e2e/middleware.rewrite.test.ts | 42 + .../e2e/app-pages-router/e2e/modals.test.ts | 18 + .../app-pages-router/e2e/pages_isr.test.ts | 42 + .../app-pages-router/e2e/pages_ssr.test.ts | 27 + .../e2e/app-pages-router/e2e/parallel.test.ts | 42 + .../app-pages-router/e2e/playwright.config.ts | 3 + .../e2e/serverActions.test.ts | 22 + .../e2e/skip_trailing.test.ts | 8 + .../e2e/app-pages-router/e2e/ssr.test.ts | 33 + .../e2e/app-pages-router/middleware.ts | 78 + .../e2e/app-pages-router/next.config.ts | 19 + .../e2e/app-pages-router/open-next.config.ts | 9 + .../e2e/app-pages-router/package.json | 35 + .../e2e/app-pages-router/pages/_app.tsx | 7 + .../e2e/app-pages-router/pages/_document.tsx | 13 + .../e2e/app-pages-router/pages/api/hello.ts | 10 + .../pages/pages_isr/index.tsx | 14 + .../pages/pages_ssr/index.tsx | 13 + .../e2e/app-pages-router/postcss.config.js | 6 + .../e2e/app-pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../app-pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-pages-router/styles/globals.css | 95 + .../e2e/app-pages-router/tailwind.config.ts | 15 + .../e2e/app-pages-router/tsconfig.json | 29 + .../e2e/app-pages-router/wrangler.jsonc | 26 + .../examples/e2e/app-router/.gitignore | 43 + .../examples/e2e/app-router/CHANGELOG.md | 29 + .../examples/e2e/app-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app-router/app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app-router/app/albums/[album]/page.tsx | 3 + .../e2e/app-router/app/albums/layout.tsx | 10 + .../e2e/app-router/app/albums/page.tsx | 13 + .../app/api/after/revalidate/route.ts | 16 + .../e2e/app-router/app/api/after/ssg/route.ts | 12 + .../e2e/app-router/app/api/client/route.ts | 7 + .../e2e/app-router/app/api/host/route.ts | 7 + .../e2e/app-router/app/api/isr/route.ts | 33 + .../e2e/app-router/app/api/og/route.tsx | 72 + .../examples/e2e/app-router/app/api/page.tsx | 40 + .../app/api/revalidate-path/route.ts | 9 + .../app/api/revalidate-tag/route.ts | 9 + .../e2e/app-router/app/api/sse/route.ts | 52 + .../app-router/app/config-redirect/page.tsx | 8 + .../e2e/app-router/app/cookies/page.tsx | 7 + .../examples/e2e/app-router/app/globals.css | 23 + .../e2e/app-router/app/headers/page.tsx | 11 + .../app/image-optimization/page.tsx | 14 + .../app-router/app/isr-data-cache/page.tsx | 28 + .../isr/dynamic-params-false/[id]/page.tsx | 34 + .../app/isr/dynamic-params-true/[id]/page.tsx | 45 + .../examples/e2e/app-router/app/isr/page.tsx | 9 + .../examples/e2e/app-router/app/layout.tsx | 19 + .../get/dynamic-segments/[slug]/route.ts | 4 + .../app-router/app/methods/get/query/route.ts | 10 + .../app/methods/get/redirect/route.ts | 5 + .../app/methods/get/revalidate/route.ts | 10 + .../app/methods/get/static/route.ts | 10 + .../app/methods/post/cookies/route.ts | 19 + .../app/methods/post/formdata/route.ts | 16 + .../e2e/app-router/app/methods/route.ts | 76 + .../e2e/app-router/app/og/opengraph-image.tsx | 38 + .../examples/e2e/app-router/app/og/page.tsx | 3 + .../examples/e2e/app-router/app/page.tsx | 49 + .../app/parallel/@a/a-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@b/page.tsx | 11 + .../e2e/app-router/app/parallel/layout.tsx | 42 + .../e2e/app-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app-router/app/revalidate-path/page.tsx | 19 + .../app-router/app/revalidate-tag/layout.tsx | 15 + .../app/revalidate-tag/nested/page.tsx | 3 + .../app-router/app/revalidate-tag/page.tsx | 8 + .../app/rewrite-destination/page.tsx | 3 + .../e2e/app-router/app/search-query/page.tsx | 25 + .../app-router/app/server-actions/client.tsx | 26 + .../app-router/app/server-actions/page.tsx | 10 + .../examples/e2e/app-router/app/sse/page.tsx | 36 + .../e2e/app-router/app/ssr/layout.tsx | 12 + .../e2e/app-router/app/ssr/loading.tsx | 3 + .../examples/e2e/app-router/app/ssr/page.tsx | 25 + .../examples/e2e/app-router/e2e/after.test.ts | 29 + .../examples/e2e/app-router/e2e/api.test.ts | 29 + .../app-router/e2e/config.redirect.test.ts | 75 + .../e2e/app-router/e2e/headers.test.ts | 27 + .../examples/e2e/app-router/e2e/host.test.ts | 14 + .../app-router/e2e/image-optimization.test.ts | 19 + .../e2e/app-router/e2e/isr.revalidate.test.ts | 13 + .../examples/e2e/app-router/e2e/isr.test.ts | 162 + .../e2e/app-router/e2e/methods.test.ts | 170 + .../app-router/e2e/middleware.cookies.test.ts | 36 + .../e2e/middleware.redirect.test.ts | 38 + .../app-router/e2e/middleware.rewrite.test.ts | 16 + .../e2e/app-router/e2e/modals.test.ts | 18 + .../examples/e2e/app-router/e2e/og.test.ts | 39 + .../e2e/app-router/e2e/parallel.test.ts | 42 + .../e2e/app-router/e2e/playwright.config.ts | 3 + .../examples/e2e/app-router/e2e/query.test.ts | 19 + .../e2e/app-router/e2e/revalidateTag.test.ts | 97 + .../e2e/app-router/e2e/serverActions.test.ts | 22 + .../examples/e2e/app-router/e2e/sse.test.ts | 42 + .../examples/e2e/app-router/e2e/ssr.test.ts | 34 + .../e2e/app-router/e2e/trailing.test.ts | 20 + .../examples/e2e/app-router/middleware.ts | 80 + .../examples/e2e/app-router/next.config.ts | 79 + .../e2e/app-router/open-next.config.ts | 24 + .../examples/e2e/app-router/package.json | 35 + .../examples/e2e/app-router/postcss.config.js | 6 + .../e2e/app-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../e2e/app-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-router/tailwind.config.ts | 15 + .../examples/e2e/app-router/tsconfig.json | 29 + .../examples/e2e/app-router/wrangler.jsonc | 45 + .../examples/e2e/experimental/.gitignore | 47 + .../examples/e2e/experimental/README.md | 3 + .../experimental/e2e/nodeMiddleware.test.ts | 32 + .../e2e/experimental/e2e/playwright.config.ts | 3 + .../examples/e2e/experimental/e2e/ppr.test.ts | 24 + .../e2e/experimental/e2e/use-cache.test.ts | 127 + .../examples/e2e/experimental/next.config.ts | 23 + .../e2e/experimental/open-next.config.ts | 17 + .../examples/e2e/experimental/package.json | 30 + .../src/app/api/revalidate/route.ts | 6 + .../e2e/experimental/src/app/favicon.ico | Bin 0 -> 25931 bytes .../e2e/experimental/src/app/globals.css | 42 + .../e2e/experimental/src/app/layout.tsx | 31 + .../e2e/experimental/src/app/page.module.css | 168 + .../e2e/experimental/src/app/page.tsx | 14 + .../e2e/experimental/src/app/ppr/page.tsx | 16 + .../src/app/use-cache/fetch/page.tsx | 22 + .../src/app/use-cache/isr/page.tsx | 17 + .../experimental/src/app/use-cache/layout.tsx | 14 + .../src/app/use-cache/ssr/page.tsx | 23 + .../experimental/src/components/cached.tsx | 33 + .../experimental/src/components/dynamic.tsx | 15 + .../experimental/src/components/static.tsx | 8 + .../e2e/experimental/src/middleware.ts | 30 + .../examples/e2e/experimental/tsconfig.json | 27 + .../examples/e2e/experimental/wrangler.jsonc | 44 + .../examples/e2e/pages-router/.env.production | 1 + .../examples/e2e/pages-router/.gitignore | 43 + .../examples/e2e/pages-router/README.md | 3 + .../examples/e2e/pages-router/e2e/404.test.ts | 9 + .../examples/e2e/pages-router/e2e/amp.test.ts | 15 + .../examples/e2e/pages-router/e2e/api.test.ts | 43 + .../e2e/pages-router/e2e/data.test.ts | 21 + .../e2e/pages-router/e2e/fallback.test.ts | 40 + .../e2e/pages-router/e2e/head.test.ts | 21 + .../e2e/pages-router/e2e/header.test.ts | 12 + .../e2e/pages-router/e2e/i18n.test.ts | 17 + .../examples/e2e/pages-router/e2e/isr.test.ts | 41 + .../e2e/pages-router/e2e/playwright.config.ts | 3 + .../e2e/pages-router/e2e/redirect.test.ts | 25 + .../e2e/pages-router/e2e/revalidate.test.ts | 19 + .../e2e/pages-router/e2e/rewrite.test.ts | 37 + .../examples/e2e/pages-router/e2e/ssr.test.ts | 33 + .../e2e/pages-router/e2e/streaming.test.ts | 48 + .../e2e/pages-router/e2e/trailing.test.ts | 15 + .../examples/e2e/pages-router/next.config.ts | 68 + .../e2e/pages-router/open-next.config.ts | 8 + .../examples/e2e/pages-router/package.json | 35 + .../e2e/pages-router/postcss.config.js | 8 + .../e2e/pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../e2e/pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/pages-router/src/middleware.ts | 14 + .../e2e/pages-router/src/pages/_app.tsx | 7 + .../e2e/pages-router/src/pages/_document.tsx | 13 + .../e2e/pages-router/src/pages/amp/index.tsx | 39 + .../src/pages/api/dynamic/[slug].ts | 6 + .../dynamic/catch-all-optional/[[...slug]].ts | 5 + .../pages/api/dynamic/catch-all/[...slug].ts | 9 + .../src/pages/api/dynamic/precedence/index.ts | 5 + .../e2e/pages-router/src/pages/api/hello.ts | 10 + .../e2e/pages-router/src/pages/api/query.ts | 5 + .../pages-router/src/pages/api/revalidate.ts | 11 + .../src/pages/api/streaming/index.ts | 42 + .../pages/fallback-intercepted/[...slugs].tsx | 18 + .../src/pages/fallback-intercepted/[slug].tsx | 31 + .../src/pages/fallback-intercepted/ssg.tsx | 18 + .../src/pages/fallback-intercepted/static.tsx | 8 + .../src/pages/fallback/[slug].tsx | 31 + .../e2e/pages-router/src/pages/head/index.tsx | 28 + .../e2e/pages-router/src/pages/index.tsx | 34 + .../e2e/pages-router/src/pages/isr/index.tsx | 20 + .../e2e/pages-router/src/pages/sse/index.tsx | 74 + .../e2e/pages-router/src/pages/ssg/index.tsx | 21 + .../e2e/pages-router/src/pages/ssr/index.tsx | 20 + .../e2e/pages-router/src/styles/globals.css | 95 + .../examples/e2e/pages-router/tsconfig.json | 25 + .../examples/e2e/pages-router/wrangler.jsonc | 23 + .../examples/e2e/shared/api/index.ts | 37 + .../examples/e2e/shared/api/songs.json | 36 + .../e2e/shared/components/Album/Album.tsx | 17 + .../e2e/shared/components/Album/Song.tsx | 23 + .../e2e/shared/components/Album/index.tsx | 21 + .../e2e/shared/components/Filler/index.tsx | 13 + .../e2e/shared/components/Modal/index.tsx | 51 + .../e2e/shared/components/Nav/index.tsx | 27 + .../examples/e2e/shared/package.json | 19 + .../examples/e2e/shared/sst-env.d.ts | 1 + .../examples/e2e/shared/tsconfig.json | 32 + .conflict-base-0/examples/e2e/utils.ts | 5 + .conflict-base-0/examples/middleware/.env | 1 + .../examples/middleware/.gitignore | 42 + .../examples/middleware/README.md | 31 + .../examples/middleware/app/about/page.tsx | 3 + .../examples/middleware/app/about2/page.tsx | 3 + .../examples/middleware/app/another/page.tsx | 3 + .../examples/middleware/app/clerk/route.ts | 3 + .../examples/middleware/app/layout.tsx | 14 + .../middleware/app/middleware/page.tsx | 25 + .../examples/middleware/app/page.tsx | 21 + .../middleware/app/redirected/page.tsx | 3 + .../examples/middleware/app/rewrite/page.tsx | 3 + .../examples/middleware/e2e/base.spec.ts | 39 + .../middleware/e2e/cloudflare-context.spec.ts | 11 + .../middleware/e2e/playwright.config.ts | 3 + .../middleware/e2e/playwright.dev.config.ts | 6 + .../examples/middleware/middleware.ts | 38 + .../examples/middleware/next.config.mjs | 11 + .../examples/middleware/open-next.config.ts | 3 + .../examples/middleware/package.json | 31 + .../examples/middleware/public/favicon.ico | Bin 0 -> 25931 bytes .../examples/middleware/public/vercel.svg | 4 + .../examples/middleware/tsconfig.json | 25 + .../examples/middleware/wrangler.jsonc | 15 + .../next-partial-prerendering/.gitignore | 40 + .../next-partial-prerendering/.prettierrc | 3 + .../next-partial-prerendering/README.md | 23 + .../next-partial-prerendering/app/favicon.ico | Bin 0 -> 15086 bytes .../next-partial-prerendering/app/layout.tsx | 50 + .../app/not-found.tsx | 8 + .../app/opengraph-image.png | Bin 0 -> 98894 bytes .../next-partial-prerendering/app/page.tsx | 28 + .../next-partial-prerendering/app/styles.tsx | 13 + .../app/twitter-image.png | Bin 0 -> 98894 bytes .../components/add-to-cart.tsx | 56 + .../components/byline.tsx | 31 + .../components/cart-count-context.tsx | 35 + .../components/cart-count.tsx | 8 + .../components/header.tsx | 60 + .../components/next-logo.tsx | 54 + .../components/ping.tsx | 12 + .../components/pricing.tsx | 86 + .../components/product-best-seller.tsx | 7 + .../components/product-card.tsx | 54 + .../components/product-currency-symbol.tsx | 27 + .../components/product-deal.tsx | 36 + .../components/product-estimated-arrival.tsx | 24 + .../components/product-lightening-deal.tsx | 28 + .../components/product-low-stock-warning.tsx | 13 + .../components/product-price.tsx | 52 + .../components/product-rating.tsx | 17 + .../components/product-review-card.tsx | 19 + .../components/product-split-payments.tsx | 17 + .../components/product-used-price.tsx | 19 + .../components/recommended-products.tsx | 68 + .../components/reviews.tsx | 51 + .../components/sidebar.tsx | 100 + .../components/single-product.tsx | 84 + .../components/vercel-logo.tsx | 11 + .../e2e/playwright.config.ts | 3 + .../next-partial-prerendering/e2e/ppr.test.ts | 32 + .../next-partial-prerendering/lib/delay.ts | 17 + .../next-partial-prerendering/lib/products.ts | 106 + .../next-partial-prerendering/lib/reviews.ts | 23 + .../next-partial-prerendering/next.config.js | 10 + .../open-next.config.ts | 6 + .../next-partial-prerendering/package.json | 36 + .../postcss.config.js | 6 + ...alexander-andrews-brAkTCdnhW8-unsplash.jpg | Bin 0 -> 119158 bytes .../public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg | Bin 0 -> 97041 bytes .../next-partial-prerendering/public/grid.svg | 5 + .../guillaume-coupy-6HuoHgK7FN8-unsplash.jpg | Bin 0 -> 111468 bytes .../public/nextjs-icon-light-background.png | Bin 0 -> 31283 bytes .../public/patrick-OIFgeLnjwrM-unsplash.jpg | Bin 0 -> 111044 bytes .../prince-akachi-LWkFHEGpleE-unsplash.jpg | Bin 0 -> 36336 bytes .../yoann-siloine-_T4w3JDm6ug-unsplash.jpg | Bin 0 -> 114615 bytes .../tailwind.config.ts | 89 + .../next-partial-prerendering/tsconfig.json | 29 + .../types/product.d.ts | 37 + .../types/review.d.ts | 6 + .../next-partial-prerendering/wrangler.jsonc | 11 + .../examples/overrides/d1-tag-next/.gitignore | 47 + .../overrides/d1-tag-next/app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../overrides/d1-tag-next/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/d1-tag-next/app/globals.css | 14 + .../overrides/d1-tag-next/app/layout.tsx | 28 + .../overrides/d1-tag-next/app/page.module.css | 17 + .../overrides/d1-tag-next/app/page.tsx | 26 + .../overrides/d1-tag-next/e2e/base.spec.ts | 47 + .../d1-tag-next/e2e/playwright.config.ts | 4 + .../overrides/d1-tag-next/next.config.ts | 11 + .../overrides/d1-tag-next/open-next.config.ts | 8 + .../overrides/d1-tag-next/package.json | 29 + .../overrides/d1-tag-next/tsconfig.json | 27 + .../overrides/d1-tag-next/wrangler.jsonc | 27 + .../overrides/memory-queue/.gitignore | 47 + .../overrides/memory-queue/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/memory-queue/app/globals.css | 14 + .../overrides/memory-queue/app/layout.tsx | 25 + .../memory-queue/app/page.module.css | 17 + .../overrides/memory-queue/app/page.tsx | 16 + .../overrides/memory-queue/e2e/base.spec.ts | 36 + .../memory-queue/e2e/playwright.config.ts | 8 + .../overrides/memory-queue/next.config.ts | 11 + .../memory-queue/open-next.config.ts | 8 + .../overrides/memory-queue/package.json | 29 + .../overrides/memory-queue/tsconfig.json | 27 + .../overrides/memory-queue/wrangler.jsonc | 23 + .../overrides/r2-incremental-cache/.gitignore | 47 + .../r2-incremental-cache/app/favicon.ico | Bin 0 -> 25931 bytes .../r2-incremental-cache/app/globals.css | 14 + .../r2-incremental-cache/app/layout.tsx | 25 + .../r2-incremental-cache/app/page.module.css | 17 + .../r2-incremental-cache/app/page.tsx | 16 + .../r2-incremental-cache/e2e/base.spec.ts | 36 + .../e2e/playwright.config.ts | 8 + .../r2-incremental-cache/next.config.ts | 11 + .../r2-incremental-cache/open-next.config.ts | 14 + .../r2-incremental-cache/package.json | 29 + .../r2-incremental-cache/tsconfig.json | 27 + .../r2-incremental-cache/wrangler.jsonc | 37 + .../.gitignore | 47 + .../app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../app/favicon.ico | Bin 0 -> 25931 bytes .../app/globals.css | 14 + .../app/layout.tsx | 28 + .../app/page.module.css | 17 + .../app/page.tsx | 26 + .../e2e/base.spec.ts | 41 + .../e2e/playwright.config.ts | 7 + .../next-env.d.ts | 5 + .../next.config.ts | 11 + .../open-next.config.ts | 6 + .../package.json | 29 + .../tsconfig.json | 27 + .../wrangler.jsonc | 11 + .../examples/playground14/.dev.vars | 1 + .../examples/playground14/.env.development | 2 + .../examples/playground14/.gitignore | 45 + .../playground14/app/api/buildid/route.ts | 9 + .../playground14/app/api/env/route.ts | 8 + .../playground14/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 10 + .../playground14/app/api/request/route.ts | 5 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground14/app/layout.js | 12 + .../examples/playground14/app/og/route.tsx | 65 + .../examples/playground14/app/page.js | 7 + .../examples/playground14/e2e/base.spec.ts | 66 + .../playground14/e2e/cloudflare.spec.ts | 56 + .../examples/playground14/e2e/head.spec.ts | 13 + .../playground14/e2e/instrumentation.spec.ts | 36 + .../examples/playground14/e2e/isr.spec.ts | 32 + .../playground14/e2e/playwright.config.ts | 3 + .../playground14/e2e/playwright.dev.config.ts | 6 + .../examples/playground14/instrumentation.js | 15 + .../examples/playground14/lib/posts.ts | 53 + .../examples/playground14/middleware.js | 12 + .../examples/playground14/next.config.mjs | 31 + .../examples/playground14/open-next.config.ts | 7 + .../examples/playground14/package.json | 29 + .../examples/playground14/pages/api/pages.ts | 9 + .../examples/playground14/pages/head.tsx | 23 + .../examples/playground14/public/.gitkeep | 0 .../playground14/public/snipp/snipp.webp | Bin 0 -> 322224 bytes .../examples/playground14/tsconfig.json | 24 + .../playground14/worker-configuration.d.ts | 6415 +++++ .../examples/playground14/worker.ts | 21 + .../examples/playground14/wrangler.jsonc | 22 + .../examples/playground15/.dev.vars | 1 + .../examples/playground15/.env.development | 1 + .../examples/playground15/.gitignore | 45 + .../playground15/app/api/buildid/route.ts | 9 + .../playground15/app/api/env/route.ts | 10 + .../playground15/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 8 + .../playground15/app/api/request/route.ts | 5 + .../playground15/app/from-app/page.tsx | 29 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground15/app/layout.js | 12 + .../examples/playground15/app/og/route.tsx | 65 + .../playground15/app/other-app/page.tsx | 24 + .../examples/playground15/app/page.js | 7 + .../examples/playground15/data.js | 6 + .../examples/playground15/data.module.css | 3 + .../examples/playground15/e2e/base.spec.ts | 61 + .../playground15/e2e/cloudflare.spec.ts | 16 + .../examples/playground15/e2e/head.spec.ts | 13 + .../playground15/e2e/instrumentation.spec.ts | 36 + .../examples/playground15/e2e/isr.spec.ts | 32 + .../playground15/e2e/playwright.config.ts | 3 + .../playground15/e2e/playwright.dev.config.ts | 6 + .../examples/playground15/instrumentation.js | 22 + .../examples/playground15/lib/posts.ts | 53 + .../examples/playground15/middleware.js | 12 + .../examples/playground15/next.config.mjs | 16 + .../examples/playground15/open-next.config.ts | 13 + .../examples/playground15/package.json | 29 + .../examples/playground15/pages/head.tsx | 23 + .../examples/playground15/public/.gitkeep | 0 .../examples/playground15/public/test.jpg | Bin 0 -> 6765 bytes .../examples/playground15/tsconfig.json | 25 + .../playground15/worker-configuration.d.ts | 5 + .../examples/playground15/wrangler.jsonc | 21 + .conflict-base-0/examples/prisma/.gitignore | 47 + .conflict-base-0/examples/prisma/README.md | 36 + .../examples/prisma/e2e/playwright.config.ts | 3 + .../prisma/e2e/playwright.dev.config.ts | 6 + .../examples/prisma/e2e/prisma.spec.ts | 21 + .../examples/prisma/next.config.ts | 11 + .../examples/prisma/open-next.config.ts | 3 + .conflict-base-0/examples/prisma/package.json | 34 + .conflict-base-0/examples/prisma/populate.sql | 11 + .../examples/prisma/prisma.config.ts | 6 + .../examples/prisma/schema.prisma | 15 + .../examples/prisma/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/prisma/src/app/globals.css | 42 + .../examples/prisma/src/app/layout.tsx | 30 + .../examples/prisma/src/app/page.module.css | 168 + .../examples/prisma/src/app/page.tsx | 22 + .../examples/prisma/src/lib/db.ts | 11 + .../examples/prisma/tsconfig.json | 27 + .../examples/prisma/worker-configuration.d.ts | 6452 +++++ .../examples/prisma/wrangler.jsonc | 18 + .conflict-base-0/examples/ssg-app/.dev.vars | 1 + .conflict-base-0/examples/ssg-app/.gitignore | 47 + .../examples/ssg-app/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/ssg-app/app/globals.css | 14 + .../examples/ssg-app/app/layout.tsx | 28 + .../examples/ssg-app/app/page.module.css | 17 + .../examples/ssg-app/app/page.tsx | 17 + .../examples/ssg-app/e2e/base.spec.ts | 19 + .../examples/ssg-app/e2e/playwright.config.ts | 3 + .../examples/ssg-app/next.config.ts | 11 + .../examples/ssg-app/open-next.config.ts | 6 + .../examples/ssg-app/package.json | 29 + .../examples/ssg-app/tsconfig.json | 27 + .../ssg-app/worker-configuration.d.ts | 5 + .../examples/ssg-app/wrangler.jsonc | 14 + .../examples/vercel-blog-starter/.gitignore | 40 + .../examples/vercel-blog-starter/README.md | 63 + .../_posts/dynamic-routing.md | 19 + .../vercel-blog-starter/_posts/hello-world.md | 19 + .../vercel-blog-starter/_posts/preview.md | 19 + .../vercel-blog-starter/next.config.mjs | 7 + .../vercel-blog-starter/open-next.config.ts | 6 + .../examples/vercel-blog-starter/package.json | 33 + .../vercel-blog-starter/postcss.config.js | 6 + .../public/assets/blog/authors/jj.jpeg | Bin 0 -> 6186 bytes .../public/assets/blog/authors/joe.jpeg | Bin 0 -> 7196 bytes .../public/assets/blog/authors/tim.jpeg | Bin 0 -> 6148 bytes .../assets/blog/dynamic-routing/cover.jpg | Bin 0 -> 117724 bytes .../public/assets/blog/hello-world/cover.jpg | Bin 0 -> 105406 bytes .../public/assets/blog/preview/cover.jpg | Bin 0 -> 44270 bytes .../public/favicon/android-chrome-192x192.png | Bin 0 -> 4795 bytes .../public/favicon/android-chrome-512x512.png | Bin 0 -> 14640 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 1327 bytes .../public/favicon/browserconfig.xml | 9 + .../public/favicon/favicon-16x16.png | Bin 0 -> 595 bytes .../public/favicon/favicon-32x32.png | Bin 0 -> 880 bytes .../public/favicon/favicon.ico | Bin 0 -> 15086 bytes .../public/favicon/mstile-150x150.png | Bin 0 -> 3567 bytes .../public/favicon/safari-pinned-tab.svg | 33 + .../public/favicon/site.webmanifest | 19 + .../src/app/_components/alert.tsx | 48 + .../src/app/_components/avatar.tsx | 15 + .../src/app/_components/container.tsx | 9 + .../src/app/_components/cover-image.tsx | 36 + .../src/app/_components/date-formatter.tsx | 12 + .../src/app/_components/footer.tsx | 32 + .../src/app/_components/header.tsx | 14 + .../src/app/_components/hero-post.tsx | 40 + .../src/app/_components/intro.tsx | 19 + .../_components/markdown-styles.module.css | 18 + .../src/app/_components/more-stories.tsx | 27 + .../src/app/_components/post-body.tsx | 13 + .../src/app/_components/post-header.tsx | 34 + .../src/app/_components/post-preview.tsx | 34 + .../src/app/_components/post-title.tsx | 13 + .../src/app/_components/section-separator.tsx | 3 + .../src/app/_components/switch.module.css | 55 + .../src/app/_components/theme-switcher.tsx | 106 + .../vercel-blog-starter/src/app/globals.css | 3 + .../vercel-blog-starter/src/app/layout.tsx | 46 + .../vercel-blog-starter/src/app/page.tsx | 30 + .../src/app/posts/[slug]/page.tsx | 65 + .../src/interfaces/author.ts | 4 + .../src/interfaces/post.ts | 15 + .../vercel-blog-starter/src/lib/api.ts | 28 + .../vercel-blog-starter/src/lib/constants.ts | 4 + .../src/lib/markdownToHtml.ts | 7 + .../vercel-blog-starter/tailwind.config.ts | 43 + .../vercel-blog-starter/tsconfig.json | 26 + .../vercel-blog-starter/wrangler.jsonc | 11 + .conflict-base-0/package.json | 28 + .../packages/cloudflare/.gitignore | 1 + .../packages/cloudflare/CHANGELOG.md | 835 + .../packages/cloudflare/README.md | 57 + .conflict-base-0/packages/cloudflare/env.d.ts | 14 + .../packages/cloudflare/eslint.config.mjs | 39 + .../packages/cloudflare/package.json | 89 + .../cloudflare/src/api/cloudflare-context.ts | 362 + .../packages/cloudflare/src/api/config.ts | 200 + .../bucket-cache-purge.spec.ts | 149 + .../api/durable-objects/bucket-cache-purge.ts | 95 + .../src/api/durable-objects/queue.spec.ts | 350 + .../src/api/durable-objects/queue.ts | 309 + .../durable-objects/sharded-tag-cache.spec.ts | 43 + .../api/durable-objects/sharded-tag-cache.ts | 53 + .../packages/cloudflare/src/api/index.ts | 2 + .../overrides/asset-resolver/index.spec.ts | 47 + .../src/api/overrides/asset-resolver/index.ts | 97 + .../src/api/overrides/cache-purge/index.ts | 32 + .../incremental-cache/kv-incremental-cache.ts | 111 + .../incremental-cache/r2-incremental-cache.ts | 91 + .../incremental-cache/regional-cache.ts | 236 + .../static-assets-incremental-cache.ts | 74 + .../cloudflare/src/api/overrides/internal.ts | 102 + .../src/api/overrides/queue/do-queue.ts | 18 + .../api/overrides/queue/memory-queue.spec.ts | 87 + .../src/api/overrides/queue/memory-queue.ts | 69 + .../api/overrides/queue/queue-cache.spec.ts | 112 + .../src/api/overrides/queue/queue-cache.ts | 122 + .../overrides/tag-cache/d1-next-tag-cache.ts | 97 + .../tag-cache/do-sharded-tag-cache.spec.ts | 465 + .../tag-cache/do-sharded-tag-cache.ts | 469 + .../tag-cache/tag-cache-filter.spec.ts | 120 + .../overrides/tag-cache/tag-cache-filter.ts | 65 + .../cloudflare/src/cli/build/build.ts | 100 + .../cloudflare/src/cli/build/bundle-server.ts | 192 + .../compile-cache-assets-manifest.ts | 25 + .../cli/build/open-next/compile-env-files.ts | 20 + .../src/cli/build/open-next/compile-images.ts | 47 + .../src/cli/build/open-next/compile-init.ts | 36 + .../open-next/compile-skew-protection.ts | 28 + .../build/open-next/compileDurableObjects.ts | 41 + .../cli/build/open-next/createServerBundle.ts | 360 + .../ast/patch-vercel-og-library.spec.ts | 71 + .../patches/ast/patch-vercel-og-library.ts | 71 + .../cli/build/patches/ast/vercel-og.spec.ts | 27 + .../src/cli/build/patches/ast/vercel-og.ts | 62 + .../build/patches/ast/webpack-runtime.spec.ts | 113 + .../cli/build/patches/ast/webpack-runtime.ts | 110 + .../build/patches/plugins/dynamic-requires.ts | 161 + .../src/cli/build/patches/plugins/find-dir.ts | 50 + .../patches/plugins/instrumentation.spec.ts | 98 + .../build/patches/plugins/instrumentation.ts | 96 + .../build/patches/plugins/load-manifest.ts | 113 + .../build/patches/plugins/next-server.spec.ts | 190 + .../cli/build/patches/plugins/next-server.ts | 106 + .../cli/build/patches/plugins/open-next.ts | 49 + .../build/patches/plugins/optional-deps.ts | 63 + .../patches/plugins/pages-router-context.ts | 38 + .../plugins/patch-depd-deprecations.spec.ts | 32 + .../plugins/patch-depd-deprecations.ts | 47 + .../cli/build/patches/plugins/require-hook.ts | 20 + .../src/cli/build/patches/plugins/require.ts | 52 + .../patches/plugins/res-revalidate.spec.ts | 106 + .../build/patches/plugins/res-revalidate.ts | 83 + .../build/patches/plugins/use-cache.spec.ts | 104 + .../cli/build/patches/plugins/use-cache.ts | 43 + .../patches/plugins/wrangler-external.ts | 46 + .../cli/build/utils/copy-package-cli-files.ts | 23 + .../cli/build/utils/create-config-files.ts | 111 + .../src/cli/build/utils/ensure-cf-config.ts | 71 + .../utils/extract-project-env-vars.spec.ts | 81 + .../build/utils/extract-project-env-vars.ts | 36 + .../cloudflare/src/cli/build/utils/index.ts | 6 + .../build/utils/needs-experimental-react.ts | 19 + .../src/cli/build/utils/normalize-path.ts | 5 + .../src/cli/build/utils/test-patch.ts | 15 + .../cloudflare/src/cli/build/utils/version.ts | 13 + .../src/cli/build/utils/workerd.spec.ts | 209 + .../cloudflare/src/cli/build/utils/workerd.ts | 104 + .../cloudflare/src/cli/commands/build.ts | 48 + .../cloudflare/src/cli/commands/deploy.ts | 50 + .../cloudflare/src/cli/commands/helpers.ts | 41 + .../src/cli/commands/populate-cache.spec.ts | 70 + .../src/cli/commands/populate-cache.ts | 317 + .../cloudflare/src/cli/commands/preview.ts | 28 + .../cloudflare/src/cli/commands/setup-cli.ts | 112 + .../src/cli/commands/skew-protection.spec.ts | 69 + .../src/cli/commands/skew-protection.ts | 263 + .../cloudflare/src/cli/commands/upload.ts | 48 + .../packages/cloudflare/src/cli/index.ts | 25 + .../cloudflare/src/cli/project-options.ts | 13 + .../src/cli/templates/images.spec.ts | 428 + .../cloudflare/src/cli/templates/images.ts | 229 + .../cloudflare/src/cli/templates/init.ts | 160 + .../src/cli/templates/shims/empty.ts | 1 + .../cloudflare/src/cli/templates/shims/env.ts | 1 + .../src/cli/templates/shims/fetch.ts | 1 + .../src/cli/templates/shims/throw.ts | 2 + .../src/cli/templates/skew-protection.ts | 74 + .../cloudflare/src/cli/templates/worker.ts | 60 + .../src/cli/utils/ask-confirmation.ts | 19 + .../cloudflare/src/cli/utils/run-wrangler.ts | 91 + .../utils/get-package-templates-dir-path.ts | 15 + .../cloudflare/templates/open-next.config.ts | 7 + .../cloudflare/templates/wrangler.jsonc | 22 + .../packages/cloudflare/tsconfig.json | 20 + .conflict-base-0/pnpm-lock.yaml | 20530 +++++++++++++++ .../pnpm-workspace.yaml | 0 .conflict-files | 3 + .conflict-side-0/.changeset/README.md | 8 + .conflict-side-0/.changeset/config.json | 17 + .../.changeset/empty-garlics-lead.md | 5 + .../.changeset/hungry-ideas-buy.md | 5 + .conflict-side-0/.editorconfig | 6 + .../.github/ISSUE_TEMPLATE/1.bug_report.yml | 71 + .../ISSUE_TEMPLATE/2.feature_request.yml | 68 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../actions/install-dependencies/action.yml | 21 + .../actions/setup-playwright/action.yml | 27 + .../.github/workflows/changesets.yml | 35 + .conflict-side-0/.github/workflows/checks.yml | 24 + .../.github/workflows/playwright.yml | 39 + .../.github/workflows/prereleases.yml | 27 + .conflict-side-0/.gitignore | 8 + .conflict-side-0/.prettierignore | 7 + .conflict-side-0/.prettierrc | 16 + .conflict-side-0/.vscode/settings.json | 4 + .conflict-side-0/CONTRIBUTING.md | 183 + .conflict-side-0/LICENSE | 25 + .conflict-side-0/README.md | 41 + .conflict-side-0/benchmarking/.gitignore | 1 + .conflict-side-0/benchmarking/README.md | 17 + .conflict-side-0/benchmarking/package.json | 14 + .../benchmarking/src/benchmarking.ts | 132 + .../benchmarking/src/cloudflare.ts | 123 + .conflict-side-0/benchmarking/src/index.ts | 42 + .conflict-side-0/benchmarking/src/utils.ts | 61 + .conflict-side-0/benchmarking/tsconfig.json | 15 + .../examples/bugs/gh-119/.eslintrc.json | 3 + .../examples/bugs/gh-119/.gitignore | 47 + .../examples/bugs/gh-119/README.md | 36 + .../examples/bugs/gh-119/app/favicon.ico | Bin 0 -> 25931 bytes .../bugs/gh-119/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../bugs/gh-119/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../examples/bugs/gh-119/app/globals.css | 21 + .../examples/bugs/gh-119/app/layout.tsx | 31 + .../examples/bugs/gh-119/app/page.tsx | 70 + .../examples/bugs/gh-119/e2e/base.spec.ts | 8 + .../bugs/gh-119/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-119/next.config.ts | 8 + .../examples/bugs/gh-119/open-next.config.ts | 3 + .../examples/bugs/gh-119/package.json | 34 + .../examples/bugs/gh-119/postcss.config.mjs | 8 + .../examples/bugs/gh-119/public/file.svg | 1 + .../examples/bugs/gh-119/public/globe.svg | 1 + .../examples/bugs/gh-119/public/next.svg | 1 + .../examples/bugs/gh-119/public/vercel.svg | 1 + .../examples/bugs/gh-119/public/window.svg | 1 + .../examples/bugs/gh-119/tailwind.config.ts | 18 + .../examples/bugs/gh-119/tsconfig.json | 27 + .../examples/bugs/gh-119/wrangler.jsonc | 11 + .../examples/bugs/gh-219/.dev.vars | 1 + .../examples/bugs/gh-219/.gitignore | 56 + .../examples/bugs/gh-219/README.md | 38 + .../examples/bugs/gh-219/e2e/base.spec.ts | 8 + .../bugs/gh-219/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-219/eslint.config.mjs | 14 + .../examples/bugs/gh-219/next.config.ts | 8 + .../examples/bugs/gh-219/open-next.config.ts | 3 + .../examples/bugs/gh-219/package.json | 61 + .../examples/bugs/gh-219/postcss.config.mjs | 8 + .../examples/bugs/gh-219/public/file.svg | 1 + .../examples/bugs/gh-219/public/globe.svg | 1 + .../examples/bugs/gh-219/public/next.svg | 1 + .../examples/bugs/gh-219/public/vercel.svg | 1 + .../examples/bugs/gh-219/public/window.svg | 1 + .../examples/bugs/gh-219/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-219/src/app/globals.css | 21 + .../examples/bugs/gh-219/src/app/layout.tsx | 30 + .../examples/bugs/gh-219/src/app/page.tsx | 70 + .../bugs/gh-219/src/firebase/config.js | 23 + .../examples/bugs/gh-219/tailwind.config.ts | 18 + .../examples/bugs/gh-219/tsconfig.json | 27 + .../examples/bugs/gh-219/wrangler.jsonc | 11 + .../examples/bugs/gh-223/.eslintrc.json | 3 + .../examples/bugs/gh-223/.gitignore | 53 + .../examples/bugs/gh-223/README.md | 36 + .../bugs/gh-223/app/api/image/route.ts | 16 + .../examples/bugs/gh-223/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-223/app/globals.css | 29 + .../examples/bugs/gh-223/app/layout.tsx | 22 + .../examples/bugs/gh-223/app/page.tsx | 113 + .../examples/bugs/gh-223/e2e/base.spec.ts | 9 + .../bugs/gh-223/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-223/next.config.mjs | 7 + .../examples/bugs/gh-223/open-next.config.ts | 3 + .../examples/bugs/gh-223/package.json | 37 + .../examples/bugs/gh-223/postcss.config.mjs | 8 + .../examples/bugs/gh-223/public/next.svg | 1 + .../examples/bugs/gh-223/public/vercel.svg | 1 + .../examples/bugs/gh-223/src/utils/common.ts | 29 + .../bugs/gh-223/src/utils/s3Bucket.ts | 30 + .../examples/bugs/gh-223/tailwind.config.ts | 19 + .../examples/bugs/gh-223/tsconfig.json | 28 + .../examples/bugs/gh-223/wrangler.jsonc | 11 + .conflict-side-0/examples/common/apps.ts | 53 + .../examples/common/config-e2e.ts | 93 + .conflict-side-0/examples/common/package.json | 5 + .../examples/common/tsconfig.json | 15 + .../examples/create-next-app/.eslintrc.json | 3 + .../examples/create-next-app/.gitignore | 45 + .../examples/create-next-app/README.md | 36 + .../examples/create-next-app/e2e/base.spec.ts | 8 + .../create-next-app/e2e/playwright.config.ts | 3 + .../examples/create-next-app/next.config.mjs | 11 + .../create-next-app/open-next.config.ts | 3 + .../examples/create-next-app/package.json | 33 + .../create-next-app/postcss.config.mjs | 8 + .../examples/create-next-app/public/next.svg | 1 + .../create-next-app/public/vercel.svg | 1 + .../create-next-app/src/app/favicon.ico | Bin 0 -> 25931 bytes .../src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../create-next-app/src/app/globals.css | 27 + .../create-next-app/src/app/layout.tsx | 31 + .../examples/create-next-app/src/app/page.tsx | 111 + .../create-next-app/tailwind.config.ts | 19 + .../examples/create-next-app/tsconfig.json | 26 + .../examples/create-next-app/wrangler.jsonc | 11 + .../examples/e2e/app-pages-router/.env | 1 + .../examples/e2e/app-pages-router/.gitignore | 42 + .../e2e/app-pages-router/CHANGELOG.md | 43 + .../examples/e2e/app-pages-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app/albums/[album]/page.tsx | 3 + .../app-pages-router/app/albums/layout.tsx | 10 + .../e2e/app-pages-router/app/albums/page.tsx | 13 + .../app-pages-router/app/api/client/route.ts | 7 + .../app-pages-router/app/api/host/route.ts | 7 + .../e2e/app-pages-router/app/api/page.tsx | 40 + .../e2e/app-pages-router/app/globals.css | 23 + .../app/image-optimization/page.tsx | 9 + .../e2e/app-pages-router/app/isr/page.tsx | 9 + .../e2e/app-pages-router/app/layout.tsx | 22 + .../e2e/app-pages-router/app/page.tsx | 48 + .../app/parallel/@a/a-page/page.tsx | 3 + .../app-pages-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../app-pages-router/app/parallel/@b/page.tsx | 11 + .../app-pages-router/app/parallel/layout.tsx | 42 + .../app-pages-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app/rewrite-destination/page.tsx | 12 + .../app/server-actions/client.tsx | 26 + .../app/server-actions/page.tsx | 10 + .../e2e/app-pages-router/app/ssr/layout.tsx | 10 + .../e2e/app-pages-router/app/ssr/loading.tsx | 3 + .../e2e/app-pages-router/app/ssr/page.tsx | 22 + .../e2e/app-pages-router/e2e/api.test.ts | 35 + .../e2e/app-pages-router/e2e/host.test.ts | 14 + .../e2e/image-optimization.test.ts | 19 + .../e2e/app-pages-router/e2e/isr.test.ts | 41 + .../e2e/middleware.redirect.test.ts | 20 + .../e2e/middleware.rewrite.test.ts | 42 + .../e2e/app-pages-router/e2e/modals.test.ts | 18 + .../app-pages-router/e2e/pages_isr.test.ts | 42 + .../app-pages-router/e2e/pages_ssr.test.ts | 27 + .../e2e/app-pages-router/e2e/parallel.test.ts | 42 + .../app-pages-router/e2e/playwright.config.ts | 3 + .../e2e/serverActions.test.ts | 22 + .../e2e/skip_trailing.test.ts | 8 + .../e2e/app-pages-router/e2e/ssr.test.ts | 33 + .../e2e/app-pages-router/middleware.ts | 78 + .../e2e/app-pages-router/next.config.ts | 19 + .../e2e/app-pages-router/open-next.config.ts | 9 + .../e2e/app-pages-router/package.json | 35 + .../e2e/app-pages-router/pages/_app.tsx | 7 + .../e2e/app-pages-router/pages/_document.tsx | 13 + .../e2e/app-pages-router/pages/api/hello.ts | 10 + .../pages/pages_isr/index.tsx | 14 + .../pages/pages_ssr/index.tsx | 13 + .../e2e/app-pages-router/postcss.config.js | 6 + .../e2e/app-pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../app-pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-pages-router/styles/globals.css | 95 + .../e2e/app-pages-router/tailwind.config.ts | 15 + .../e2e/app-pages-router/tsconfig.json | 29 + .../e2e/app-pages-router/wrangler.jsonc | 26 + .../examples/e2e/app-router/.gitignore | 43 + .../examples/e2e/app-router/CHANGELOG.md | 29 + .../examples/e2e/app-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app-router/app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app-router/app/albums/[album]/page.tsx | 3 + .../e2e/app-router/app/albums/layout.tsx | 10 + .../e2e/app-router/app/albums/page.tsx | 13 + .../app/api/after/revalidate/route.ts | 16 + .../e2e/app-router/app/api/after/ssg/route.ts | 12 + .../e2e/app-router/app/api/client/route.ts | 7 + .../e2e/app-router/app/api/host/route.ts | 7 + .../e2e/app-router/app/api/isr/route.ts | 33 + .../e2e/app-router/app/api/og/route.tsx | 72 + .../examples/e2e/app-router/app/api/page.tsx | 40 + .../app/api/revalidate-path/route.ts | 9 + .../app/api/revalidate-tag/route.ts | 9 + .../e2e/app-router/app/api/sse/route.ts | 52 + .../app-router/app/config-redirect/page.tsx | 8 + .../e2e/app-router/app/cookies/page.tsx | 7 + .../examples/e2e/app-router/app/globals.css | 23 + .../e2e/app-router/app/headers/page.tsx | 11 + .../app/image-optimization/page.tsx | 14 + .../app-router/app/isr-data-cache/page.tsx | 28 + .../isr/dynamic-params-false/[id]/page.tsx | 34 + .../app/isr/dynamic-params-true/[id]/page.tsx | 45 + .../examples/e2e/app-router/app/isr/page.tsx | 9 + .../examples/e2e/app-router/app/layout.tsx | 19 + .../get/dynamic-segments/[slug]/route.ts | 4 + .../app-router/app/methods/get/query/route.ts | 10 + .../app/methods/get/redirect/route.ts | 5 + .../app/methods/get/revalidate/route.ts | 10 + .../app/methods/get/static/route.ts | 10 + .../app/methods/post/cookies/route.ts | 19 + .../app/methods/post/formdata/route.ts | 16 + .../e2e/app-router/app/methods/route.ts | 76 + .../e2e/app-router/app/og/opengraph-image.tsx | 38 + .../examples/e2e/app-router/app/og/page.tsx | 3 + .../examples/e2e/app-router/app/page.tsx | 49 + .../app/parallel/@a/a-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@b/page.tsx | 11 + .../e2e/app-router/app/parallel/layout.tsx | 42 + .../e2e/app-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app-router/app/revalidate-path/page.tsx | 19 + .../app-router/app/revalidate-tag/layout.tsx | 15 + .../app/revalidate-tag/nested/page.tsx | 3 + .../app-router/app/revalidate-tag/page.tsx | 8 + .../app/rewrite-destination/page.tsx | 3 + .../e2e/app-router/app/search-query/page.tsx | 25 + .../app-router/app/server-actions/client.tsx | 26 + .../app-router/app/server-actions/page.tsx | 10 + .../examples/e2e/app-router/app/sse/page.tsx | 36 + .../e2e/app-router/app/ssr/layout.tsx | 12 + .../e2e/app-router/app/ssr/loading.tsx | 3 + .../examples/e2e/app-router/app/ssr/page.tsx | 25 + .../examples/e2e/app-router/e2e/after.test.ts | 29 + .../examples/e2e/app-router/e2e/api.test.ts | 29 + .../app-router/e2e/config.redirect.test.ts | 75 + .../e2e/app-router/e2e/headers.test.ts | 27 + .../examples/e2e/app-router/e2e/host.test.ts | 14 + .../app-router/e2e/image-optimization.test.ts | 19 + .../e2e/app-router/e2e/isr.revalidate.test.ts | 13 + .../examples/e2e/app-router/e2e/isr.test.ts | 162 + .../e2e/app-router/e2e/methods.test.ts | 170 + .../app-router/e2e/middleware.cookies.test.ts | 36 + .../e2e/middleware.redirect.test.ts | 38 + .../app-router/e2e/middleware.rewrite.test.ts | 16 + .../e2e/app-router/e2e/modals.test.ts | 18 + .../examples/e2e/app-router/e2e/og.test.ts | 39 + .../e2e/app-router/e2e/parallel.test.ts | 42 + .../e2e/app-router/e2e/playwright.config.ts | 3 + .../examples/e2e/app-router/e2e/query.test.ts | 19 + .../e2e/app-router/e2e/revalidateTag.test.ts | 97 + .../e2e/app-router/e2e/serverActions.test.ts | 22 + .../examples/e2e/app-router/e2e/sse.test.ts | 42 + .../examples/e2e/app-router/e2e/ssr.test.ts | 34 + .../e2e/app-router/e2e/trailing.test.ts | 20 + .../examples/e2e/app-router/middleware.ts | 80 + .../examples/e2e/app-router/next.config.ts | 79 + .../e2e/app-router/open-next.config.ts | 24 + .../examples/e2e/app-router/package.json | 35 + .../examples/e2e/app-router/postcss.config.js | 6 + .../e2e/app-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../e2e/app-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-router/tailwind.config.ts | 15 + .../examples/e2e/app-router/tsconfig.json | 29 + .../examples/e2e/app-router/wrangler.jsonc | 45 + .../examples/e2e/experimental/.gitignore | 47 + .../examples/e2e/experimental/README.md | 3 + .../experimental/e2e/nodeMiddleware.test.ts | 32 + .../e2e/experimental/e2e/playwright.config.ts | 3 + .../examples/e2e/experimental/e2e/ppr.test.ts | 24 + .../e2e/experimental/e2e/use-cache.test.ts | 127 + .../examples/e2e/experimental/next.config.ts | 23 + .../e2e/experimental/open-next.config.ts | 17 + .../examples/e2e/experimental/package.json | 30 + .../src/app/api/revalidate/route.ts | 6 + .../e2e/experimental/src/app/favicon.ico | Bin 0 -> 25931 bytes .../e2e/experimental/src/app/globals.css | 42 + .../e2e/experimental/src/app/layout.tsx | 31 + .../e2e/experimental/src/app/page.module.css | 168 + .../e2e/experimental/src/app/page.tsx | 14 + .../e2e/experimental/src/app/ppr/page.tsx | 16 + .../src/app/use-cache/fetch/page.tsx | 22 + .../src/app/use-cache/isr/page.tsx | 17 + .../experimental/src/app/use-cache/layout.tsx | 14 + .../src/app/use-cache/ssr/page.tsx | 23 + .../experimental/src/components/cached.tsx | 33 + .../experimental/src/components/dynamic.tsx | 15 + .../experimental/src/components/static.tsx | 8 + .../e2e/experimental/src/middleware.ts | 30 + .../examples/e2e/experimental/tsconfig.json | 27 + .../examples/e2e/experimental/wrangler.jsonc | 44 + .../examples/e2e/pages-router/.env.production | 1 + .../examples/e2e/pages-router/.gitignore | 43 + .../examples/e2e/pages-router/README.md | 3 + .../examples/e2e/pages-router/e2e/404.test.ts | 9 + .../examples/e2e/pages-router/e2e/amp.test.ts | 15 + .../examples/e2e/pages-router/e2e/api.test.ts | 43 + .../e2e/pages-router/e2e/data.test.ts | 21 + .../e2e/pages-router/e2e/fallback.test.ts | 40 + .../e2e/pages-router/e2e/head.test.ts | 21 + .../e2e/pages-router/e2e/header.test.ts | 12 + .../e2e/pages-router/e2e/i18n.test.ts | 17 + .../examples/e2e/pages-router/e2e/isr.test.ts | 41 + .../e2e/pages-router/e2e/playwright.config.ts | 3 + .../e2e/pages-router/e2e/redirect.test.ts | 25 + .../e2e/pages-router/e2e/revalidate.test.ts | 19 + .../e2e/pages-router/e2e/rewrite.test.ts | 37 + .../examples/e2e/pages-router/e2e/ssr.test.ts | 33 + .../e2e/pages-router/e2e/streaming.test.ts | 48 + .../e2e/pages-router/e2e/trailing.test.ts | 15 + .../examples/e2e/pages-router/next.config.ts | 68 + .../e2e/pages-router/open-next.config.ts | 8 + .../examples/e2e/pages-router/package.json | 35 + .../e2e/pages-router/postcss.config.js | 8 + .../e2e/pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../e2e/pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/pages-router/src/middleware.ts | 14 + .../e2e/pages-router/src/pages/_app.tsx | 7 + .../e2e/pages-router/src/pages/_document.tsx | 13 + .../e2e/pages-router/src/pages/amp/index.tsx | 39 + .../src/pages/api/dynamic/[slug].ts | 6 + .../dynamic/catch-all-optional/[[...slug]].ts | 5 + .../pages/api/dynamic/catch-all/[...slug].ts | 9 + .../src/pages/api/dynamic/precedence/index.ts | 5 + .../e2e/pages-router/src/pages/api/hello.ts | 10 + .../e2e/pages-router/src/pages/api/query.ts | 5 + .../pages-router/src/pages/api/revalidate.ts | 11 + .../src/pages/api/streaming/index.ts | 42 + .../pages/fallback-intercepted/[...slugs].tsx | 18 + .../src/pages/fallback-intercepted/[slug].tsx | 31 + .../src/pages/fallback-intercepted/ssg.tsx | 18 + .../src/pages/fallback-intercepted/static.tsx | 8 + .../src/pages/fallback/[slug].tsx | 31 + .../e2e/pages-router/src/pages/head/index.tsx | 28 + .../e2e/pages-router/src/pages/index.tsx | 34 + .../e2e/pages-router/src/pages/isr/index.tsx | 20 + .../e2e/pages-router/src/pages/sse/index.tsx | 74 + .../e2e/pages-router/src/pages/ssg/index.tsx | 21 + .../e2e/pages-router/src/pages/ssr/index.tsx | 20 + .../e2e/pages-router/src/styles/globals.css | 95 + .../examples/e2e/pages-router/tsconfig.json | 25 + .../examples/e2e/pages-router/wrangler.jsonc | 23 + .../examples/e2e/shared/api/index.ts | 37 + .../examples/e2e/shared/api/songs.json | 36 + .../e2e/shared/components/Album/Album.tsx | 17 + .../e2e/shared/components/Album/Song.tsx | 23 + .../e2e/shared/components/Album/index.tsx | 21 + .../e2e/shared/components/Filler/index.tsx | 13 + .../e2e/shared/components/Modal/index.tsx | 51 + .../e2e/shared/components/Nav/index.tsx | 27 + .../examples/e2e/shared/package.json | 19 + .../examples/e2e/shared/sst-env.d.ts | 1 + .../examples/e2e/shared/tsconfig.json | 32 + .conflict-side-0/examples/e2e/utils.ts | 5 + .conflict-side-0/examples/middleware/.env | 1 + .../examples/middleware/.gitignore | 42 + .../examples/middleware/README.md | 31 + .../examples/middleware/app/about/page.tsx | 3 + .../examples/middleware/app/about2/page.tsx | 3 + .../examples/middleware/app/another/page.tsx | 3 + .../examples/middleware/app/clerk/route.ts | 3 + .../examples/middleware/app/layout.tsx | 14 + .../middleware/app/middleware/page.tsx | 25 + .../examples/middleware/app/page.tsx | 21 + .../middleware/app/redirected/page.tsx | 3 + .../examples/middleware/app/rewrite/page.tsx | 3 + .../examples/middleware/e2e/base.spec.ts | 39 + .../middleware/e2e/cloudflare-context.spec.ts | 11 + .../middleware/e2e/playwright.config.ts | 3 + .../middleware/e2e/playwright.dev.config.ts | 6 + .../examples/middleware/middleware.ts | 38 + .../examples/middleware/next.config.mjs | 11 + .../examples/middleware/open-next.config.ts | 3 + .../examples/middleware/package.json | 31 + .../examples/middleware/public/favicon.ico | Bin 0 -> 25931 bytes .../examples/middleware/public/vercel.svg | 4 + .../examples/middleware/tsconfig.json | 25 + .../examples/middleware/wrangler.jsonc | 15 + .../next-partial-prerendering/.gitignore | 40 + .../next-partial-prerendering/.prettierrc | 3 + .../next-partial-prerendering/README.md | 23 + .../next-partial-prerendering/app/favicon.ico | Bin 0 -> 15086 bytes .../next-partial-prerendering/app/layout.tsx | 50 + .../app/not-found.tsx | 8 + .../app/opengraph-image.png | Bin 0 -> 98894 bytes .../next-partial-prerendering/app/page.tsx | 28 + .../next-partial-prerendering/app/styles.tsx | 13 + .../app/twitter-image.png | Bin 0 -> 98894 bytes .../components/add-to-cart.tsx | 56 + .../components/byline.tsx | 31 + .../components/cart-count-context.tsx | 35 + .../components/cart-count.tsx | 8 + .../components/header.tsx | 60 + .../components/next-logo.tsx | 54 + .../components/ping.tsx | 12 + .../components/pricing.tsx | 86 + .../components/product-best-seller.tsx | 7 + .../components/product-card.tsx | 54 + .../components/product-currency-symbol.tsx | 27 + .../components/product-deal.tsx | 36 + .../components/product-estimated-arrival.tsx | 24 + .../components/product-lightening-deal.tsx | 28 + .../components/product-low-stock-warning.tsx | 13 + .../components/product-price.tsx | 52 + .../components/product-rating.tsx | 17 + .../components/product-review-card.tsx | 19 + .../components/product-split-payments.tsx | 17 + .../components/product-used-price.tsx | 19 + .../components/recommended-products.tsx | 68 + .../components/reviews.tsx | 51 + .../components/sidebar.tsx | 100 + .../components/single-product.tsx | 84 + .../components/vercel-logo.tsx | 11 + .../e2e/playwright.config.ts | 3 + .../next-partial-prerendering/e2e/ppr.test.ts | 32 + .../next-partial-prerendering/lib/delay.ts | 17 + .../next-partial-prerendering/lib/products.ts | 106 + .../next-partial-prerendering/lib/reviews.ts | 23 + .../next-partial-prerendering/next.config.js | 10 + .../open-next.config.ts | 6 + .../next-partial-prerendering/package.json | 36 + .../postcss.config.js | 6 + ...alexander-andrews-brAkTCdnhW8-unsplash.jpg | Bin 0 -> 119158 bytes .../public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg | Bin 0 -> 97041 bytes .../next-partial-prerendering/public/grid.svg | 5 + .../guillaume-coupy-6HuoHgK7FN8-unsplash.jpg | Bin 0 -> 111468 bytes .../public/nextjs-icon-light-background.png | Bin 0 -> 31283 bytes .../public/patrick-OIFgeLnjwrM-unsplash.jpg | Bin 0 -> 111044 bytes .../prince-akachi-LWkFHEGpleE-unsplash.jpg | Bin 0 -> 36336 bytes .../yoann-siloine-_T4w3JDm6ug-unsplash.jpg | Bin 0 -> 114615 bytes .../tailwind.config.ts | 89 + .../next-partial-prerendering/tsconfig.json | 29 + .../types/product.d.ts | 37 + .../types/review.d.ts | 6 + .../next-partial-prerendering/wrangler.jsonc | 11 + .../examples/overrides/d1-tag-next/.gitignore | 47 + .../overrides/d1-tag-next/app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../overrides/d1-tag-next/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/d1-tag-next/app/globals.css | 14 + .../overrides/d1-tag-next/app/layout.tsx | 28 + .../overrides/d1-tag-next/app/page.module.css | 17 + .../overrides/d1-tag-next/app/page.tsx | 26 + .../overrides/d1-tag-next/e2e/base.spec.ts | 47 + .../d1-tag-next/e2e/playwright.config.ts | 4 + .../overrides/d1-tag-next/next.config.ts | 11 + .../overrides/d1-tag-next/open-next.config.ts | 8 + .../overrides/d1-tag-next/package.json | 29 + .../overrides/d1-tag-next/tsconfig.json | 27 + .../overrides/d1-tag-next/wrangler.jsonc | 27 + .../overrides/memory-queue/.gitignore | 47 + .../overrides/memory-queue/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/memory-queue/app/globals.css | 14 + .../overrides/memory-queue/app/layout.tsx | 25 + .../memory-queue/app/page.module.css | 17 + .../overrides/memory-queue/app/page.tsx | 16 + .../overrides/memory-queue/e2e/base.spec.ts | 36 + .../memory-queue/e2e/playwright.config.ts | 8 + .../overrides/memory-queue/next.config.ts | 11 + .../memory-queue/open-next.config.ts | 8 + .../overrides/memory-queue/package.json | 29 + .../overrides/memory-queue/tsconfig.json | 27 + .../overrides/memory-queue/wrangler.jsonc | 23 + .../overrides/r2-incremental-cache/.gitignore | 47 + .../r2-incremental-cache/app/favicon.ico | Bin 0 -> 25931 bytes .../r2-incremental-cache/app/globals.css | 14 + .../r2-incremental-cache/app/layout.tsx | 25 + .../r2-incremental-cache/app/page.module.css | 17 + .../r2-incremental-cache/app/page.tsx | 16 + .../r2-incremental-cache/e2e/base.spec.ts | 36 + .../e2e/playwright.config.ts | 8 + .../r2-incremental-cache/next.config.ts | 11 + .../r2-incremental-cache/open-next.config.ts | 14 + .../r2-incremental-cache/package.json | 29 + .../r2-incremental-cache/tsconfig.json | 27 + .../r2-incremental-cache/wrangler.jsonc | 37 + .../.gitignore | 47 + .../app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../app/favicon.ico | Bin 0 -> 25931 bytes .../app/globals.css | 14 + .../app/layout.tsx | 28 + .../app/page.module.css | 17 + .../app/page.tsx | 26 + .../e2e/base.spec.ts | 41 + .../e2e/playwright.config.ts | 7 + .../next-env.d.ts | 5 + .../next.config.ts | 11 + .../open-next.config.ts | 6 + .../package.json | 29 + .../tsconfig.json | 27 + .../wrangler.jsonc | 11 + .../examples/playground14/.dev.vars | 1 + .../examples/playground14/.env.development | 2 + .../examples/playground14/.gitignore | 45 + .../playground14/app/api/buildid/route.ts | 9 + .../playground14/app/api/env/route.ts | 8 + .../playground14/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 10 + .../playground14/app/api/request/route.ts | 5 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground14/app/layout.js | 12 + .../examples/playground14/app/og/route.tsx | 65 + .../examples/playground14/app/page.js | 7 + .../examples/playground14/e2e/base.spec.ts | 66 + .../playground14/e2e/cloudflare.spec.ts | 56 + .../examples/playground14/e2e/head.spec.ts | 13 + .../playground14/e2e/instrumentation.spec.ts | 36 + .../examples/playground14/e2e/isr.spec.ts | 32 + .../playground14/e2e/playwright.config.ts | 3 + .../playground14/e2e/playwright.dev.config.ts | 6 + .../examples/playground14/instrumentation.js | 15 + .../examples/playground14/lib/posts.ts | 53 + .../examples/playground14/middleware.js | 12 + .../examples/playground14/next.config.mjs | 31 + .../examples/playground14/open-next.config.ts | 7 + .../examples/playground14/package.json | 29 + .../examples/playground14/pages/api/pages.ts | 9 + .../examples/playground14/pages/head.tsx | 23 + .../examples/playground14/public/.gitkeep | 0 .../playground14/public/snipp/snipp.webp | Bin 0 -> 322224 bytes .../examples/playground14/tsconfig.json | 24 + .../playground14/worker-configuration.d.ts | 6415 +++++ .../examples/playground14/worker.ts | 21 + .../examples/playground14/wrangler.jsonc | 22 + .../examples/playground15/.dev.vars | 1 + .../examples/playground15/.env.development | 1 + .../examples/playground15/.gitignore | 45 + .../playground15/app/api/buildid/route.ts | 9 + .../playground15/app/api/env/route.ts | 10 + .../playground15/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 8 + .../playground15/app/api/request/route.ts | 5 + .../playground15/app/from-app/page.tsx | 29 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground15/app/layout.js | 12 + .../examples/playground15/app/og/route.tsx | 65 + .../playground15/app/other-app/page.tsx | 24 + .../examples/playground15/app/page.js | 7 + .../examples/playground15/data.js | 6 + .../examples/playground15/data.module.css | 3 + .../examples/playground15/e2e/base.spec.ts | 61 + .../playground15/e2e/cloudflare.spec.ts | 16 + .../examples/playground15/e2e/head.spec.ts | 13 + .../playground15/e2e/instrumentation.spec.ts | 36 + .../examples/playground15/e2e/isr.spec.ts | 32 + .../playground15/e2e/playwright.config.ts | 3 + .../playground15/e2e/playwright.dev.config.ts | 6 + .../examples/playground15/instrumentation.js | 22 + .../examples/playground15/lib/posts.ts | 53 + .../examples/playground15/middleware.js | 12 + .../examples/playground15/next.config.mjs | 16 + .../examples/playground15/open-next.config.ts | 13 + .../examples/playground15/package.json | 29 + .../examples/playground15/pages/head.tsx | 23 + .../examples/playground15/public/.gitkeep | 0 .../examples/playground15/public/test.jpg | Bin 0 -> 6765 bytes .../examples/playground15/tsconfig.json | 25 + .../playground15/worker-configuration.d.ts | 5 + .../examples/playground15/wrangler.jsonc | 21 + .conflict-side-0/examples/prisma/.gitignore | 47 + .conflict-side-0/examples/prisma/README.md | 36 + .../examples/prisma/e2e/playwright.config.ts | 3 + .../prisma/e2e/playwright.dev.config.ts | 6 + .../examples/prisma/e2e/prisma.spec.ts | 21 + .../examples/prisma/next.config.ts | 11 + .../examples/prisma/open-next.config.ts | 3 + .conflict-side-0/examples/prisma/package.json | 34 + .conflict-side-0/examples/prisma/populate.sql | 11 + .../examples/prisma/prisma.config.ts | 6 + .../examples/prisma/schema.prisma | 15 + .../examples/prisma/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/prisma/src/app/globals.css | 42 + .../examples/prisma/src/app/layout.tsx | 30 + .../examples/prisma/src/app/page.module.css | 168 + .../examples/prisma/src/app/page.tsx | 22 + .../examples/prisma/src/lib/db.ts | 11 + .../examples/prisma/tsconfig.json | 27 + .../examples/prisma/worker-configuration.d.ts | 6452 +++++ .../examples/prisma/wrangler.jsonc | 18 + .conflict-side-0/examples/ssg-app/.dev.vars | 1 + .conflict-side-0/examples/ssg-app/.gitignore | 47 + .../examples/ssg-app/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/ssg-app/app/globals.css | 14 + .../examples/ssg-app/app/layout.tsx | 28 + .../examples/ssg-app/app/page.module.css | 17 + .../examples/ssg-app/app/page.tsx | 17 + .../examples/ssg-app/e2e/base.spec.ts | 19 + .../examples/ssg-app/e2e/playwright.config.ts | 3 + .../examples/ssg-app/next.config.ts | 11 + .../examples/ssg-app/open-next.config.ts | 6 + .../examples/ssg-app/package.json | 29 + .../examples/ssg-app/tsconfig.json | 27 + .../ssg-app/worker-configuration.d.ts | 5 + .../examples/ssg-app/wrangler.jsonc | 14 + .../examples/vercel-blog-starter/.gitignore | 40 + .../examples/vercel-blog-starter/README.md | 63 + .../_posts/dynamic-routing.md | 19 + .../vercel-blog-starter/_posts/hello-world.md | 19 + .../vercel-blog-starter/_posts/preview.md | 19 + .../vercel-blog-starter/next.config.mjs | 7 + .../vercel-blog-starter/open-next.config.ts | 6 + .../examples/vercel-blog-starter/package.json | 33 + .../vercel-blog-starter/postcss.config.js | 6 + .../public/assets/blog/authors/jj.jpeg | Bin 0 -> 6186 bytes .../public/assets/blog/authors/joe.jpeg | Bin 0 -> 7196 bytes .../public/assets/blog/authors/tim.jpeg | Bin 0 -> 6148 bytes .../assets/blog/dynamic-routing/cover.jpg | Bin 0 -> 117724 bytes .../public/assets/blog/hello-world/cover.jpg | Bin 0 -> 105406 bytes .../public/assets/blog/preview/cover.jpg | Bin 0 -> 44270 bytes .../public/favicon/android-chrome-192x192.png | Bin 0 -> 4795 bytes .../public/favicon/android-chrome-512x512.png | Bin 0 -> 14640 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 1327 bytes .../public/favicon/browserconfig.xml | 9 + .../public/favicon/favicon-16x16.png | Bin 0 -> 595 bytes .../public/favicon/favicon-32x32.png | Bin 0 -> 880 bytes .../public/favicon/favicon.ico | Bin 0 -> 15086 bytes .../public/favicon/mstile-150x150.png | Bin 0 -> 3567 bytes .../public/favicon/safari-pinned-tab.svg | 33 + .../public/favicon/site.webmanifest | 19 + .../src/app/_components/alert.tsx | 48 + .../src/app/_components/avatar.tsx | 15 + .../src/app/_components/container.tsx | 9 + .../src/app/_components/cover-image.tsx | 36 + .../src/app/_components/date-formatter.tsx | 12 + .../src/app/_components/footer.tsx | 32 + .../src/app/_components/header.tsx | 14 + .../src/app/_components/hero-post.tsx | 40 + .../src/app/_components/intro.tsx | 19 + .../_components/markdown-styles.module.css | 18 + .../src/app/_components/more-stories.tsx | 27 + .../src/app/_components/post-body.tsx | 13 + .../src/app/_components/post-header.tsx | 34 + .../src/app/_components/post-preview.tsx | 34 + .../src/app/_components/post-title.tsx | 13 + .../src/app/_components/section-separator.tsx | 3 + .../src/app/_components/switch.module.css | 55 + .../src/app/_components/theme-switcher.tsx | 106 + .../vercel-blog-starter/src/app/globals.css | 3 + .../vercel-blog-starter/src/app/layout.tsx | 46 + .../vercel-blog-starter/src/app/page.tsx | 30 + .../src/app/posts/[slug]/page.tsx | 65 + .../src/interfaces/author.ts | 4 + .../src/interfaces/post.ts | 15 + .../vercel-blog-starter/src/lib/api.ts | 28 + .../vercel-blog-starter/src/lib/constants.ts | 4 + .../src/lib/markdownToHtml.ts | 7 + .../vercel-blog-starter/tailwind.config.ts | 43 + .../vercel-blog-starter/tsconfig.json | 26 + .../vercel-blog-starter/wrangler.jsonc | 11 + .conflict-side-0/package.json | 28 + .../packages/cloudflare/.gitignore | 1 + .../packages/cloudflare/CHANGELOG.md | 847 + .../packages/cloudflare/README.md | 57 + .conflict-side-0/packages/cloudflare/env.d.ts | 14 + .../packages/cloudflare/eslint.config.mjs | 39 + .../packages/cloudflare/package.json | 89 + .../cloudflare/src/api/cloudflare-context.ts | 362 + .../packages/cloudflare/src/api/config.ts | 200 + .../bucket-cache-purge.spec.ts | 149 + .../api/durable-objects/bucket-cache-purge.ts | 95 + .../src/api/durable-objects/queue.spec.ts | 350 + .../src/api/durable-objects/queue.ts | 309 + .../durable-objects/sharded-tag-cache.spec.ts | 43 + .../api/durable-objects/sharded-tag-cache.ts | 53 + .../packages/cloudflare/src/api/index.ts | 2 + .../overrides/asset-resolver/index.spec.ts | 47 + .../src/api/overrides/asset-resolver/index.ts | 97 + .../src/api/overrides/cache-purge/index.ts | 32 + .../incremental-cache/kv-incremental-cache.ts | 111 + .../incremental-cache/r2-incremental-cache.ts | 91 + .../incremental-cache/regional-cache.ts | 236 + .../static-assets-incremental-cache.ts | 74 + .../cloudflare/src/api/overrides/internal.ts | 102 + .../src/api/overrides/queue/do-queue.ts | 18 + .../api/overrides/queue/memory-queue.spec.ts | 87 + .../src/api/overrides/queue/memory-queue.ts | 69 + .../api/overrides/queue/queue-cache.spec.ts | 112 + .../src/api/overrides/queue/queue-cache.ts | 122 + .../tag-cache/d1-next-tag-cache.spec.ts | 343 + .../overrides/tag-cache/d1-next-tag-cache.ts | 98 + .../tag-cache/do-sharded-tag-cache.spec.ts | 465 + .../tag-cache/do-sharded-tag-cache.ts | 469 + .../tag-cache/tag-cache-filter.spec.ts | 120 + .../overrides/tag-cache/tag-cache-filter.ts | 65 + .../cloudflare/src/cli/build/build.ts | 100 + .../cloudflare/src/cli/build/bundle-server.ts | 192 + .../compile-cache-assets-manifest.ts | 25 + .../cli/build/open-next/compile-env-files.ts | 20 + .../src/cli/build/open-next/compile-images.ts | 47 + .../src/cli/build/open-next/compile-init.ts | 36 + .../open-next/compile-skew-protection.ts | 28 + .../build/open-next/compileDurableObjects.ts | 41 + .../cli/build/open-next/createServerBundle.ts | 360 + .../ast/patch-vercel-og-library.spec.ts | 71 + .../patches/ast/patch-vercel-og-library.ts | 71 + .../cli/build/patches/ast/vercel-og.spec.ts | 27 + .../src/cli/build/patches/ast/vercel-og.ts | 62 + .../build/patches/ast/webpack-runtime.spec.ts | 113 + .../cli/build/patches/ast/webpack-runtime.ts | 110 + .../build/patches/plugins/dynamic-requires.ts | 161 + .../src/cli/build/patches/plugins/find-dir.ts | 50 + .../patches/plugins/instrumentation.spec.ts | 154 + .../build/patches/plugins/instrumentation.ts | 134 + .../build/patches/plugins/load-manifest.ts | 118 + .../build/patches/plugins/next-server.spec.ts | 190 + .../cli/build/patches/plugins/next-server.ts | 106 + .../cli/build/patches/plugins/open-next.ts | 49 + .../build/patches/plugins/optional-deps.ts | 63 + .../patches/plugins/pages-router-context.ts | 38 + .../plugins/patch-depd-deprecations.spec.ts | 32 + .../plugins/patch-depd-deprecations.ts | 47 + .../cli/build/patches/plugins/require-hook.ts | 20 + .../src/cli/build/patches/plugins/require.ts | 52 + .../patches/plugins/res-revalidate.spec.ts | 106 + .../build/patches/plugins/res-revalidate.ts | 83 + .../build/patches/plugins/use-cache.spec.ts | 104 + .../cli/build/patches/plugins/use-cache.ts | 43 + .../patches/plugins/wrangler-external.ts | 46 + .../cli/build/utils/copy-package-cli-files.ts | 23 + .../cli/build/utils/create-config-files.ts | 111 + .../src/cli/build/utils/ensure-cf-config.ts | 71 + .../utils/extract-project-env-vars.spec.ts | 81 + .../build/utils/extract-project-env-vars.ts | 36 + .../cloudflare/src/cli/build/utils/index.ts | 6 + .../build/utils/needs-experimental-react.ts | 19 + .../src/cli/build/utils/normalize-path.ts | 5 + .../src/cli/build/utils/test-patch.ts | 15 + .../cloudflare/src/cli/build/utils/version.ts | 13 + .../src/cli/build/utils/workerd.spec.ts | 209 + .../cloudflare/src/cli/build/utils/workerd.ts | 104 + .../cloudflare/src/cli/commands/build.ts | 48 + .../cloudflare/src/cli/commands/deploy.ts | 50 + .../cloudflare/src/cli/commands/helpers.ts | 41 + .../src/cli/commands/populate-cache.spec.ts | 70 + .../src/cli/commands/populate-cache.ts | 317 + .../cloudflare/src/cli/commands/preview.ts | 28 + .../cloudflare/src/cli/commands/setup-cli.ts | 112 + .../src/cli/commands/skew-protection.spec.ts | 69 + .../src/cli/commands/skew-protection.ts | 263 + .../cloudflare/src/cli/commands/upload.ts | 48 + .../packages/cloudflare/src/cli/index.ts | 25 + .../cloudflare/src/cli/project-options.ts | 13 + .../src/cli/templates/images.spec.ts | 428 + .../cloudflare/src/cli/templates/images.ts | 229 + .../cloudflare/src/cli/templates/init.ts | 160 + .../src/cli/templates/shims/empty.ts | 1 + .../cloudflare/src/cli/templates/shims/env.ts | 1 + .../src/cli/templates/shims/fetch.ts | 1 + .../src/cli/templates/shims/throw.ts | 2 + .../src/cli/templates/skew-protection.ts | 74 + .../cloudflare/src/cli/templates/worker.ts | 60 + .../src/cli/utils/ask-confirmation.ts | 19 + .../cloudflare/src/cli/utils/run-wrangler.ts | 95 + .../utils/get-package-templates-dir-path.ts | 15 + .../cloudflare/templates/open-next.config.ts | 7 + .../cloudflare/templates/wrangler.jsonc | 22 + .../packages/cloudflare/tsconfig.json | 20 + .../pnpm-lock.yaml | 0 .conflict-side-0/pnpm-workspace.yaml | 52 + .conflict-side-1/.changeset/README.md | 8 + .conflict-side-1/.changeset/config.json | 17 + .../.changeset/crazy-birds-jam.md | 5 + .../.changeset/eager-steaks-crash.md | 5 + .../.changeset/hungry-ideas-buy.md | 5 + .conflict-side-1/.editorconfig | 6 + .../.github/ISSUE_TEMPLATE/1.bug_report.yml | 71 + .../ISSUE_TEMPLATE/2.feature_request.yml | 68 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../actions/install-dependencies/action.yml | 21 + .../actions/setup-playwright/action.yml | 27 + .../.github/workflows/changesets.yml | 35 + .conflict-side-1/.github/workflows/checks.yml | 24 + .../.github/workflows/playwright.yml | 39 + .../.github/workflows/prereleases.yml | 27 + .conflict-side-1/.gitignore | 8 + .conflict-side-1/.prettierignore | 7 + .conflict-side-1/.prettierrc | 16 + .conflict-side-1/.vscode/settings.json | 4 + .conflict-side-1/CONTRIBUTING.md | 183 + .conflict-side-1/LICENSE | 25 + .conflict-side-1/README.md | 41 + .conflict-side-1/benchmarking/.gitignore | 1 + .conflict-side-1/benchmarking/README.md | 17 + .conflict-side-1/benchmarking/package.json | 14 + .../benchmarking/src/benchmarking.ts | 132 + .../benchmarking/src/cloudflare.ts | 123 + .conflict-side-1/benchmarking/src/index.ts | 42 + .conflict-side-1/benchmarking/src/utils.ts | 61 + .conflict-side-1/benchmarking/tsconfig.json | 15 + .../examples/bugs/gh-119/.eslintrc.json | 3 + .../examples/bugs/gh-119/.gitignore | 47 + .../examples/bugs/gh-119/README.md | 36 + .../examples/bugs/gh-119/app/favicon.ico | Bin 0 -> 25931 bytes .../bugs/gh-119/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../bugs/gh-119/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../examples/bugs/gh-119/app/globals.css | 21 + .../examples/bugs/gh-119/app/layout.tsx | 31 + .../examples/bugs/gh-119/app/page.tsx | 70 + .../examples/bugs/gh-119/e2e/base.spec.ts | 8 + .../bugs/gh-119/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-119/next.config.ts | 8 + .../examples/bugs/gh-119/open-next.config.ts | 3 + .../examples/bugs/gh-119/package.json | 34 + .../examples/bugs/gh-119/postcss.config.mjs | 8 + .../examples/bugs/gh-119/public/file.svg | 1 + .../examples/bugs/gh-119/public/globe.svg | 1 + .../examples/bugs/gh-119/public/next.svg | 1 + .../examples/bugs/gh-119/public/vercel.svg | 1 + .../examples/bugs/gh-119/public/window.svg | 1 + .../examples/bugs/gh-119/tailwind.config.ts | 18 + .../examples/bugs/gh-119/tsconfig.json | 27 + .../examples/bugs/gh-119/wrangler.jsonc | 11 + .../examples/bugs/gh-219/.dev.vars | 1 + .../examples/bugs/gh-219/.gitignore | 56 + .../examples/bugs/gh-219/README.md | 38 + .../examples/bugs/gh-219/e2e/base.spec.ts | 8 + .../bugs/gh-219/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-219/eslint.config.mjs | 14 + .../examples/bugs/gh-219/next.config.ts | 8 + .../examples/bugs/gh-219/open-next.config.ts | 3 + .../examples/bugs/gh-219/package.json | 61 + .../examples/bugs/gh-219/postcss.config.mjs | 8 + .../examples/bugs/gh-219/public/file.svg | 1 + .../examples/bugs/gh-219/public/globe.svg | 1 + .../examples/bugs/gh-219/public/next.svg | 1 + .../examples/bugs/gh-219/public/vercel.svg | 1 + .../examples/bugs/gh-219/public/window.svg | 1 + .../examples/bugs/gh-219/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-219/src/app/globals.css | 21 + .../examples/bugs/gh-219/src/app/layout.tsx | 30 + .../examples/bugs/gh-219/src/app/page.tsx | 70 + .../bugs/gh-219/src/firebase/config.js | 23 + .../examples/bugs/gh-219/tailwind.config.ts | 18 + .../examples/bugs/gh-219/tsconfig.json | 27 + .../examples/bugs/gh-219/wrangler.jsonc | 11 + .../examples/bugs/gh-223/.eslintrc.json | 3 + .../examples/bugs/gh-223/.gitignore | 53 + .../examples/bugs/gh-223/README.md | 36 + .../bugs/gh-223/app/api/image/route.ts | 16 + .../examples/bugs/gh-223/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/bugs/gh-223/app/globals.css | 29 + .../examples/bugs/gh-223/app/layout.tsx | 22 + .../examples/bugs/gh-223/app/page.tsx | 113 + .../examples/bugs/gh-223/e2e/base.spec.ts | 9 + .../bugs/gh-223/e2e/playwright.config.ts | 3 + .../examples/bugs/gh-223/next.config.mjs | 7 + .../examples/bugs/gh-223/open-next.config.ts | 3 + .../examples/bugs/gh-223/package.json | 37 + .../examples/bugs/gh-223/postcss.config.mjs | 8 + .../examples/bugs/gh-223/public/next.svg | 1 + .../examples/bugs/gh-223/public/vercel.svg | 1 + .../examples/bugs/gh-223/src/utils/common.ts | 29 + .../bugs/gh-223/src/utils/s3Bucket.ts | 30 + .../examples/bugs/gh-223/tailwind.config.ts | 19 + .../examples/bugs/gh-223/tsconfig.json | 28 + .../examples/bugs/gh-223/wrangler.jsonc | 11 + .conflict-side-1/examples/common/apps.ts | 53 + .../examples/common/config-e2e.ts | 93 + .conflict-side-1/examples/common/package.json | 5 + .../examples/common/tsconfig.json | 15 + .../examples/create-next-app/.eslintrc.json | 3 + .../examples/create-next-app/.gitignore | 45 + .../examples/create-next-app/README.md | 36 + .../examples/create-next-app/e2e/base.spec.ts | 8 + .../create-next-app/e2e/playwright.config.ts | 3 + .../examples/create-next-app/next.config.mjs | 11 + .../create-next-app/open-next.config.ts | 3 + .../examples/create-next-app/package.json | 33 + .../create-next-app/postcss.config.mjs | 8 + .../examples/create-next-app/public/next.svg | 1 + .../create-next-app/public/vercel.svg | 1 + .../create-next-app/src/app/favicon.ico | Bin 0 -> 25931 bytes .../src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes .../create-next-app/src/app/globals.css | 27 + .../create-next-app/src/app/layout.tsx | 31 + .../examples/create-next-app/src/app/page.tsx | 111 + .../create-next-app/tailwind.config.ts | 19 + .../examples/create-next-app/tsconfig.json | 26 + .../examples/create-next-app/wrangler.jsonc | 11 + .../examples/e2e/app-pages-router/.env | 1 + .../examples/e2e/app-pages-router/.gitignore | 42 + .../e2e/app-pages-router/CHANGELOG.md | 43 + .../examples/e2e/app-pages-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app/albums/[album]/page.tsx | 3 + .../app-pages-router/app/albums/layout.tsx | 10 + .../e2e/app-pages-router/app/albums/page.tsx | 13 + .../app-pages-router/app/api/client/route.ts | 7 + .../app-pages-router/app/api/host/route.ts | 7 + .../e2e/app-pages-router/app/api/page.tsx | 40 + .../e2e/app-pages-router/app/globals.css | 23 + .../app/image-optimization/page.tsx | 9 + .../e2e/app-pages-router/app/isr/page.tsx | 9 + .../e2e/app-pages-router/app/layout.tsx | 22 + .../e2e/app-pages-router/app/page.tsx | 48 + .../app/parallel/@a/a-page/page.tsx | 3 + .../app-pages-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../app-pages-router/app/parallel/@b/page.tsx | 11 + .../app-pages-router/app/parallel/layout.tsx | 42 + .../app-pages-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app/rewrite-destination/page.tsx | 12 + .../app/server-actions/client.tsx | 26 + .../app/server-actions/page.tsx | 10 + .../e2e/app-pages-router/app/ssr/layout.tsx | 10 + .../e2e/app-pages-router/app/ssr/loading.tsx | 3 + .../e2e/app-pages-router/app/ssr/page.tsx | 22 + .../e2e/app-pages-router/e2e/api.test.ts | 35 + .../e2e/app-pages-router/e2e/host.test.ts | 14 + .../e2e/image-optimization.test.ts | 19 + .../e2e/app-pages-router/e2e/isr.test.ts | 41 + .../e2e/middleware.redirect.test.ts | 20 + .../e2e/middleware.rewrite.test.ts | 42 + .../e2e/app-pages-router/e2e/modals.test.ts | 18 + .../app-pages-router/e2e/pages_isr.test.ts | 42 + .../app-pages-router/e2e/pages_ssr.test.ts | 27 + .../e2e/app-pages-router/e2e/parallel.test.ts | 42 + .../app-pages-router/e2e/playwright.config.ts | 3 + .../e2e/serverActions.test.ts | 22 + .../e2e/skip_trailing.test.ts | 8 + .../e2e/app-pages-router/e2e/ssr.test.ts | 33 + .../e2e/app-pages-router/middleware.ts | 78 + .../e2e/app-pages-router/next.config.ts | 19 + .../e2e/app-pages-router/open-next.config.ts | 9 + .../e2e/app-pages-router/package.json | 35 + .../e2e/app-pages-router/pages/_app.tsx | 7 + .../e2e/app-pages-router/pages/_document.tsx | 13 + .../e2e/app-pages-router/pages/api/hello.ts | 10 + .../pages/pages_isr/index.tsx | 14 + .../pages/pages_ssr/index.tsx | 13 + .../e2e/app-pages-router/postcss.config.js | 6 + .../e2e/app-pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../app-pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-pages-router/styles/globals.css | 95 + .../e2e/app-pages-router/tailwind.config.ts | 15 + .../e2e/app-pages-router/tsconfig.json | 29 + .../e2e/app-pages-router/wrangler.jsonc | 26 + .../examples/e2e/app-router/.gitignore | 43 + .../examples/e2e/app-router/CHANGELOG.md | 29 + .../examples/e2e/app-router/README.md | 3 + .../albums/@modal/(.)[album]/[song]/page.tsx | 29 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app-router/app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 25 + .../app-router/app/albums/[album]/page.tsx | 3 + .../e2e/app-router/app/albums/layout.tsx | 10 + .../e2e/app-router/app/albums/page.tsx | 13 + .../app/api/after/revalidate/route.ts | 16 + .../e2e/app-router/app/api/after/ssg/route.ts | 12 + .../e2e/app-router/app/api/client/route.ts | 7 + .../e2e/app-router/app/api/host/route.ts | 7 + .../e2e/app-router/app/api/isr/route.ts | 33 + .../e2e/app-router/app/api/og/route.tsx | 72 + .../examples/e2e/app-router/app/api/page.tsx | 40 + .../app/api/revalidate-path/route.ts | 9 + .../app/api/revalidate-tag/route.ts | 9 + .../e2e/app-router/app/api/sse/route.ts | 52 + .../app-router/app/config-redirect/page.tsx | 8 + .../e2e/app-router/app/cookies/page.tsx | 7 + .../examples/e2e/app-router/app/globals.css | 23 + .../e2e/app-router/app/headers/page.tsx | 11 + .../app/image-optimization/page.tsx | 14 + .../app-router/app/isr-data-cache/page.tsx | 28 + .../isr/dynamic-params-false/[id]/page.tsx | 34 + .../app/isr/dynamic-params-true/[id]/page.tsx | 45 + .../examples/e2e/app-router/app/isr/page.tsx | 9 + .../examples/e2e/app-router/app/layout.tsx | 19 + .../get/dynamic-segments/[slug]/route.ts | 4 + .../app-router/app/methods/get/query/route.ts | 10 + .../app/methods/get/redirect/route.ts | 5 + .../app/methods/get/revalidate/route.ts | 10 + .../app/methods/get/static/route.ts | 10 + .../app/methods/post/cookies/route.ts | 19 + .../app/methods/post/formdata/route.ts | 16 + .../e2e/app-router/app/methods/route.ts | 76 + .../e2e/app-router/app/og/opengraph-image.tsx | 38 + .../examples/e2e/app-router/app/og/page.tsx | 3 + .../examples/e2e/app-router/app/page.tsx | 49 + .../app/parallel/@a/a-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + .../e2e/app-router/app/parallel/@b/page.tsx | 11 + .../e2e/app-router/app/parallel/layout.tsx | 42 + .../e2e/app-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app-router/app/revalidate-path/page.tsx | 19 + .../app-router/app/revalidate-tag/layout.tsx | 15 + .../app/revalidate-tag/nested/page.tsx | 3 + .../app-router/app/revalidate-tag/page.tsx | 8 + .../app/rewrite-destination/page.tsx | 3 + .../e2e/app-router/app/search-query/page.tsx | 25 + .../app-router/app/server-actions/client.tsx | 26 + .../app-router/app/server-actions/page.tsx | 10 + .../examples/e2e/app-router/app/sse/page.tsx | 36 + .../e2e/app-router/app/ssr/layout.tsx | 12 + .../e2e/app-router/app/ssr/loading.tsx | 3 + .../examples/e2e/app-router/app/ssr/page.tsx | 25 + .../examples/e2e/app-router/e2e/after.test.ts | 29 + .../examples/e2e/app-router/e2e/api.test.ts | 29 + .../app-router/e2e/config.redirect.test.ts | 75 + .../e2e/app-router/e2e/headers.test.ts | 27 + .../examples/e2e/app-router/e2e/host.test.ts | 14 + .../app-router/e2e/image-optimization.test.ts | 19 + .../e2e/app-router/e2e/isr.revalidate.test.ts | 13 + .../examples/e2e/app-router/e2e/isr.test.ts | 162 + .../e2e/app-router/e2e/methods.test.ts | 170 + .../app-router/e2e/middleware.cookies.test.ts | 36 + .../e2e/middleware.redirect.test.ts | 38 + .../app-router/e2e/middleware.rewrite.test.ts | 16 + .../e2e/app-router/e2e/modals.test.ts | 18 + .../examples/e2e/app-router/e2e/og.test.ts | 39 + .../e2e/app-router/e2e/parallel.test.ts | 42 + .../e2e/app-router/e2e/playwright.config.ts | 3 + .../examples/e2e/app-router/e2e/query.test.ts | 19 + .../e2e/app-router/e2e/revalidateTag.test.ts | 97 + .../e2e/app-router/e2e/serverActions.test.ts | 22 + .../examples/e2e/app-router/e2e/sse.test.ts | 42 + .../examples/e2e/app-router/e2e/ssr.test.ts | 34 + .../e2e/app-router/e2e/trailing.test.ts | 20 + .../examples/e2e/app-router/middleware.ts | 80 + .../examples/e2e/app-router/next.config.ts | 79 + .../e2e/app-router/open-next.config.ts | 24 + .../examples/e2e/app-router/package.json | 35 + .../examples/e2e/app-router/postcss.config.js | 6 + .../e2e/app-router/public/favicon.ico | Bin 0 -> 4286 bytes .../public/static/corporate_holiday_card.jpg | Bin 0 -> 120302 bytes .../e2e/app-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/app-router/tailwind.config.ts | 15 + .../examples/e2e/app-router/tsconfig.json | 29 + .../examples/e2e/app-router/wrangler.jsonc | 45 + .../examples/e2e/experimental/.gitignore | 47 + .../examples/e2e/experimental/README.md | 3 + .../experimental/e2e/nodeMiddleware.test.ts | 32 + .../e2e/experimental/e2e/playwright.config.ts | 3 + .../examples/e2e/experimental/e2e/ppr.test.ts | 24 + .../e2e/experimental/e2e/use-cache.test.ts | 127 + .../examples/e2e/experimental/next.config.ts | 23 + .../e2e/experimental/open-next.config.ts | 17 + .../examples/e2e/experimental/package.json | 30 + .../src/app/api/revalidate/route.ts | 6 + .../e2e/experimental/src/app/favicon.ico | Bin 0 -> 25931 bytes .../e2e/experimental/src/app/globals.css | 42 + .../e2e/experimental/src/app/layout.tsx | 31 + .../e2e/experimental/src/app/page.module.css | 168 + .../e2e/experimental/src/app/page.tsx | 14 + .../e2e/experimental/src/app/ppr/page.tsx | 16 + .../src/app/use-cache/fetch/page.tsx | 22 + .../src/app/use-cache/isr/page.tsx | 17 + .../experimental/src/app/use-cache/layout.tsx | 14 + .../src/app/use-cache/ssr/page.tsx | 23 + .../experimental/src/components/cached.tsx | 33 + .../experimental/src/components/dynamic.tsx | 15 + .../experimental/src/components/static.tsx | 8 + .../e2e/experimental/src/middleware.ts | 30 + .../examples/e2e/experimental/tsconfig.json | 27 + .../examples/e2e/experimental/wrangler.jsonc | 44 + .../examples/e2e/pages-router/.env.production | 1 + .../examples/e2e/pages-router/.gitignore | 43 + .../examples/e2e/pages-router/README.md | 3 + .../examples/e2e/pages-router/e2e/404.test.ts | 9 + .../examples/e2e/pages-router/e2e/amp.test.ts | 15 + .../examples/e2e/pages-router/e2e/api.test.ts | 43 + .../e2e/pages-router/e2e/data.test.ts | 21 + .../e2e/pages-router/e2e/fallback.test.ts | 40 + .../e2e/pages-router/e2e/head.test.ts | 21 + .../e2e/pages-router/e2e/header.test.ts | 12 + .../e2e/pages-router/e2e/i18n.test.ts | 17 + .../examples/e2e/pages-router/e2e/isr.test.ts | 41 + .../e2e/pages-router/e2e/playwright.config.ts | 3 + .../e2e/pages-router/e2e/redirect.test.ts | 25 + .../e2e/pages-router/e2e/revalidate.test.ts | 19 + .../e2e/pages-router/e2e/rewrite.test.ts | 37 + .../examples/e2e/pages-router/e2e/ssr.test.ts | 33 + .../e2e/pages-router/e2e/streaming.test.ts | 48 + .../e2e/pages-router/e2e/trailing.test.ts | 15 + .../examples/e2e/pages-router/next.config.ts | 68 + .../e2e/pages-router/open-next.config.ts | 8 + .../examples/e2e/pages-router/package.json | 35 + .../e2e/pages-router/postcss.config.js | 8 + .../e2e/pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../e2e/pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes .../e2e/pages-router/src/middleware.ts | 14 + .../e2e/pages-router/src/pages/_app.tsx | 7 + .../e2e/pages-router/src/pages/_document.tsx | 13 + .../e2e/pages-router/src/pages/amp/index.tsx | 39 + .../src/pages/api/dynamic/[slug].ts | 6 + .../dynamic/catch-all-optional/[[...slug]].ts | 5 + .../pages/api/dynamic/catch-all/[...slug].ts | 9 + .../src/pages/api/dynamic/precedence/index.ts | 5 + .../e2e/pages-router/src/pages/api/hello.ts | 10 + .../e2e/pages-router/src/pages/api/query.ts | 5 + .../pages-router/src/pages/api/revalidate.ts | 11 + .../src/pages/api/streaming/index.ts | 42 + .../pages/fallback-intercepted/[...slugs].tsx | 18 + .../src/pages/fallback-intercepted/[slug].tsx | 31 + .../src/pages/fallback-intercepted/ssg.tsx | 18 + .../src/pages/fallback-intercepted/static.tsx | 8 + .../src/pages/fallback/[slug].tsx | 31 + .../e2e/pages-router/src/pages/head/index.tsx | 28 + .../e2e/pages-router/src/pages/index.tsx | 34 + .../e2e/pages-router/src/pages/isr/index.tsx | 20 + .../e2e/pages-router/src/pages/sse/index.tsx | 74 + .../e2e/pages-router/src/pages/ssg/index.tsx | 21 + .../e2e/pages-router/src/pages/ssr/index.tsx | 20 + .../e2e/pages-router/src/styles/globals.css | 95 + .../examples/e2e/pages-router/tsconfig.json | 25 + .../examples/e2e/pages-router/wrangler.jsonc | 23 + .../examples/e2e/shared/api/index.ts | 37 + .../examples/e2e/shared/api/songs.json | 36 + .../e2e/shared/components/Album/Album.tsx | 17 + .../e2e/shared/components/Album/Song.tsx | 23 + .../e2e/shared/components/Album/index.tsx | 21 + .../e2e/shared/components/Filler/index.tsx | 13 + .../e2e/shared/components/Modal/index.tsx | 51 + .../e2e/shared/components/Nav/index.tsx | 27 + .../examples/e2e/shared/package.json | 19 + .../examples/e2e/shared/sst-env.d.ts | 1 + .../examples/e2e/shared/tsconfig.json | 32 + .conflict-side-1/examples/e2e/utils.ts | 5 + .conflict-side-1/examples/middleware/.env | 1 + .../examples/middleware/.gitignore | 42 + .../examples/middleware/README.md | 31 + .../examples/middleware/app/about/page.tsx | 3 + .../examples/middleware/app/about2/page.tsx | 3 + .../examples/middleware/app/another/page.tsx | 3 + .../examples/middleware/app/clerk/route.ts | 3 + .../examples/middleware/app/layout.tsx | 14 + .../middleware/app/middleware/page.tsx | 25 + .../examples/middleware/app/page.tsx | 21 + .../middleware/app/redirected/page.tsx | 3 + .../examples/middleware/app/rewrite/page.tsx | 3 + .../examples/middleware/e2e/base.spec.ts | 39 + .../middleware/e2e/cloudflare-context.spec.ts | 11 + .../middleware/e2e/playwright.config.ts | 3 + .../middleware/e2e/playwright.dev.config.ts | 6 + .../examples/middleware/middleware.ts | 38 + .../examples/middleware/next.config.mjs | 11 + .../examples/middleware/open-next.config.ts | 3 + .../examples/middleware/package.json | 31 + .../examples/middleware/public/favicon.ico | Bin 0 -> 25931 bytes .../examples/middleware/public/vercel.svg | 4 + .../examples/middleware/tsconfig.json | 25 + .../examples/middleware/wrangler.jsonc | 15 + .../next-partial-prerendering/.gitignore | 40 + .../next-partial-prerendering/.prettierrc | 3 + .../next-partial-prerendering/README.md | 23 + .../next-partial-prerendering/app/favicon.ico | Bin 0 -> 15086 bytes .../next-partial-prerendering/app/layout.tsx | 50 + .../app/not-found.tsx | 8 + .../app/opengraph-image.png | Bin 0 -> 98894 bytes .../next-partial-prerendering/app/page.tsx | 28 + .../next-partial-prerendering/app/styles.tsx | 13 + .../app/twitter-image.png | Bin 0 -> 98894 bytes .../components/add-to-cart.tsx | 56 + .../components/byline.tsx | 31 + .../components/cart-count-context.tsx | 35 + .../components/cart-count.tsx | 8 + .../components/header.tsx | 60 + .../components/next-logo.tsx | 54 + .../components/ping.tsx | 12 + .../components/pricing.tsx | 86 + .../components/product-best-seller.tsx | 7 + .../components/product-card.tsx | 54 + .../components/product-currency-symbol.tsx | 27 + .../components/product-deal.tsx | 36 + .../components/product-estimated-arrival.tsx | 24 + .../components/product-lightening-deal.tsx | 28 + .../components/product-low-stock-warning.tsx | 13 + .../components/product-price.tsx | 52 + .../components/product-rating.tsx | 17 + .../components/product-review-card.tsx | 19 + .../components/product-split-payments.tsx | 17 + .../components/product-used-price.tsx | 19 + .../components/recommended-products.tsx | 68 + .../components/reviews.tsx | 51 + .../components/sidebar.tsx | 100 + .../components/single-product.tsx | 84 + .../components/vercel-logo.tsx | 11 + .../e2e/playwright.config.ts | 3 + .../next-partial-prerendering/e2e/ppr.test.ts | 32 + .../next-partial-prerendering/lib/delay.ts | 17 + .../next-partial-prerendering/lib/products.ts | 106 + .../next-partial-prerendering/lib/reviews.ts | 23 + .../next-partial-prerendering/next.config.js | 10 + .../open-next.config.ts | 6 + .../next-partial-prerendering/package.json | 36 + .../postcss.config.js | 6 + ...alexander-andrews-brAkTCdnhW8-unsplash.jpg | Bin 0 -> 119158 bytes .../public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg | Bin 0 -> 97041 bytes .../next-partial-prerendering/public/grid.svg | 5 + .../guillaume-coupy-6HuoHgK7FN8-unsplash.jpg | Bin 0 -> 111468 bytes .../public/nextjs-icon-light-background.png | Bin 0 -> 31283 bytes .../public/patrick-OIFgeLnjwrM-unsplash.jpg | Bin 0 -> 111044 bytes .../prince-akachi-LWkFHEGpleE-unsplash.jpg | Bin 0 -> 36336 bytes .../yoann-siloine-_T4w3JDm6ug-unsplash.jpg | Bin 0 -> 114615 bytes .../tailwind.config.ts | 89 + .../next-partial-prerendering/tsconfig.json | 29 + .../types/product.d.ts | 37 + .../types/review.d.ts | 6 + .../next-partial-prerendering/wrangler.jsonc | 11 + .../examples/overrides/d1-tag-next/.gitignore | 47 + .../overrides/d1-tag-next/app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../overrides/d1-tag-next/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/d1-tag-next/app/globals.css | 14 + .../overrides/d1-tag-next/app/layout.tsx | 28 + .../overrides/d1-tag-next/app/page.module.css | 17 + .../overrides/d1-tag-next/app/page.tsx | 26 + .../overrides/d1-tag-next/e2e/base.spec.ts | 47 + .../d1-tag-next/e2e/playwright.config.ts | 4 + .../overrides/d1-tag-next/next.config.ts | 11 + .../overrides/d1-tag-next/open-next.config.ts | 8 + .../overrides/d1-tag-next/package.json | 29 + .../overrides/d1-tag-next/tsconfig.json | 27 + .../overrides/d1-tag-next/wrangler.jsonc | 27 + .../overrides/memory-queue/.gitignore | 47 + .../overrides/memory-queue/app/favicon.ico | Bin 0 -> 25931 bytes .../overrides/memory-queue/app/globals.css | 14 + .../overrides/memory-queue/app/layout.tsx | 25 + .../memory-queue/app/page.module.css | 17 + .../overrides/memory-queue/app/page.tsx | 16 + .../overrides/memory-queue/e2e/base.spec.ts | 36 + .../memory-queue/e2e/playwright.config.ts | 8 + .../overrides/memory-queue/next.config.ts | 11 + .../memory-queue/open-next.config.ts | 8 + .../overrides/memory-queue/package.json | 29 + .../overrides/memory-queue/tsconfig.json | 27 + .../overrides/memory-queue/wrangler.jsonc | 23 + .../overrides/r2-incremental-cache/.gitignore | 47 + .../r2-incremental-cache/app/favicon.ico | Bin 0 -> 25931 bytes .../r2-incremental-cache/app/globals.css | 14 + .../r2-incremental-cache/app/layout.tsx | 25 + .../r2-incremental-cache/app/page.module.css | 17 + .../r2-incremental-cache/app/page.tsx | 16 + .../r2-incremental-cache/e2e/base.spec.ts | 36 + .../e2e/playwright.config.ts | 8 + .../r2-incremental-cache/next.config.ts | 11 + .../r2-incremental-cache/open-next.config.ts | 14 + .../r2-incremental-cache/package.json | 29 + .../r2-incremental-cache/tsconfig.json | 27 + .../r2-incremental-cache/wrangler.jsonc | 37 + .../.gitignore | 47 + .../app/action.ts | 11 + .../app/components/revalidationButtons.tsx | 27 + .../app/favicon.ico | Bin 0 -> 25931 bytes .../app/globals.css | 14 + .../app/layout.tsx | 28 + .../app/page.module.css | 17 + .../app/page.tsx | 26 + .../e2e/base.spec.ts | 41 + .../e2e/playwright.config.ts | 7 + .../next-env.d.ts | 5 + .../next.config.ts | 11 + .../open-next.config.ts | 6 + .../package.json | 29 + .../tsconfig.json | 27 + .../wrangler.jsonc | 11 + .../examples/playground14/.dev.vars | 1 + .../examples/playground14/.env.development | 2 + .../examples/playground14/.gitignore | 45 + .../playground14/app/api/buildid/route.ts | 9 + .../playground14/app/api/env/route.ts | 8 + .../playground14/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 10 + .../playground14/app/api/request/route.ts | 5 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground14/app/layout.js | 12 + .../examples/playground14/app/og/route.tsx | 65 + .../examples/playground14/app/page.js | 7 + .../examples/playground14/e2e/base.spec.ts | 66 + .../playground14/e2e/cloudflare.spec.ts | 56 + .../examples/playground14/e2e/head.spec.ts | 13 + .../playground14/e2e/instrumentation.spec.ts | 36 + .../examples/playground14/e2e/isr.spec.ts | 32 + .../playground14/e2e/playwright.config.ts | 3 + .../playground14/e2e/playwright.dev.config.ts | 6 + .../examples/playground14/instrumentation.js | 15 + .../examples/playground14/lib/posts.ts | 53 + .../examples/playground14/middleware.js | 12 + .../examples/playground14/next.config.mjs | 31 + .../examples/playground14/open-next.config.ts | 7 + .../examples/playground14/package.json | 29 + .../examples/playground14/pages/api/pages.ts | 9 + .../examples/playground14/pages/head.tsx | 23 + .../examples/playground14/public/.gitkeep | 0 .../playground14/public/snipp/snipp.webp | Bin 0 -> 322224 bytes .../examples/playground14/tsconfig.json | 24 + .../playground14/worker-configuration.d.ts | 6415 +++++ .../examples/playground14/worker.ts | 21 + .../examples/playground14/wrangler.jsonc | 22 + .../examples/playground15/.dev.vars | 1 + .../examples/playground15/.env.development | 1 + .../examples/playground15/.gitignore | 45 + .../playground15/app/api/buildid/route.ts | 9 + .../playground15/app/api/env/route.ts | 10 + .../playground15/app/api/hello/route.ts | 21 + .../app/api/instrumentation/route.ts | 8 + .../playground15/app/api/request/route.ts | 5 + .../playground15/app/from-app/page.tsx | 29 + .../app/isr/[id]/dynamic/page.tsx | 32 + .../app/isr/[id]/no-dynamic/page.tsx | 31 + .../examples/playground15/app/layout.js | 12 + .../examples/playground15/app/og/route.tsx | 65 + .../playground15/app/other-app/page.tsx | 24 + .../examples/playground15/app/page.js | 7 + .../examples/playground15/data.js | 6 + .../examples/playground15/data.module.css | 3 + .../examples/playground15/e2e/base.spec.ts | 61 + .../playground15/e2e/cloudflare.spec.ts | 16 + .../examples/playground15/e2e/head.spec.ts | 13 + .../playground15/e2e/instrumentation.spec.ts | 36 + .../examples/playground15/e2e/isr.spec.ts | 32 + .../playground15/e2e/playwright.config.ts | 3 + .../playground15/e2e/playwright.dev.config.ts | 6 + .../examples/playground15/instrumentation.js | 22 + .../examples/playground15/lib/posts.ts | 53 + .../examples/playground15/middleware.js | 12 + .../examples/playground15/next.config.mjs | 16 + .../examples/playground15/open-next.config.ts | 13 + .../examples/playground15/package.json | 29 + .../examples/playground15/pages/head.tsx | 23 + .../examples/playground15/public/.gitkeep | 0 .../examples/playground15/public/test.jpg | Bin 0 -> 6765 bytes .../examples/playground15/tsconfig.json | 25 + .../playground15/worker-configuration.d.ts | 5 + .../examples/playground15/wrangler.jsonc | 21 + .conflict-side-1/examples/prisma/.gitignore | 47 + .conflict-side-1/examples/prisma/README.md | 36 + .../examples/prisma/e2e/playwright.config.ts | 3 + .../prisma/e2e/playwright.dev.config.ts | 6 + .../examples/prisma/e2e/prisma.spec.ts | 21 + .../examples/prisma/next.config.ts | 11 + .../examples/prisma/open-next.config.ts | 3 + .conflict-side-1/examples/prisma/package.json | 34 + .conflict-side-1/examples/prisma/populate.sql | 11 + .../examples/prisma/prisma.config.ts | 6 + .../examples/prisma/schema.prisma | 15 + .../examples/prisma/src/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/prisma/src/app/globals.css | 42 + .../examples/prisma/src/app/layout.tsx | 30 + .../examples/prisma/src/app/page.module.css | 168 + .../examples/prisma/src/app/page.tsx | 22 + .../examples/prisma/src/lib/db.ts | 11 + .../examples/prisma/tsconfig.json | 27 + .../examples/prisma/worker-configuration.d.ts | 6452 +++++ .../examples/prisma/wrangler.jsonc | 18 + .conflict-side-1/examples/ssg-app/.dev.vars | 1 + .conflict-side-1/examples/ssg-app/.gitignore | 47 + .../examples/ssg-app/app/favicon.ico | Bin 0 -> 25931 bytes .../examples/ssg-app/app/globals.css | 14 + .../examples/ssg-app/app/layout.tsx | 28 + .../examples/ssg-app/app/page.module.css | 17 + .../examples/ssg-app/app/page.tsx | 17 + .../examples/ssg-app/e2e/base.spec.ts | 19 + .../examples/ssg-app/e2e/playwright.config.ts | 3 + .../examples/ssg-app/next.config.ts | 11 + .../examples/ssg-app/open-next.config.ts | 6 + .../examples/ssg-app/package.json | 29 + .../examples/ssg-app/tsconfig.json | 27 + .../ssg-app/worker-configuration.d.ts | 5 + .../examples/ssg-app/wrangler.jsonc | 14 + .../examples/vercel-blog-starter/.gitignore | 40 + .../examples/vercel-blog-starter/README.md | 63 + .../_posts/dynamic-routing.md | 19 + .../vercel-blog-starter/_posts/hello-world.md | 19 + .../vercel-blog-starter/_posts/preview.md | 19 + .../vercel-blog-starter/next.config.mjs | 7 + .../vercel-blog-starter/open-next.config.ts | 6 + .../examples/vercel-blog-starter/package.json | 33 + .../vercel-blog-starter/postcss.config.js | 6 + .../public/assets/blog/authors/jj.jpeg | Bin 0 -> 6186 bytes .../public/assets/blog/authors/joe.jpeg | Bin 0 -> 7196 bytes .../public/assets/blog/authors/tim.jpeg | Bin 0 -> 6148 bytes .../assets/blog/dynamic-routing/cover.jpg | Bin 0 -> 117724 bytes .../public/assets/blog/hello-world/cover.jpg | Bin 0 -> 105406 bytes .../public/assets/blog/preview/cover.jpg | Bin 0 -> 44270 bytes .../public/favicon/android-chrome-192x192.png | Bin 0 -> 4795 bytes .../public/favicon/android-chrome-512x512.png | Bin 0 -> 14640 bytes .../public/favicon/apple-touch-icon.png | Bin 0 -> 1327 bytes .../public/favicon/browserconfig.xml | 9 + .../public/favicon/favicon-16x16.png | Bin 0 -> 595 bytes .../public/favicon/favicon-32x32.png | Bin 0 -> 880 bytes .../public/favicon/favicon.ico | Bin 0 -> 15086 bytes .../public/favicon/mstile-150x150.png | Bin 0 -> 3567 bytes .../public/favicon/safari-pinned-tab.svg | 33 + .../public/favicon/site.webmanifest | 19 + .../src/app/_components/alert.tsx | 48 + .../src/app/_components/avatar.tsx | 15 + .../src/app/_components/container.tsx | 9 + .../src/app/_components/cover-image.tsx | 36 + .../src/app/_components/date-formatter.tsx | 12 + .../src/app/_components/footer.tsx | 32 + .../src/app/_components/header.tsx | 14 + .../src/app/_components/hero-post.tsx | 40 + .../src/app/_components/intro.tsx | 19 + .../_components/markdown-styles.module.css | 18 + .../src/app/_components/more-stories.tsx | 27 + .../src/app/_components/post-body.tsx | 13 + .../src/app/_components/post-header.tsx | 34 + .../src/app/_components/post-preview.tsx | 34 + .../src/app/_components/post-title.tsx | 13 + .../src/app/_components/section-separator.tsx | 3 + .../src/app/_components/switch.module.css | 55 + .../src/app/_components/theme-switcher.tsx | 106 + .../vercel-blog-starter/src/app/globals.css | 3 + .../vercel-blog-starter/src/app/layout.tsx | 46 + .../vercel-blog-starter/src/app/page.tsx | 30 + .../src/app/posts/[slug]/page.tsx | 65 + .../src/interfaces/author.ts | 4 + .../src/interfaces/post.ts | 15 + .../vercel-blog-starter/src/lib/api.ts | 28 + .../vercel-blog-starter/src/lib/constants.ts | 4 + .../src/lib/markdownToHtml.ts | 7 + .../vercel-blog-starter/tailwind.config.ts | 43 + .../vercel-blog-starter/tsconfig.json | 26 + .../vercel-blog-starter/wrangler.jsonc | 11 + .conflict-side-1/package.json | 28 + .../packages/cloudflare/.gitignore | 1 + .../packages/cloudflare/CHANGELOG.md | 835 + .../packages/cloudflare/README.md | 57 + .conflict-side-1/packages/cloudflare/env.d.ts | 14 + .../packages/cloudflare/eslint.config.mjs | 39 + .../packages/cloudflare/package.json | 89 + .../cloudflare/src/api/cloudflare-context.ts | 362 + .../packages/cloudflare/src/api/config.ts | 200 + .../bucket-cache-purge.spec.ts | 149 + .../api/durable-objects/bucket-cache-purge.ts | 95 + .../src/api/durable-objects/queue.spec.ts | 350 + .../src/api/durable-objects/queue.ts | 309 + .../durable-objects/sharded-tag-cache.spec.ts | 43 + .../api/durable-objects/sharded-tag-cache.ts | 53 + .../packages/cloudflare/src/api/index.ts | 2 + .../overrides/asset-resolver/index.spec.ts | 47 + .../src/api/overrides/asset-resolver/index.ts | 97 + .../src/api/overrides/cache-purge/index.ts | 32 + .../incremental-cache/kv-incremental-cache.ts | 111 + .../incremental-cache/r2-incremental-cache.ts | 91 + .../incremental-cache/regional-cache.ts | 236 + .../static-assets-incremental-cache.ts | 74 + .../cloudflare/src/api/overrides/internal.ts | 102 + .../src/api/overrides/queue/do-queue.ts | 18 + .../api/overrides/queue/memory-queue.spec.ts | 87 + .../src/api/overrides/queue/memory-queue.ts | 69 + .../api/overrides/queue/queue-cache.spec.ts | 112 + .../src/api/overrides/queue/queue-cache.ts | 122 + .../overrides/tag-cache/d1-next-tag-cache.ts | 97 + .../tag-cache/do-sharded-tag-cache.spec.ts | 465 + .../tag-cache/do-sharded-tag-cache.ts | 469 + .../tag-cache/tag-cache-filter.spec.ts | 120 + .../overrides/tag-cache/tag-cache-filter.ts | 65 + .../cloudflare/src/cli/build/build.ts | 100 + .../cloudflare/src/cli/build/bundle-server.ts | 192 + .../compile-cache-assets-manifest.ts | 25 + .../cli/build/open-next/compile-env-files.ts | 20 + .../src/cli/build/open-next/compile-images.ts | 47 + .../src/cli/build/open-next/compile-init.ts | 36 + .../open-next/compile-skew-protection.ts | 28 + .../build/open-next/compileDurableObjects.ts | 41 + .../cli/build/open-next/createServerBundle.ts | 360 + .../ast/patch-vercel-og-library.spec.ts | 71 + .../patches/ast/patch-vercel-og-library.ts | 71 + .../cli/build/patches/ast/vercel-og.spec.ts | 27 + .../src/cli/build/patches/ast/vercel-og.ts | 62 + .../build/patches/ast/webpack-runtime.spec.ts | 113 + .../cli/build/patches/ast/webpack-runtime.ts | 110 + .../build/patches/plugins/dynamic-requires.ts | 161 + .../src/cli/build/patches/plugins/find-dir.ts | 50 + .../patches/plugins/instrumentation.spec.ts | 98 + .../build/patches/plugins/instrumentation.ts | 96 + .../build/patches/plugins/load-manifest.ts | 113 + .../build/patches/plugins/next-server.spec.ts | 190 + .../cli/build/patches/plugins/next-server.ts | 106 + .../cli/build/patches/plugins/open-next.ts | 49 + .../build/patches/plugins/optional-deps.ts | 63 + .../patches/plugins/pages-router-context.ts | 38 + .../plugins/patch-depd-deprecations.spec.ts | 32 + .../plugins/patch-depd-deprecations.ts | 47 + .../cli/build/patches/plugins/require-hook.ts | 20 + .../src/cli/build/patches/plugins/require.ts | 52 + .../patches/plugins/res-revalidate.spec.ts | 106 + .../build/patches/plugins/res-revalidate.ts | 83 + .../build/patches/plugins/use-cache.spec.ts | 104 + .../cli/build/patches/plugins/use-cache.ts | 43 + .../patches/plugins/wrangler-external.ts | 46 + .../cli/build/utils/copy-package-cli-files.ts | 23 + .../cli/build/utils/create-config-files.ts | 111 + .../src/cli/build/utils/ensure-cf-config.ts | 71 + .../utils/extract-project-env-vars.spec.ts | 81 + .../build/utils/extract-project-env-vars.ts | 36 + .../cloudflare/src/cli/build/utils/index.ts | 6 + .../build/utils/needs-experimental-react.ts | 19 + .../src/cli/build/utils/normalize-path.ts | 5 + .../src/cli/build/utils/test-patch.ts | 15 + .../cloudflare/src/cli/build/utils/version.ts | 13 + .../src/cli/build/utils/workerd.spec.ts | 209 + .../cloudflare/src/cli/build/utils/workerd.ts | 104 + .../cloudflare/src/cli/commands/build.ts | 48 + .../cloudflare/src/cli/commands/deploy.ts | 50 + .../cloudflare/src/cli/commands/helpers.ts | 41 + .../src/cli/commands/populate-cache.spec.ts | 70 + .../src/cli/commands/populate-cache.ts | 317 + .../cloudflare/src/cli/commands/preview.ts | 28 + .../cloudflare/src/cli/commands/setup-cli.ts | 112 + .../src/cli/commands/skew-protection.spec.ts | 69 + .../src/cli/commands/skew-protection.ts | 263 + .../cloudflare/src/cli/commands/upload.ts | 48 + .../packages/cloudflare/src/cli/index.ts | 25 + .../cloudflare/src/cli/project-options.ts | 13 + .../src/cli/templates/images.spec.ts | 428 + .../cloudflare/src/cli/templates/images.ts | 229 + .../cloudflare/src/cli/templates/init.ts | 160 + .../src/cli/templates/shims/empty.ts | 1 + .../cloudflare/src/cli/templates/shims/env.ts | 1 + .../src/cli/templates/shims/fetch.ts | 1 + .../src/cli/templates/shims/throw.ts | 2 + .../src/cli/templates/skew-protection.ts | 74 + .../cloudflare/src/cli/templates/worker.ts | 60 + .../src/cli/utils/ask-confirmation.ts | 19 + .../cloudflare/src/cli/utils/run-wrangler.ts | 91 + .../utils/get-package-templates-dir-path.ts | 15 + .../cloudflare/templates/open-next.config.ts | 7 + .../cloudflare/templates/wrangler.jsonc | 22 + .../packages/cloudflare/tsconfig.json | 20 + .conflict-side-1/pnpm-lock.yaml | 20870 +++++++++++++++ .conflict-side-1/pnpm-workspace.yaml | 52 + README.txt | 1 + 3094 files changed, 178910 insertions(+) rename {.changeset => .auto-resolution/.changeset}/README.md (100%) rename {.changeset => .auto-resolution/.changeset}/config.json (100%) rename {.changeset => .auto-resolution/.changeset}/empty-garlics-lead.md (100%) rename {.changeset => .auto-resolution/.changeset}/hungry-ideas-buy.md (100%) rename .editorconfig => .auto-resolution/.editorconfig (100%) rename {.github => .auto-resolution/.github}/ISSUE_TEMPLATE/1.bug_report.yml (100%) rename {.github => .auto-resolution/.github}/ISSUE_TEMPLATE/2.feature_request.yml (100%) rename {.github => .auto-resolution/.github}/ISSUE_TEMPLATE/config.yml (100%) rename {.github => .auto-resolution/.github}/actions/install-dependencies/action.yml (100%) rename {.github => .auto-resolution/.github}/actions/setup-playwright/action.yml (100%) rename {.github => .auto-resolution/.github}/workflows/changesets.yml (100%) rename {.github => .auto-resolution/.github}/workflows/checks.yml (100%) rename {.github => .auto-resolution/.github}/workflows/playwright.yml (100%) rename {.github => .auto-resolution/.github}/workflows/prereleases.yml (100%) rename .gitignore => .auto-resolution/.gitignore (100%) rename .prettierignore => .auto-resolution/.prettierignore (100%) rename .prettierrc => .auto-resolution/.prettierrc (100%) rename {.vscode => .auto-resolution/.vscode}/settings.json (100%) rename CONTRIBUTING.md => .auto-resolution/CONTRIBUTING.md (100%) rename LICENSE => .auto-resolution/LICENSE (100%) rename README.md => .auto-resolution/README.md (100%) rename {benchmarking => .auto-resolution/benchmarking}/.gitignore (100%) rename {benchmarking => .auto-resolution/benchmarking}/README.md (100%) rename {benchmarking => .auto-resolution/benchmarking}/package.json (100%) rename {benchmarking => .auto-resolution/benchmarking}/src/benchmarking.ts (100%) rename {benchmarking => .auto-resolution/benchmarking}/src/cloudflare.ts (100%) rename {benchmarking => .auto-resolution/benchmarking}/src/index.ts (100%) rename {benchmarking => .auto-resolution/benchmarking}/src/utils.ts (100%) rename {benchmarking => .auto-resolution/benchmarking}/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/.eslintrc.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/.gitignore (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/README.md (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/fonts/GeistMonoVF.woff (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/fonts/GeistVF.woff (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/globals.css (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/next.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/package.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/postcss.config.mjs (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/public/file.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/public/globe.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/public/next.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/public/vercel.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/public/window.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-119/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/.dev.vars (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/.gitignore (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/README.md (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/eslint.config.mjs (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/next.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/package.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/postcss.config.mjs (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/public/file.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/public/globe.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/public/next.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/public/vercel.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/public/window.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/src/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/src/app/globals.css (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/src/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/src/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/src/firebase/config.js (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-219/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/.eslintrc.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/.gitignore (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/README.md (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/app/api/image/route.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/app/globals.css (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/package.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/postcss.config.mjs (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/public/next.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/public/vercel.svg (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/src/utils/common.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/src/utils/s3Bucket.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/bugs/gh-223/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/common/apps.ts (100%) rename {examples => .auto-resolution/examples}/common/config-e2e.ts (100%) rename {examples => .auto-resolution/examples}/common/package.json (100%) rename {examples => .auto-resolution/examples}/common/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/create-next-app/.eslintrc.json (100%) rename {examples => .auto-resolution/examples}/create-next-app/.gitignore (100%) rename {examples => .auto-resolution/examples}/create-next-app/README.md (100%) rename {examples => .auto-resolution/examples}/create-next-app/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/create-next-app/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/create-next-app/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/create-next-app/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/create-next-app/package.json (100%) rename {examples => .auto-resolution/examples}/create-next-app/postcss.config.mjs (100%) rename {examples => .auto-resolution/examples}/create-next-app/public/next.svg (100%) rename {examples => .auto-resolution/examples}/create-next-app/public/vercel.svg (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/fonts/GeistMonoVF.woff (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/fonts/GeistVF.woff (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/globals.css (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/create-next-app/src/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/create-next-app/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/create-next-app/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/create-next-app/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/.env (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/.gitignore (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/CHANGELOG.md (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/README.md (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/@modal/default.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/[album]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/albums/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/api/client/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/api/host/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/api/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/globals.css (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/image-optimization/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/isr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/@a/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/@b/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/parallel/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/redirect-destination/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/rewrite-destination/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/server-actions/client.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/server-actions/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/ssr/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/ssr/loading.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/app/ssr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/api.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/host.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/image-optimization.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/isr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/middleware.redirect.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/middleware.rewrite.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/modals.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/pages_isr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/pages_ssr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/parallel.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/serverActions.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/skip_trailing.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/e2e/ssr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/middleware.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/package.json (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/pages/_app.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/pages/_document.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/pages/api/hello.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/pages/pages_isr/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/pages/pages_ssr/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/postcss.config.js (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/public/favicon.ico (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/public/static/corporate_holiday_card.jpg (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/public/static/frank.webp (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/styles/globals.css (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/e2e/app-pages-router/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/.gitignore (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/CHANGELOG.md (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/README.md (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/@modal/default.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/[album]/[song]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/[album]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/albums/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/after/revalidate/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/after/ssg/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/client/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/host/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/isr/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/og/route.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/revalidate-path/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/revalidate-tag/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/api/sse/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/config-redirect/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/cookies/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/globals.css (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/headers/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/image-optimization/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/isr-data-cache/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/isr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/get/query/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/get/redirect/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/get/revalidate/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/get/static/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/post/cookies/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/post/formdata/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/methods/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/og/opengraph-image.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/og/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/@a/a-page/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/@a/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/@b/b-page/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/@b/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/parallel/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/redirect-destination/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/revalidate-path/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/revalidate-tag/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/revalidate-tag/nested/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/revalidate-tag/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/rewrite-destination/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/search-query/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/server-actions/client.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/server-actions/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/sse/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/ssr/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/ssr/loading.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/app/ssr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/after.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/api.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/config.redirect.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/headers.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/host.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/image-optimization.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/isr.revalidate.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/isr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/methods.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/middleware.cookies.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/middleware.redirect.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/middleware.rewrite.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/modals.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/og.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/parallel.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/query.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/revalidateTag.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/serverActions.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/sse.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/ssr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/e2e/trailing.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/middleware.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/package.json (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/postcss.config.js (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/public/favicon.ico (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/public/static/corporate_holiday_card.jpg (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/public/static/frank.webp (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/e2e/app-router/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/.gitignore (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/README.md (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/e2e/nodeMiddleware.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/e2e/ppr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/e2e/use-cache.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/package.json (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/api/revalidate/route.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/globals.css (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/ppr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/use-cache/fetch/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/use-cache/isr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/use-cache/layout.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/app/use-cache/ssr/page.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/components/cached.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/components/dynamic.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/components/static.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/src/middleware.ts (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/e2e/experimental/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/.env.production (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/.gitignore (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/README.md (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/404.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/amp.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/api.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/data.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/fallback.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/head.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/header.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/i18n.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/isr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/redirect.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/revalidate.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/rewrite.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/ssr.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/streaming.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/e2e/trailing.test.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/package.json (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/postcss.config.js (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/public/favicon.ico (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/public/static/frank.webp (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/middleware.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/_app.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/_document.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/amp/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/dynamic/[slug].ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/hello.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/query.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/revalidate.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/api/streaming/index.ts (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/fallback-intercepted/static.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/fallback/[slug].tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/head/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/isr/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/sse/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/ssg/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/pages/ssr/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/src/styles/globals.css (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/e2e/pages-router/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/e2e/shared/api/index.ts (100%) rename {examples => .auto-resolution/examples}/e2e/shared/api/songs.json (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Album/Album.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Album/Song.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Album/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Filler/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Modal/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/components/Nav/index.tsx (100%) rename {examples => .auto-resolution/examples}/e2e/shared/package.json (100%) rename {examples => .auto-resolution/examples}/e2e/shared/sst-env.d.ts (100%) rename {examples => .auto-resolution/examples}/e2e/shared/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/e2e/utils.ts (100%) rename {examples => .auto-resolution/examples}/middleware/.env (100%) rename {examples => .auto-resolution/examples}/middleware/.gitignore (100%) rename {examples => .auto-resolution/examples}/middleware/README.md (100%) rename {examples => .auto-resolution/examples}/middleware/app/about/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/about2/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/another/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/clerk/route.ts (100%) rename {examples => .auto-resolution/examples}/middleware/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/middleware/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/redirected/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/app/rewrite/page.tsx (100%) rename {examples => .auto-resolution/examples}/middleware/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/middleware/e2e/cloudflare-context.spec.ts (100%) rename {examples => .auto-resolution/examples}/middleware/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/middleware/e2e/playwright.dev.config.ts (100%) rename {examples => .auto-resolution/examples}/middleware/middleware.ts (100%) rename {examples => .auto-resolution/examples}/middleware/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/middleware/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/middleware/package.json (100%) rename {examples => .auto-resolution/examples}/middleware/public/favicon.ico (100%) rename {examples => .auto-resolution/examples}/middleware/public/vercel.svg (100%) rename {examples => .auto-resolution/examples}/middleware/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/middleware/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/.gitignore (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/.prettierrc (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/README.md (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/not-found.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/opengraph-image.png (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/styles.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/app/twitter-image.png (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/add-to-cart.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/byline.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/cart-count-context.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/cart-count.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/header.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/next-logo.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/ping.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/pricing.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-best-seller.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-card.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-currency-symbol.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-deal.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-estimated-arrival.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-lightening-deal.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-low-stock-warning.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-price.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-rating.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-review-card.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-split-payments.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/product-used-price.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/recommended-products.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/reviews.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/sidebar.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/single-product.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/components/vercel-logo.tsx (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/e2e/ppr.test.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/lib/delay.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/lib/products.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/lib/reviews.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/next.config.js (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/package.json (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/postcss.config.js (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/grid.svg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/nextjs-icon-light-background.png (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/types/product.d.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/types/review.d.ts (100%) rename {examples => .auto-resolution/examples}/next-partial-prerendering/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/.gitignore (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/action.ts (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/components/revalidationButtons.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/globals.css (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/package.json (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/overrides/d1-tag-next/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/.gitignore (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/app/globals.css (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/package.json (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/overrides/memory-queue/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/.gitignore (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/app/globals.css (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/package.json (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/overrides/r2-incremental-cache/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/.gitignore (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/action.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/globals.css (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/next-env.d.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/package.json (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/overrides/static-assets-incremental-cache/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/playground14/.dev.vars (100%) rename {examples => .auto-resolution/examples}/playground14/.env.development (100%) rename {examples => .auto-resolution/examples}/playground14/.gitignore (100%) rename {examples => .auto-resolution/examples}/playground14/app/api/buildid/route.ts (100%) rename {examples => .auto-resolution/examples}/playground14/app/api/env/route.ts (100%) rename {examples => .auto-resolution/examples}/playground14/app/api/hello/route.ts (100%) rename {examples => .auto-resolution/examples}/playground14/app/api/instrumentation/route.ts (100%) rename {examples => .auto-resolution/examples}/playground14/app/api/request/route.ts (100%) rename {examples => .auto-resolution/examples}/playground14/app/isr/[id]/dynamic/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground14/app/isr/[id]/no-dynamic/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground14/app/layout.js (100%) rename {examples => .auto-resolution/examples}/playground14/app/og/route.tsx (100%) rename {examples => .auto-resolution/examples}/playground14/app/page.js (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/cloudflare.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/head.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/instrumentation.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/isr.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/playground14/e2e/playwright.dev.config.ts (100%) rename {examples => .auto-resolution/examples}/playground14/instrumentation.js (100%) rename {examples => .auto-resolution/examples}/playground14/lib/posts.ts (100%) rename {examples => .auto-resolution/examples}/playground14/middleware.js (100%) rename {examples => .auto-resolution/examples}/playground14/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/playground14/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/playground14/package.json (100%) rename {examples => .auto-resolution/examples}/playground14/pages/api/pages.ts (100%) rename {examples => .auto-resolution/examples}/playground14/pages/head.tsx (100%) rename {examples => .auto-resolution/examples}/playground14/public/.gitkeep (100%) rename {examples => .auto-resolution/examples}/playground14/public/snipp/snipp.webp (100%) rename {examples => .auto-resolution/examples}/playground14/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/playground14/worker-configuration.d.ts (100%) rename {examples => .auto-resolution/examples}/playground14/worker.ts (100%) rename {examples => .auto-resolution/examples}/playground14/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/playground15/.dev.vars (100%) rename {examples => .auto-resolution/examples}/playground15/.env.development (100%) rename {examples => .auto-resolution/examples}/playground15/.gitignore (100%) rename {examples => .auto-resolution/examples}/playground15/app/api/buildid/route.ts (100%) rename {examples => .auto-resolution/examples}/playground15/app/api/env/route.ts (100%) rename {examples => .auto-resolution/examples}/playground15/app/api/hello/route.ts (100%) rename {examples => .auto-resolution/examples}/playground15/app/api/instrumentation/route.ts (100%) rename {examples => .auto-resolution/examples}/playground15/app/api/request/route.ts (100%) rename {examples => .auto-resolution/examples}/playground15/app/from-app/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/app/isr/[id]/dynamic/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/app/isr/[id]/no-dynamic/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/app/layout.js (100%) rename {examples => .auto-resolution/examples}/playground15/app/og/route.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/app/other-app/page.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/app/page.js (100%) rename {examples => .auto-resolution/examples}/playground15/data.js (100%) rename {examples => .auto-resolution/examples}/playground15/data.module.css (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/cloudflare.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/head.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/instrumentation.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/isr.spec.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/playground15/e2e/playwright.dev.config.ts (100%) rename {examples => .auto-resolution/examples}/playground15/instrumentation.js (100%) rename {examples => .auto-resolution/examples}/playground15/lib/posts.ts (100%) rename {examples => .auto-resolution/examples}/playground15/middleware.js (100%) rename {examples => .auto-resolution/examples}/playground15/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/playground15/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/playground15/package.json (100%) rename {examples => .auto-resolution/examples}/playground15/pages/head.tsx (100%) rename {examples => .auto-resolution/examples}/playground15/public/.gitkeep (100%) rename {examples => .auto-resolution/examples}/playground15/public/test.jpg (100%) rename {examples => .auto-resolution/examples}/playground15/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/playground15/worker-configuration.d.ts (100%) rename {examples => .auto-resolution/examples}/playground15/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/prisma/.gitignore (100%) rename {examples => .auto-resolution/examples}/prisma/README.md (100%) rename {examples => .auto-resolution/examples}/prisma/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/prisma/e2e/playwright.dev.config.ts (100%) rename {examples => .auto-resolution/examples}/prisma/e2e/prisma.spec.ts (100%) rename {examples => .auto-resolution/examples}/prisma/next.config.ts (100%) rename {examples => .auto-resolution/examples}/prisma/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/prisma/package.json (100%) rename {examples => .auto-resolution/examples}/prisma/populate.sql (100%) rename {examples => .auto-resolution/examples}/prisma/prisma.config.ts (100%) rename {examples => .auto-resolution/examples}/prisma/schema.prisma (100%) rename {examples => .auto-resolution/examples}/prisma/src/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/prisma/src/app/globals.css (100%) rename {examples => .auto-resolution/examples}/prisma/src/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/prisma/src/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/prisma/src/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/prisma/src/lib/db.ts (100%) rename {examples => .auto-resolution/examples}/prisma/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/prisma/worker-configuration.d.ts (100%) rename {examples => .auto-resolution/examples}/prisma/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/ssg-app/.dev.vars (100%) rename {examples => .auto-resolution/examples}/ssg-app/.gitignore (100%) rename {examples => .auto-resolution/examples}/ssg-app/app/favicon.ico (100%) rename {examples => .auto-resolution/examples}/ssg-app/app/globals.css (100%) rename {examples => .auto-resolution/examples}/ssg-app/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/ssg-app/app/page.module.css (100%) rename {examples => .auto-resolution/examples}/ssg-app/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/ssg-app/e2e/base.spec.ts (100%) rename {examples => .auto-resolution/examples}/ssg-app/e2e/playwright.config.ts (100%) rename {examples => .auto-resolution/examples}/ssg-app/next.config.ts (100%) rename {examples => .auto-resolution/examples}/ssg-app/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/ssg-app/package.json (100%) rename {examples => .auto-resolution/examples}/ssg-app/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/ssg-app/worker-configuration.d.ts (100%) rename {examples => .auto-resolution/examples}/ssg-app/wrangler.jsonc (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/.gitignore (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/README.md (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/_posts/dynamic-routing.md (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/_posts/hello-world.md (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/_posts/preview.md (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/next.config.mjs (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/open-next.config.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/package.json (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/postcss.config.js (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/authors/jj.jpeg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/authors/joe.jpeg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/authors/tim.jpeg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/assets/blog/preview/cover.jpg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/android-chrome-192x192.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/android-chrome-512x512.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/apple-touch-icon.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/browserconfig.xml (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/favicon-16x16.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/favicon-32x32.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/favicon.ico (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/mstile-150x150.png (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/safari-pinned-tab.svg (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/public/favicon/site.webmanifest (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/alert.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/avatar.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/container.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/cover-image.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/date-formatter.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/footer.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/header.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/hero-post.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/intro.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/markdown-styles.module.css (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/more-stories.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/post-body.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/post-header.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/post-preview.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/post-title.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/section-separator.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/switch.module.css (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/_components/theme-switcher.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/globals.css (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/layout.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/page.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/app/posts/[slug]/page.tsx (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/interfaces/author.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/interfaces/post.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/lib/api.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/lib/constants.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/src/lib/markdownToHtml.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/tailwind.config.ts (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/tsconfig.json (100%) rename {examples => .auto-resolution/examples}/vercel-blog-starter/wrangler.jsonc (100%) rename package.json => .auto-resolution/package.json (100%) rename {packages => .auto-resolution/packages}/cloudflare/.gitignore (100%) rename {packages => .auto-resolution/packages}/cloudflare/CHANGELOG.md (100%) rename {packages => .auto-resolution/packages}/cloudflare/README.md (100%) rename {packages => .auto-resolution/packages}/cloudflare/env.d.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/eslint.config.mjs (100%) rename {packages => .auto-resolution/packages}/cloudflare/package.json (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/cloudflare-context.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/config.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/bucket-cache-purge.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/queue.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/queue.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/durable-objects/sharded-tag-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/index.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/asset-resolver/index.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/asset-resolver/index.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/cache-purge/index.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/internal.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/queue/do-queue.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/queue/memory-queue.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/queue/memory-queue.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/queue/queue-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/queue/queue-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/build.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/bundle-server.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compile-env-files.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compile-images.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compile-init.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compile-skew-protection.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/compileDurableObjects.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/open-next/createServerBundle.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/vercel-og.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/find-dir.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/instrumentation.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/load-manifest.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/next-server.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/open-next.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/optional-deps.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/require-hook.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/require.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/use-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/copy-package-cli-files.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/create-config-files.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/ensure-cf-config.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/extract-project-env-vars.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/index.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/needs-experimental-react.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/normalize-path.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/test-patch.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/version.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/workerd.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/build/utils/workerd.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/build.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/deploy.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/helpers.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/populate-cache.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/populate-cache.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/preview.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/setup-cli.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/skew-protection.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/skew-protection.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/commands/upload.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/index.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/project-options.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/images.spec.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/images.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/init.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/shims/empty.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/shims/env.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/shims/fetch.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/shims/throw.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/skew-protection.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/templates/worker.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/utils/ask-confirmation.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/cli/utils/run-wrangler.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/src/utils/get-package-templates-dir-path.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/templates/open-next.config.ts (100%) rename {packages => .auto-resolution/packages}/cloudflare/templates/wrangler.jsonc (100%) rename {packages => .auto-resolution/packages}/cloudflare/tsconfig.json (100%) create mode 100644 .auto-resolution/pnpm-lock.yaml create mode 100644 .auto-resolution/pnpm-workspace.yaml create mode 100644 .conflict-base-0/.changeset/README.md create mode 100644 .conflict-base-0/.changeset/config.json create mode 100644 .conflict-base-0/.changeset/crazy-birds-jam.md create mode 100644 .conflict-base-0/.changeset/eager-steaks-crash.md create mode 100644 .conflict-base-0/.changeset/hungry-ideas-buy.md create mode 100644 .conflict-base-0/.editorconfig create mode 100644 .conflict-base-0/.github/ISSUE_TEMPLATE/1.bug_report.yml create mode 100644 .conflict-base-0/.github/ISSUE_TEMPLATE/2.feature_request.yml create mode 100644 .conflict-base-0/.github/ISSUE_TEMPLATE/config.yml create mode 100644 .conflict-base-0/.github/actions/install-dependencies/action.yml create mode 100644 .conflict-base-0/.github/actions/setup-playwright/action.yml create mode 100644 .conflict-base-0/.github/workflows/changesets.yml create mode 100644 .conflict-base-0/.github/workflows/checks.yml create mode 100644 .conflict-base-0/.github/workflows/playwright.yml create mode 100644 .conflict-base-0/.github/workflows/prereleases.yml create mode 100644 .conflict-base-0/.gitignore create mode 100644 .conflict-base-0/.prettierignore create mode 100644 .conflict-base-0/.prettierrc create mode 100644 .conflict-base-0/.vscode/settings.json create mode 100644 .conflict-base-0/CONTRIBUTING.md create mode 100644 .conflict-base-0/LICENSE create mode 100644 .conflict-base-0/README.md create mode 100644 .conflict-base-0/benchmarking/.gitignore create mode 100644 .conflict-base-0/benchmarking/README.md create mode 100644 .conflict-base-0/benchmarking/package.json create mode 100644 .conflict-base-0/benchmarking/src/benchmarking.ts create mode 100644 .conflict-base-0/benchmarking/src/cloudflare.ts create mode 100644 .conflict-base-0/benchmarking/src/index.ts create mode 100644 .conflict-base-0/benchmarking/src/utils.ts create mode 100644 .conflict-base-0/benchmarking/tsconfig.json create mode 100644 .conflict-base-0/examples/bugs/gh-119/.eslintrc.json create mode 100644 .conflict-base-0/examples/bugs/gh-119/.gitignore create mode 100644 .conflict-base-0/examples/bugs/gh-119/README.md create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/favicon.ico create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/fonts/GeistVF.woff create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/globals.css create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/layout.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-119/app/page.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-119/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/bugs/gh-119/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-119/next.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-119/open-next.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-119/package.json create mode 100644 .conflict-base-0/examples/bugs/gh-119/postcss.config.mjs create mode 100644 .conflict-base-0/examples/bugs/gh-119/public/file.svg create mode 100644 .conflict-base-0/examples/bugs/gh-119/public/globe.svg create mode 100644 .conflict-base-0/examples/bugs/gh-119/public/next.svg create mode 100644 .conflict-base-0/examples/bugs/gh-119/public/vercel.svg create mode 100644 .conflict-base-0/examples/bugs/gh-119/public/window.svg create mode 100644 .conflict-base-0/examples/bugs/gh-119/tailwind.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-119/tsconfig.json create mode 100644 .conflict-base-0/examples/bugs/gh-119/wrangler.jsonc create mode 100644 .conflict-base-0/examples/bugs/gh-219/.dev.vars create mode 100644 .conflict-base-0/examples/bugs/gh-219/.gitignore create mode 100644 .conflict-base-0/examples/bugs/gh-219/README.md create mode 100644 .conflict-base-0/examples/bugs/gh-219/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/bugs/gh-219/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-219/eslint.config.mjs create mode 100644 .conflict-base-0/examples/bugs/gh-219/next.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-219/open-next.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-219/package.json create mode 100644 .conflict-base-0/examples/bugs/gh-219/postcss.config.mjs create mode 100644 .conflict-base-0/examples/bugs/gh-219/public/file.svg create mode 100644 .conflict-base-0/examples/bugs/gh-219/public/globe.svg create mode 100644 .conflict-base-0/examples/bugs/gh-219/public/next.svg create mode 100644 .conflict-base-0/examples/bugs/gh-219/public/vercel.svg create mode 100644 .conflict-base-0/examples/bugs/gh-219/public/window.svg create mode 100644 .conflict-base-0/examples/bugs/gh-219/src/app/favicon.ico create mode 100644 .conflict-base-0/examples/bugs/gh-219/src/app/globals.css create mode 100644 .conflict-base-0/examples/bugs/gh-219/src/app/layout.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-219/src/app/page.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-219/src/firebase/config.js create mode 100644 .conflict-base-0/examples/bugs/gh-219/tailwind.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-219/tsconfig.json create mode 100644 .conflict-base-0/examples/bugs/gh-219/wrangler.jsonc create mode 100644 .conflict-base-0/examples/bugs/gh-223/.eslintrc.json create mode 100644 .conflict-base-0/examples/bugs/gh-223/.gitignore create mode 100644 .conflict-base-0/examples/bugs/gh-223/README.md create mode 100644 .conflict-base-0/examples/bugs/gh-223/app/api/image/route.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/app/favicon.ico create mode 100644 .conflict-base-0/examples/bugs/gh-223/app/globals.css create mode 100644 .conflict-base-0/examples/bugs/gh-223/app/layout.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-223/app/page.tsx create mode 100644 .conflict-base-0/examples/bugs/gh-223/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/next.config.mjs create mode 100644 .conflict-base-0/examples/bugs/gh-223/open-next.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/package.json create mode 100644 .conflict-base-0/examples/bugs/gh-223/postcss.config.mjs create mode 100644 .conflict-base-0/examples/bugs/gh-223/public/next.svg create mode 100644 .conflict-base-0/examples/bugs/gh-223/public/vercel.svg create mode 100644 .conflict-base-0/examples/bugs/gh-223/src/utils/common.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/src/utils/s3Bucket.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/tailwind.config.ts create mode 100644 .conflict-base-0/examples/bugs/gh-223/tsconfig.json create mode 100644 .conflict-base-0/examples/bugs/gh-223/wrangler.jsonc create mode 100644 .conflict-base-0/examples/common/apps.ts create mode 100644 .conflict-base-0/examples/common/config-e2e.ts create mode 100644 .conflict-base-0/examples/common/package.json create mode 100644 .conflict-base-0/examples/common/tsconfig.json create mode 100644 .conflict-base-0/examples/create-next-app/.eslintrc.json create mode 100644 .conflict-base-0/examples/create-next-app/.gitignore create mode 100644 .conflict-base-0/examples/create-next-app/README.md create mode 100644 .conflict-base-0/examples/create-next-app/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/create-next-app/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/create-next-app/next.config.mjs create mode 100644 .conflict-base-0/examples/create-next-app/open-next.config.ts create mode 100644 .conflict-base-0/examples/create-next-app/package.json create mode 100644 .conflict-base-0/examples/create-next-app/postcss.config.mjs create mode 100644 .conflict-base-0/examples/create-next-app/public/next.svg create mode 100644 .conflict-base-0/examples/create-next-app/public/vercel.svg create mode 100644 .conflict-base-0/examples/create-next-app/src/app/favicon.ico create mode 100644 .conflict-base-0/examples/create-next-app/src/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-base-0/examples/create-next-app/src/app/fonts/GeistVF.woff create mode 100644 .conflict-base-0/examples/create-next-app/src/app/globals.css create mode 100644 .conflict-base-0/examples/create-next-app/src/app/layout.tsx create mode 100644 .conflict-base-0/examples/create-next-app/src/app/page.tsx create mode 100644 .conflict-base-0/examples/create-next-app/tailwind.config.ts create mode 100644 .conflict-base-0/examples/create-next-app/tsconfig.json create mode 100644 .conflict-base-0/examples/create-next-app/wrangler.jsonc create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/.env create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/.gitignore create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/CHANGELOG.md create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/README.md create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/default.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/albums/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/api/client/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/api/host/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/api/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/globals.css create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/image-optimization/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/isr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/parallel/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/redirect-destination/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/server-actions/client.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/server-actions/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/ssr/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/ssr/loading.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/app/ssr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/api.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/host.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/image-optimization.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/isr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/modals.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/pages_isr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/parallel.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/serverActions.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/e2e/ssr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/middleware.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/next.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/open-next.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/package.json create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/pages/_app.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/pages/_document.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/pages/api/hello.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/pages/pages_isr/index.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/postcss.config.js create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/public/favicon.ico create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/public/static/frank.webp create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/styles/globals.css create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/tailwind.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/tsconfig.json create mode 100644 .conflict-base-0/examples/e2e/app-pages-router/wrangler.jsonc create mode 100644 .conflict-base-0/examples/e2e/app-router/.gitignore create mode 100644 .conflict-base-0/examples/e2e/app-router/CHANGELOG.md create mode 100644 .conflict-base-0/examples/e2e/app-router/README.md create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/@modal/default.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/[album]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/albums/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/after/revalidate/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/after/ssg/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/client/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/host/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/isr/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/og/route.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/revalidate-path/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/revalidate-tag/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/api/sse/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/config-redirect/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/cookies/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/globals.css create mode 100644 .conflict-base-0/examples/e2e/app-router/app/headers/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/image-optimization/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/isr-data-cache/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/isr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/get/query/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/get/redirect/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/get/revalidate/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/get/static/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/post/cookies/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/post/formdata/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/methods/route.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/app/og/opengraph-image.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/og/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/@a/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/@b/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/parallel/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/redirect-destination/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/revalidate-path/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/revalidate-tag/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/revalidate-tag/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/search-query/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/server-actions/client.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/server-actions/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/sse/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/ssr/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/ssr/loading.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/app/ssr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/after.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/api.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/config.redirect.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/headers.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/host.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/image-optimization.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/isr.revalidate.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/isr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/methods.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/middleware.cookies.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/modals.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/og.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/parallel.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/query.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/revalidateTag.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/serverActions.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/sse.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/ssr.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/e2e/trailing.test.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/middleware.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/next.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/open-next.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/package.json create mode 100644 .conflict-base-0/examples/e2e/app-router/postcss.config.js create mode 100644 .conflict-base-0/examples/e2e/app-router/public/favicon.ico create mode 100644 .conflict-base-0/examples/e2e/app-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-base-0/examples/e2e/app-router/public/static/frank.webp create mode 100644 .conflict-base-0/examples/e2e/app-router/tailwind.config.ts create mode 100644 .conflict-base-0/examples/e2e/app-router/tsconfig.json create mode 100644 .conflict-base-0/examples/e2e/app-router/wrangler.jsonc create mode 100644 .conflict-base-0/examples/e2e/experimental/.gitignore create mode 100644 .conflict-base-0/examples/e2e/experimental/README.md create mode 100644 .conflict-base-0/examples/e2e/experimental/e2e/nodeMiddleware.test.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/e2e/ppr.test.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/e2e/use-cache.test.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/next.config.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/open-next.config.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/package.json create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/api/revalidate/route.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/favicon.ico create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/globals.css create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/page.module.css create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/page.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/ppr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/use-cache/isr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/use-cache/layout.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/components/cached.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/components/dynamic.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/components/static.tsx create mode 100644 .conflict-base-0/examples/e2e/experimental/src/middleware.ts create mode 100644 .conflict-base-0/examples/e2e/experimental/tsconfig.json create mode 100644 .conflict-base-0/examples/e2e/experimental/wrangler.jsonc create mode 100644 .conflict-base-0/examples/e2e/pages-router/.env.production create mode 100644 .conflict-base-0/examples/e2e/pages-router/.gitignore create mode 100644 .conflict-base-0/examples/e2e/pages-router/README.md create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/404.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/amp.test.ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/e2e/api.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/data.test.ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/e2e/fallback.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/head.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/header.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/i18n.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/isr.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/redirect.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/revalidate.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/rewrite.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/ssr.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/streaming.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/e2e/trailing.test.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/next.config.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/open-next.config.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/package.json create mode 100644 .conflict-base-0/examples/e2e/pages-router/postcss.config.js create mode 100644 .conflict-base-0/examples/e2e/pages-router/public/favicon.ico create mode 100644 .conflict-base-0/examples/e2e/pages-router/public/static/frank.webp create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/middleware.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/_app.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/_document.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/amp/index.tsx create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/api/hello.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/api/query.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/api/revalidate.ts create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/api/streaming/index.ts create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx create mode 100755 .conflict-base-0/examples/e2e/pages-router/src/pages/fallback/[slug].tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/head/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/isr/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/sse/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/ssg/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/pages/ssr/index.tsx create mode 100644 .conflict-base-0/examples/e2e/pages-router/src/styles/globals.css create mode 100644 .conflict-base-0/examples/e2e/pages-router/tsconfig.json create mode 100644 .conflict-base-0/examples/e2e/pages-router/wrangler.jsonc create mode 100644 .conflict-base-0/examples/e2e/shared/api/index.ts create mode 100644 .conflict-base-0/examples/e2e/shared/api/songs.json create mode 100644 .conflict-base-0/examples/e2e/shared/components/Album/Album.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/components/Album/Song.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/components/Album/index.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/components/Filler/index.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/components/Modal/index.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/components/Nav/index.tsx create mode 100644 .conflict-base-0/examples/e2e/shared/package.json create mode 100644 .conflict-base-0/examples/e2e/shared/sst-env.d.ts create mode 100644 .conflict-base-0/examples/e2e/shared/tsconfig.json create mode 100644 .conflict-base-0/examples/e2e/utils.ts create mode 100644 .conflict-base-0/examples/middleware/.env create mode 100755 .conflict-base-0/examples/middleware/.gitignore create mode 100755 .conflict-base-0/examples/middleware/README.md create mode 100644 .conflict-base-0/examples/middleware/app/about/page.tsx create mode 100644 .conflict-base-0/examples/middleware/app/about2/page.tsx create mode 100644 .conflict-base-0/examples/middleware/app/another/page.tsx create mode 100644 .conflict-base-0/examples/middleware/app/clerk/route.ts create mode 100644 .conflict-base-0/examples/middleware/app/layout.tsx create mode 100644 .conflict-base-0/examples/middleware/app/middleware/page.tsx create mode 100755 .conflict-base-0/examples/middleware/app/page.tsx create mode 100644 .conflict-base-0/examples/middleware/app/redirected/page.tsx create mode 100644 .conflict-base-0/examples/middleware/app/rewrite/page.tsx create mode 100644 .conflict-base-0/examples/middleware/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/middleware/e2e/cloudflare-context.spec.ts create mode 100644 .conflict-base-0/examples/middleware/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/middleware/e2e/playwright.dev.config.ts create mode 100644 .conflict-base-0/examples/middleware/middleware.ts create mode 100644 .conflict-base-0/examples/middleware/next.config.mjs create mode 100644 .conflict-base-0/examples/middleware/open-next.config.ts create mode 100644 .conflict-base-0/examples/middleware/package.json create mode 100755 .conflict-base-0/examples/middleware/public/favicon.ico create mode 100755 .conflict-base-0/examples/middleware/public/vercel.svg create mode 100755 .conflict-base-0/examples/middleware/tsconfig.json create mode 100644 .conflict-base-0/examples/middleware/wrangler.jsonc create mode 100755 .conflict-base-0/examples/next-partial-prerendering/.gitignore create mode 100644 .conflict-base-0/examples/next-partial-prerendering/.prettierrc create mode 100755 .conflict-base-0/examples/next-partial-prerendering/README.md create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/favicon.ico create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/layout.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/not-found.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/opengraph-image.png create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/page.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/styles.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/app/twitter-image.png create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/add-to-cart.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/byline.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/cart-count-context.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/cart-count.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/header.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/next-logo.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/ping.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/pricing.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-best-seller.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-card.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-currency-symbol.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-deal.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-estimated-arrival.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-lightening-deal.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-low-stock-warning.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-price.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-rating.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-review-card.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-split-payments.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/product-used-price.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/recommended-products.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/reviews.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/sidebar.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/single-product.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/components/vercel-logo.tsx create mode 100644 .conflict-base-0/examples/next-partial-prerendering/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/e2e/ppr.test.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/lib/delay.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/lib/products.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/lib/reviews.ts create mode 100755 .conflict-base-0/examples/next-partial-prerendering/next.config.js create mode 100644 .conflict-base-0/examples/next-partial-prerendering/open-next.config.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/package.json create mode 100644 .conflict-base-0/examples/next-partial-prerendering/postcss.config.js create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/grid.svg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/nextjs-icon-light-background.png create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg create mode 100644 .conflict-base-0/examples/next-partial-prerendering/tailwind.config.ts create mode 100755 .conflict-base-0/examples/next-partial-prerendering/tsconfig.json create mode 100644 .conflict-base-0/examples/next-partial-prerendering/types/product.d.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/types/review.d.ts create mode 100644 .conflict-base-0/examples/next-partial-prerendering/wrangler.jsonc create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/.gitignore create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/action.ts create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/favicon.ico create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/globals.css create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/layout.tsx create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/page.module.css create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/app/page.tsx create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/next.config.ts create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/open-next.config.ts create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/package.json create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/tsconfig.json create mode 100644 .conflict-base-0/examples/overrides/d1-tag-next/wrangler.jsonc create mode 100644 .conflict-base-0/examples/overrides/memory-queue/.gitignore create mode 100644 .conflict-base-0/examples/overrides/memory-queue/app/favicon.ico create mode 100644 .conflict-base-0/examples/overrides/memory-queue/app/globals.css create mode 100644 .conflict-base-0/examples/overrides/memory-queue/app/layout.tsx create mode 100644 .conflict-base-0/examples/overrides/memory-queue/app/page.module.css create mode 100644 .conflict-base-0/examples/overrides/memory-queue/app/page.tsx create mode 100644 .conflict-base-0/examples/overrides/memory-queue/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/overrides/memory-queue/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/overrides/memory-queue/next.config.ts create mode 100644 .conflict-base-0/examples/overrides/memory-queue/open-next.config.ts create mode 100644 .conflict-base-0/examples/overrides/memory-queue/package.json create mode 100644 .conflict-base-0/examples/overrides/memory-queue/tsconfig.json create mode 100644 .conflict-base-0/examples/overrides/memory-queue/wrangler.jsonc create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/.gitignore create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/app/favicon.ico create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/app/globals.css create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/app/layout.tsx create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/app/page.module.css create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/app/page.tsx create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/next.config.ts create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/open-next.config.ts create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/package.json create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/tsconfig.json create mode 100644 .conflict-base-0/examples/overrides/r2-incremental-cache/wrangler.jsonc create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/.gitignore create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/action.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/favicon.ico create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/globals.css create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/layout.tsx create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/page.module.css create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/app/page.tsx create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/next-env.d.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/next.config.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/open-next.config.ts create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/package.json create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/tsconfig.json create mode 100644 .conflict-base-0/examples/overrides/static-assets-incremental-cache/wrangler.jsonc create mode 100644 .conflict-base-0/examples/playground14/.dev.vars create mode 100644 .conflict-base-0/examples/playground14/.env.development create mode 100644 .conflict-base-0/examples/playground14/.gitignore create mode 100644 .conflict-base-0/examples/playground14/app/api/buildid/route.ts create mode 100644 .conflict-base-0/examples/playground14/app/api/env/route.ts create mode 100644 .conflict-base-0/examples/playground14/app/api/hello/route.ts create mode 100644 .conflict-base-0/examples/playground14/app/api/instrumentation/route.ts create mode 100644 .conflict-base-0/examples/playground14/app/api/request/route.ts create mode 100644 .conflict-base-0/examples/playground14/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-base-0/examples/playground14/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-base-0/examples/playground14/app/layout.js create mode 100644 .conflict-base-0/examples/playground14/app/og/route.tsx create mode 100644 .conflict-base-0/examples/playground14/app/page.js create mode 100644 .conflict-base-0/examples/playground14/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/cloudflare.spec.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/head.spec.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/instrumentation.spec.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/isr.spec.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/playground14/e2e/playwright.dev.config.ts create mode 100644 .conflict-base-0/examples/playground14/instrumentation.js create mode 100644 .conflict-base-0/examples/playground14/lib/posts.ts create mode 100644 .conflict-base-0/examples/playground14/middleware.js create mode 100644 .conflict-base-0/examples/playground14/next.config.mjs create mode 100644 .conflict-base-0/examples/playground14/open-next.config.ts create mode 100644 .conflict-base-0/examples/playground14/package.json create mode 100644 .conflict-base-0/examples/playground14/pages/api/pages.ts create mode 100644 .conflict-base-0/examples/playground14/pages/head.tsx create mode 100644 .conflict-base-0/examples/playground14/public/.gitkeep create mode 100644 .conflict-base-0/examples/playground14/public/snipp/snipp.webp create mode 100644 .conflict-base-0/examples/playground14/tsconfig.json create mode 100644 .conflict-base-0/examples/playground14/worker-configuration.d.ts create mode 100644 .conflict-base-0/examples/playground14/worker.ts create mode 100644 .conflict-base-0/examples/playground14/wrangler.jsonc create mode 100644 .conflict-base-0/examples/playground15/.dev.vars create mode 100644 .conflict-base-0/examples/playground15/.env.development create mode 100644 .conflict-base-0/examples/playground15/.gitignore create mode 100644 .conflict-base-0/examples/playground15/app/api/buildid/route.ts create mode 100644 .conflict-base-0/examples/playground15/app/api/env/route.ts create mode 100644 .conflict-base-0/examples/playground15/app/api/hello/route.ts create mode 100644 .conflict-base-0/examples/playground15/app/api/instrumentation/route.ts create mode 100644 .conflict-base-0/examples/playground15/app/api/request/route.ts create mode 100644 .conflict-base-0/examples/playground15/app/from-app/page.tsx create mode 100644 .conflict-base-0/examples/playground15/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-base-0/examples/playground15/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-base-0/examples/playground15/app/layout.js create mode 100644 .conflict-base-0/examples/playground15/app/og/route.tsx create mode 100644 .conflict-base-0/examples/playground15/app/other-app/page.tsx create mode 100644 .conflict-base-0/examples/playground15/app/page.js create mode 100644 .conflict-base-0/examples/playground15/data.js create mode 100644 .conflict-base-0/examples/playground15/data.module.css create mode 100644 .conflict-base-0/examples/playground15/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/cloudflare.spec.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/head.spec.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/instrumentation.spec.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/isr.spec.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/playground15/e2e/playwright.dev.config.ts create mode 100644 .conflict-base-0/examples/playground15/instrumentation.js create mode 100644 .conflict-base-0/examples/playground15/lib/posts.ts create mode 100644 .conflict-base-0/examples/playground15/middleware.js create mode 100644 .conflict-base-0/examples/playground15/next.config.mjs create mode 100644 .conflict-base-0/examples/playground15/open-next.config.ts create mode 100644 .conflict-base-0/examples/playground15/package.json create mode 100644 .conflict-base-0/examples/playground15/pages/head.tsx create mode 100644 .conflict-base-0/examples/playground15/public/.gitkeep create mode 100644 .conflict-base-0/examples/playground15/public/test.jpg create mode 100644 .conflict-base-0/examples/playground15/tsconfig.json create mode 100644 .conflict-base-0/examples/playground15/worker-configuration.d.ts create mode 100644 .conflict-base-0/examples/playground15/wrangler.jsonc create mode 100644 .conflict-base-0/examples/prisma/.gitignore create mode 100644 .conflict-base-0/examples/prisma/README.md create mode 100644 .conflict-base-0/examples/prisma/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/prisma/e2e/playwright.dev.config.ts create mode 100644 .conflict-base-0/examples/prisma/e2e/prisma.spec.ts create mode 100644 .conflict-base-0/examples/prisma/next.config.ts create mode 100644 .conflict-base-0/examples/prisma/open-next.config.ts create mode 100644 .conflict-base-0/examples/prisma/package.json create mode 100644 .conflict-base-0/examples/prisma/populate.sql create mode 100644 .conflict-base-0/examples/prisma/prisma.config.ts create mode 100644 .conflict-base-0/examples/prisma/schema.prisma create mode 100644 .conflict-base-0/examples/prisma/src/app/favicon.ico create mode 100644 .conflict-base-0/examples/prisma/src/app/globals.css create mode 100644 .conflict-base-0/examples/prisma/src/app/layout.tsx create mode 100644 .conflict-base-0/examples/prisma/src/app/page.module.css create mode 100644 .conflict-base-0/examples/prisma/src/app/page.tsx create mode 100644 .conflict-base-0/examples/prisma/src/lib/db.ts create mode 100644 .conflict-base-0/examples/prisma/tsconfig.json create mode 100644 .conflict-base-0/examples/prisma/worker-configuration.d.ts create mode 100644 .conflict-base-0/examples/prisma/wrangler.jsonc create mode 100644 .conflict-base-0/examples/ssg-app/.dev.vars create mode 100644 .conflict-base-0/examples/ssg-app/.gitignore create mode 100644 .conflict-base-0/examples/ssg-app/app/favicon.ico create mode 100644 .conflict-base-0/examples/ssg-app/app/globals.css create mode 100644 .conflict-base-0/examples/ssg-app/app/layout.tsx create mode 100644 .conflict-base-0/examples/ssg-app/app/page.module.css create mode 100644 .conflict-base-0/examples/ssg-app/app/page.tsx create mode 100644 .conflict-base-0/examples/ssg-app/e2e/base.spec.ts create mode 100644 .conflict-base-0/examples/ssg-app/e2e/playwright.config.ts create mode 100644 .conflict-base-0/examples/ssg-app/next.config.ts create mode 100644 .conflict-base-0/examples/ssg-app/open-next.config.ts create mode 100644 .conflict-base-0/examples/ssg-app/package.json create mode 100644 .conflict-base-0/examples/ssg-app/tsconfig.json create mode 100644 .conflict-base-0/examples/ssg-app/worker-configuration.d.ts create mode 100644 .conflict-base-0/examples/ssg-app/wrangler.jsonc create mode 100644 .conflict-base-0/examples/vercel-blog-starter/.gitignore create mode 100644 .conflict-base-0/examples/vercel-blog-starter/README.md create mode 100644 .conflict-base-0/examples/vercel-blog-starter/_posts/dynamic-routing.md create mode 100644 .conflict-base-0/examples/vercel-blog-starter/_posts/hello-world.md create mode 100644 .conflict-base-0/examples/vercel-blog-starter/_posts/preview.md create mode 100644 .conflict-base-0/examples/vercel-blog-starter/next.config.mjs create mode 100644 .conflict-base-0/examples/vercel-blog-starter/open-next.config.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/package.json create mode 100644 .conflict-base-0/examples/vercel-blog-starter/postcss.config.js create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/browserconfig.xml create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/favicon-16x16.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/favicon-32x32.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/favicon.ico create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/mstile-150x150.png create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg create mode 100644 .conflict-base-0/examples/vercel-blog-starter/public/favicon/site.webmanifest create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/alert.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/avatar.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/container.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/cover-image.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/footer.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/header.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/hero-post.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/intro.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/more-stories.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/post-body.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/post-header.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/post-preview.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/post-title.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/section-separator.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/switch.module.css create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/globals.css create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/layout.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/page.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/interfaces/author.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/interfaces/post.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/lib/api.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/lib/constants.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/src/lib/markdownToHtml.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/tailwind.config.ts create mode 100644 .conflict-base-0/examples/vercel-blog-starter/tsconfig.json create mode 100644 .conflict-base-0/examples/vercel-blog-starter/wrangler.jsonc create mode 100644 .conflict-base-0/package.json create mode 100644 .conflict-base-0/packages/cloudflare/.gitignore create mode 100644 .conflict-base-0/packages/cloudflare/CHANGELOG.md create mode 100644 .conflict-base-0/packages/cloudflare/README.md create mode 100644 .conflict-base-0/packages/cloudflare/env.d.ts create mode 100644 .conflict-base-0/packages/cloudflare/eslint.config.mjs create mode 100644 .conflict-base-0/packages/cloudflare/package.json create mode 100644 .conflict-base-0/packages/cloudflare/src/api/cloudflare-context.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/config.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/queue.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/queue.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/index.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/asset-resolver/index.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/cache-purge/index.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/internal.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/queue/do-queue.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/queue/memory-queue.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/queue/queue-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/build.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/bundle-server.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compile-images.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compile-init.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/require.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/create-config-files.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/index.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/normalize-path.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/test-patch.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/version.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/workerd.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/build/utils/workerd.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/build.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/deploy.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/helpers.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/populate-cache.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/populate-cache.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/preview.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/setup-cli.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/skew-protection.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/skew-protection.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/commands/upload.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/index.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/project-options.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/images.spec.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/images.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/init.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/shims/empty.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/shims/env.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/shims/fetch.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/shims/throw.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/skew-protection.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/templates/worker.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/utils/ask-confirmation.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/cli/utils/run-wrangler.ts create mode 100644 .conflict-base-0/packages/cloudflare/src/utils/get-package-templates-dir-path.ts create mode 100644 .conflict-base-0/packages/cloudflare/templates/open-next.config.ts create mode 100644 .conflict-base-0/packages/cloudflare/templates/wrangler.jsonc create mode 100644 .conflict-base-0/packages/cloudflare/tsconfig.json create mode 100644 .conflict-base-0/pnpm-lock.yaml rename pnpm-workspace.yaml => .conflict-base-0/pnpm-workspace.yaml (100%) create mode 100644 .conflict-files create mode 100644 .conflict-side-0/.changeset/README.md create mode 100644 .conflict-side-0/.changeset/config.json create mode 100644 .conflict-side-0/.changeset/empty-garlics-lead.md create mode 100644 .conflict-side-0/.changeset/hungry-ideas-buy.md create mode 100644 .conflict-side-0/.editorconfig create mode 100644 .conflict-side-0/.github/ISSUE_TEMPLATE/1.bug_report.yml create mode 100644 .conflict-side-0/.github/ISSUE_TEMPLATE/2.feature_request.yml create mode 100644 .conflict-side-0/.github/ISSUE_TEMPLATE/config.yml create mode 100644 .conflict-side-0/.github/actions/install-dependencies/action.yml create mode 100644 .conflict-side-0/.github/actions/setup-playwright/action.yml create mode 100644 .conflict-side-0/.github/workflows/changesets.yml create mode 100644 .conflict-side-0/.github/workflows/checks.yml create mode 100644 .conflict-side-0/.github/workflows/playwright.yml create mode 100644 .conflict-side-0/.github/workflows/prereleases.yml create mode 100644 .conflict-side-0/.gitignore create mode 100644 .conflict-side-0/.prettierignore create mode 100644 .conflict-side-0/.prettierrc create mode 100644 .conflict-side-0/.vscode/settings.json create mode 100644 .conflict-side-0/CONTRIBUTING.md create mode 100644 .conflict-side-0/LICENSE create mode 100644 .conflict-side-0/README.md create mode 100644 .conflict-side-0/benchmarking/.gitignore create mode 100644 .conflict-side-0/benchmarking/README.md create mode 100644 .conflict-side-0/benchmarking/package.json create mode 100644 .conflict-side-0/benchmarking/src/benchmarking.ts create mode 100644 .conflict-side-0/benchmarking/src/cloudflare.ts create mode 100644 .conflict-side-0/benchmarking/src/index.ts create mode 100644 .conflict-side-0/benchmarking/src/utils.ts create mode 100644 .conflict-side-0/benchmarking/tsconfig.json create mode 100644 .conflict-side-0/examples/bugs/gh-119/.eslintrc.json create mode 100644 .conflict-side-0/examples/bugs/gh-119/.gitignore create mode 100644 .conflict-side-0/examples/bugs/gh-119/README.md create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/favicon.ico create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/fonts/GeistVF.woff create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/globals.css create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/layout.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-119/app/page.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-119/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/bugs/gh-119/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-119/next.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-119/open-next.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-119/package.json create mode 100644 .conflict-side-0/examples/bugs/gh-119/postcss.config.mjs create mode 100644 .conflict-side-0/examples/bugs/gh-119/public/file.svg create mode 100644 .conflict-side-0/examples/bugs/gh-119/public/globe.svg create mode 100644 .conflict-side-0/examples/bugs/gh-119/public/next.svg create mode 100644 .conflict-side-0/examples/bugs/gh-119/public/vercel.svg create mode 100644 .conflict-side-0/examples/bugs/gh-119/public/window.svg create mode 100644 .conflict-side-0/examples/bugs/gh-119/tailwind.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-119/tsconfig.json create mode 100644 .conflict-side-0/examples/bugs/gh-119/wrangler.jsonc create mode 100644 .conflict-side-0/examples/bugs/gh-219/.dev.vars create mode 100644 .conflict-side-0/examples/bugs/gh-219/.gitignore create mode 100644 .conflict-side-0/examples/bugs/gh-219/README.md create mode 100644 .conflict-side-0/examples/bugs/gh-219/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/bugs/gh-219/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-219/eslint.config.mjs create mode 100644 .conflict-side-0/examples/bugs/gh-219/next.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-219/open-next.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-219/package.json create mode 100644 .conflict-side-0/examples/bugs/gh-219/postcss.config.mjs create mode 100644 .conflict-side-0/examples/bugs/gh-219/public/file.svg create mode 100644 .conflict-side-0/examples/bugs/gh-219/public/globe.svg create mode 100644 .conflict-side-0/examples/bugs/gh-219/public/next.svg create mode 100644 .conflict-side-0/examples/bugs/gh-219/public/vercel.svg create mode 100644 .conflict-side-0/examples/bugs/gh-219/public/window.svg create mode 100644 .conflict-side-0/examples/bugs/gh-219/src/app/favicon.ico create mode 100644 .conflict-side-0/examples/bugs/gh-219/src/app/globals.css create mode 100644 .conflict-side-0/examples/bugs/gh-219/src/app/layout.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-219/src/app/page.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-219/src/firebase/config.js create mode 100644 .conflict-side-0/examples/bugs/gh-219/tailwind.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-219/tsconfig.json create mode 100644 .conflict-side-0/examples/bugs/gh-219/wrangler.jsonc create mode 100644 .conflict-side-0/examples/bugs/gh-223/.eslintrc.json create mode 100644 .conflict-side-0/examples/bugs/gh-223/.gitignore create mode 100644 .conflict-side-0/examples/bugs/gh-223/README.md create mode 100644 .conflict-side-0/examples/bugs/gh-223/app/api/image/route.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/app/favicon.ico create mode 100644 .conflict-side-0/examples/bugs/gh-223/app/globals.css create mode 100644 .conflict-side-0/examples/bugs/gh-223/app/layout.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-223/app/page.tsx create mode 100644 .conflict-side-0/examples/bugs/gh-223/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/next.config.mjs create mode 100644 .conflict-side-0/examples/bugs/gh-223/open-next.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/package.json create mode 100644 .conflict-side-0/examples/bugs/gh-223/postcss.config.mjs create mode 100644 .conflict-side-0/examples/bugs/gh-223/public/next.svg create mode 100644 .conflict-side-0/examples/bugs/gh-223/public/vercel.svg create mode 100644 .conflict-side-0/examples/bugs/gh-223/src/utils/common.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/src/utils/s3Bucket.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/tailwind.config.ts create mode 100644 .conflict-side-0/examples/bugs/gh-223/tsconfig.json create mode 100644 .conflict-side-0/examples/bugs/gh-223/wrangler.jsonc create mode 100644 .conflict-side-0/examples/common/apps.ts create mode 100644 .conflict-side-0/examples/common/config-e2e.ts create mode 100644 .conflict-side-0/examples/common/package.json create mode 100644 .conflict-side-0/examples/common/tsconfig.json create mode 100644 .conflict-side-0/examples/create-next-app/.eslintrc.json create mode 100644 .conflict-side-0/examples/create-next-app/.gitignore create mode 100644 .conflict-side-0/examples/create-next-app/README.md create mode 100644 .conflict-side-0/examples/create-next-app/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/create-next-app/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/create-next-app/next.config.mjs create mode 100644 .conflict-side-0/examples/create-next-app/open-next.config.ts create mode 100644 .conflict-side-0/examples/create-next-app/package.json create mode 100644 .conflict-side-0/examples/create-next-app/postcss.config.mjs create mode 100644 .conflict-side-0/examples/create-next-app/public/next.svg create mode 100644 .conflict-side-0/examples/create-next-app/public/vercel.svg create mode 100644 .conflict-side-0/examples/create-next-app/src/app/favicon.ico create mode 100644 .conflict-side-0/examples/create-next-app/src/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-side-0/examples/create-next-app/src/app/fonts/GeistVF.woff create mode 100644 .conflict-side-0/examples/create-next-app/src/app/globals.css create mode 100644 .conflict-side-0/examples/create-next-app/src/app/layout.tsx create mode 100644 .conflict-side-0/examples/create-next-app/src/app/page.tsx create mode 100644 .conflict-side-0/examples/create-next-app/tailwind.config.ts create mode 100644 .conflict-side-0/examples/create-next-app/tsconfig.json create mode 100644 .conflict-side-0/examples/create-next-app/wrangler.jsonc create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/.env create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/.gitignore create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/CHANGELOG.md create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/README.md create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/@modal/default.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/[album]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/albums/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/api/client/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/api/host/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/api/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/globals.css create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/image-optimization/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/isr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/@a/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/@b/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/parallel/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/redirect-destination/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/server-actions/client.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/server-actions/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/ssr/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/ssr/loading.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/app/ssr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/api.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/host.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/image-optimization.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/isr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/modals.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/pages_isr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/parallel.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/serverActions.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/e2e/ssr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/middleware.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/next.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/open-next.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/package.json create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/pages/_app.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/pages/_document.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/pages/api/hello.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/pages/pages_isr/index.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/postcss.config.js create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/public/favicon.ico create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/public/static/frank.webp create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/styles/globals.css create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/tailwind.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/tsconfig.json create mode 100644 .conflict-side-0/examples/e2e/app-pages-router/wrangler.jsonc create mode 100644 .conflict-side-0/examples/e2e/app-router/.gitignore create mode 100644 .conflict-side-0/examples/e2e/app-router/CHANGELOG.md create mode 100644 .conflict-side-0/examples/e2e/app-router/README.md create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/@modal/default.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/[album]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/albums/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/after/revalidate/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/after/ssg/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/client/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/host/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/isr/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/og/route.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/revalidate-path/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/revalidate-tag/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/api/sse/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/config-redirect/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/cookies/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/globals.css create mode 100644 .conflict-side-0/examples/e2e/app-router/app/headers/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/image-optimization/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/isr-data-cache/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/isr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/get/query/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/get/redirect/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/get/revalidate/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/get/static/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/post/cookies/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/post/formdata/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/methods/route.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/app/og/opengraph-image.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/og/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/@a/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/@b/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/parallel/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/redirect-destination/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/revalidate-path/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/revalidate-tag/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/revalidate-tag/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/search-query/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/server-actions/client.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/server-actions/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/sse/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/ssr/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/ssr/loading.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/app/ssr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/after.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/api.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/config.redirect.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/headers.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/host.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/image-optimization.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/isr.revalidate.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/isr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/methods.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/middleware.cookies.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/modals.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/og.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/parallel.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/query.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/revalidateTag.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/serverActions.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/sse.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/ssr.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/e2e/trailing.test.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/middleware.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/next.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/open-next.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/package.json create mode 100644 .conflict-side-0/examples/e2e/app-router/postcss.config.js create mode 100644 .conflict-side-0/examples/e2e/app-router/public/favicon.ico create mode 100644 .conflict-side-0/examples/e2e/app-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-side-0/examples/e2e/app-router/public/static/frank.webp create mode 100644 .conflict-side-0/examples/e2e/app-router/tailwind.config.ts create mode 100644 .conflict-side-0/examples/e2e/app-router/tsconfig.json create mode 100644 .conflict-side-0/examples/e2e/app-router/wrangler.jsonc create mode 100644 .conflict-side-0/examples/e2e/experimental/.gitignore create mode 100644 .conflict-side-0/examples/e2e/experimental/README.md create mode 100644 .conflict-side-0/examples/e2e/experimental/e2e/nodeMiddleware.test.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/e2e/ppr.test.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/e2e/use-cache.test.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/next.config.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/open-next.config.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/package.json create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/api/revalidate/route.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/favicon.ico create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/globals.css create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/page.module.css create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/page.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/ppr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/use-cache/isr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/use-cache/layout.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/components/cached.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/components/dynamic.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/components/static.tsx create mode 100644 .conflict-side-0/examples/e2e/experimental/src/middleware.ts create mode 100644 .conflict-side-0/examples/e2e/experimental/tsconfig.json create mode 100644 .conflict-side-0/examples/e2e/experimental/wrangler.jsonc create mode 100644 .conflict-side-0/examples/e2e/pages-router/.env.production create mode 100644 .conflict-side-0/examples/e2e/pages-router/.gitignore create mode 100644 .conflict-side-0/examples/e2e/pages-router/README.md create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/404.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/amp.test.ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/e2e/api.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/data.test.ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/e2e/fallback.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/head.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/header.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/i18n.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/isr.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/redirect.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/revalidate.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/rewrite.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/ssr.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/streaming.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/e2e/trailing.test.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/next.config.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/open-next.config.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/package.json create mode 100644 .conflict-side-0/examples/e2e/pages-router/postcss.config.js create mode 100644 .conflict-side-0/examples/e2e/pages-router/public/favicon.ico create mode 100644 .conflict-side-0/examples/e2e/pages-router/public/static/frank.webp create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/middleware.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/_app.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/_document.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/amp/index.tsx create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/api/hello.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/api/query.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/api/revalidate.ts create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/api/streaming/index.ts create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx create mode 100755 .conflict-side-0/examples/e2e/pages-router/src/pages/fallback/[slug].tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/head/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/isr/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/sse/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/ssg/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/pages/ssr/index.tsx create mode 100644 .conflict-side-0/examples/e2e/pages-router/src/styles/globals.css create mode 100644 .conflict-side-0/examples/e2e/pages-router/tsconfig.json create mode 100644 .conflict-side-0/examples/e2e/pages-router/wrangler.jsonc create mode 100644 .conflict-side-0/examples/e2e/shared/api/index.ts create mode 100644 .conflict-side-0/examples/e2e/shared/api/songs.json create mode 100644 .conflict-side-0/examples/e2e/shared/components/Album/Album.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/components/Album/Song.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/components/Album/index.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/components/Filler/index.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/components/Modal/index.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/components/Nav/index.tsx create mode 100644 .conflict-side-0/examples/e2e/shared/package.json create mode 100644 .conflict-side-0/examples/e2e/shared/sst-env.d.ts create mode 100644 .conflict-side-0/examples/e2e/shared/tsconfig.json create mode 100644 .conflict-side-0/examples/e2e/utils.ts create mode 100644 .conflict-side-0/examples/middleware/.env create mode 100755 .conflict-side-0/examples/middleware/.gitignore create mode 100755 .conflict-side-0/examples/middleware/README.md create mode 100644 .conflict-side-0/examples/middleware/app/about/page.tsx create mode 100644 .conflict-side-0/examples/middleware/app/about2/page.tsx create mode 100644 .conflict-side-0/examples/middleware/app/another/page.tsx create mode 100644 .conflict-side-0/examples/middleware/app/clerk/route.ts create mode 100644 .conflict-side-0/examples/middleware/app/layout.tsx create mode 100644 .conflict-side-0/examples/middleware/app/middleware/page.tsx create mode 100755 .conflict-side-0/examples/middleware/app/page.tsx create mode 100644 .conflict-side-0/examples/middleware/app/redirected/page.tsx create mode 100644 .conflict-side-0/examples/middleware/app/rewrite/page.tsx create mode 100644 .conflict-side-0/examples/middleware/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/middleware/e2e/cloudflare-context.spec.ts create mode 100644 .conflict-side-0/examples/middleware/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/middleware/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-0/examples/middleware/middleware.ts create mode 100644 .conflict-side-0/examples/middleware/next.config.mjs create mode 100644 .conflict-side-0/examples/middleware/open-next.config.ts create mode 100644 .conflict-side-0/examples/middleware/package.json create mode 100755 .conflict-side-0/examples/middleware/public/favicon.ico create mode 100755 .conflict-side-0/examples/middleware/public/vercel.svg create mode 100755 .conflict-side-0/examples/middleware/tsconfig.json create mode 100644 .conflict-side-0/examples/middleware/wrangler.jsonc create mode 100755 .conflict-side-0/examples/next-partial-prerendering/.gitignore create mode 100644 .conflict-side-0/examples/next-partial-prerendering/.prettierrc create mode 100755 .conflict-side-0/examples/next-partial-prerendering/README.md create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/favicon.ico create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/layout.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/not-found.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/opengraph-image.png create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/page.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/styles.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/app/twitter-image.png create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/add-to-cart.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/byline.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/cart-count-context.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/cart-count.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/header.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/next-logo.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/ping.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/pricing.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-best-seller.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-card.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-currency-symbol.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-deal.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-estimated-arrival.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-lightening-deal.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-low-stock-warning.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-price.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-rating.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-review-card.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-split-payments.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/product-used-price.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/recommended-products.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/reviews.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/sidebar.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/single-product.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/components/vercel-logo.tsx create mode 100644 .conflict-side-0/examples/next-partial-prerendering/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/e2e/ppr.test.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/lib/delay.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/lib/products.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/lib/reviews.ts create mode 100755 .conflict-side-0/examples/next-partial-prerendering/next.config.js create mode 100644 .conflict-side-0/examples/next-partial-prerendering/open-next.config.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/package.json create mode 100644 .conflict-side-0/examples/next-partial-prerendering/postcss.config.js create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/grid.svg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/nextjs-icon-light-background.png create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg create mode 100644 .conflict-side-0/examples/next-partial-prerendering/tailwind.config.ts create mode 100755 .conflict-side-0/examples/next-partial-prerendering/tsconfig.json create mode 100644 .conflict-side-0/examples/next-partial-prerendering/types/product.d.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/types/review.d.ts create mode 100644 .conflict-side-0/examples/next-partial-prerendering/wrangler.jsonc create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/.gitignore create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/action.ts create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/favicon.ico create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/globals.css create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/layout.tsx create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/page.module.css create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/app/page.tsx create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/next.config.ts create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/open-next.config.ts create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/package.json create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/tsconfig.json create mode 100644 .conflict-side-0/examples/overrides/d1-tag-next/wrangler.jsonc create mode 100644 .conflict-side-0/examples/overrides/memory-queue/.gitignore create mode 100644 .conflict-side-0/examples/overrides/memory-queue/app/favicon.ico create mode 100644 .conflict-side-0/examples/overrides/memory-queue/app/globals.css create mode 100644 .conflict-side-0/examples/overrides/memory-queue/app/layout.tsx create mode 100644 .conflict-side-0/examples/overrides/memory-queue/app/page.module.css create mode 100644 .conflict-side-0/examples/overrides/memory-queue/app/page.tsx create mode 100644 .conflict-side-0/examples/overrides/memory-queue/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/overrides/memory-queue/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/overrides/memory-queue/next.config.ts create mode 100644 .conflict-side-0/examples/overrides/memory-queue/open-next.config.ts create mode 100644 .conflict-side-0/examples/overrides/memory-queue/package.json create mode 100644 .conflict-side-0/examples/overrides/memory-queue/tsconfig.json create mode 100644 .conflict-side-0/examples/overrides/memory-queue/wrangler.jsonc create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/.gitignore create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/app/favicon.ico create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/app/globals.css create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/app/layout.tsx create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/app/page.module.css create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/app/page.tsx create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/next.config.ts create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/open-next.config.ts create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/package.json create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/tsconfig.json create mode 100644 .conflict-side-0/examples/overrides/r2-incremental-cache/wrangler.jsonc create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/.gitignore create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/action.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/favicon.ico create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/globals.css create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/layout.tsx create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/page.module.css create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/app/page.tsx create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/next-env.d.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/next.config.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/open-next.config.ts create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/package.json create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/tsconfig.json create mode 100644 .conflict-side-0/examples/overrides/static-assets-incremental-cache/wrangler.jsonc create mode 100644 .conflict-side-0/examples/playground14/.dev.vars create mode 100644 .conflict-side-0/examples/playground14/.env.development create mode 100644 .conflict-side-0/examples/playground14/.gitignore create mode 100644 .conflict-side-0/examples/playground14/app/api/buildid/route.ts create mode 100644 .conflict-side-0/examples/playground14/app/api/env/route.ts create mode 100644 .conflict-side-0/examples/playground14/app/api/hello/route.ts create mode 100644 .conflict-side-0/examples/playground14/app/api/instrumentation/route.ts create mode 100644 .conflict-side-0/examples/playground14/app/api/request/route.ts create mode 100644 .conflict-side-0/examples/playground14/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-side-0/examples/playground14/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-side-0/examples/playground14/app/layout.js create mode 100644 .conflict-side-0/examples/playground14/app/og/route.tsx create mode 100644 .conflict-side-0/examples/playground14/app/page.js create mode 100644 .conflict-side-0/examples/playground14/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/cloudflare.spec.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/head.spec.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/instrumentation.spec.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/isr.spec.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/playground14/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-0/examples/playground14/instrumentation.js create mode 100644 .conflict-side-0/examples/playground14/lib/posts.ts create mode 100644 .conflict-side-0/examples/playground14/middleware.js create mode 100644 .conflict-side-0/examples/playground14/next.config.mjs create mode 100644 .conflict-side-0/examples/playground14/open-next.config.ts create mode 100644 .conflict-side-0/examples/playground14/package.json create mode 100644 .conflict-side-0/examples/playground14/pages/api/pages.ts create mode 100644 .conflict-side-0/examples/playground14/pages/head.tsx create mode 100644 .conflict-side-0/examples/playground14/public/.gitkeep create mode 100644 .conflict-side-0/examples/playground14/public/snipp/snipp.webp create mode 100644 .conflict-side-0/examples/playground14/tsconfig.json create mode 100644 .conflict-side-0/examples/playground14/worker-configuration.d.ts create mode 100644 .conflict-side-0/examples/playground14/worker.ts create mode 100644 .conflict-side-0/examples/playground14/wrangler.jsonc create mode 100644 .conflict-side-0/examples/playground15/.dev.vars create mode 100644 .conflict-side-0/examples/playground15/.env.development create mode 100644 .conflict-side-0/examples/playground15/.gitignore create mode 100644 .conflict-side-0/examples/playground15/app/api/buildid/route.ts create mode 100644 .conflict-side-0/examples/playground15/app/api/env/route.ts create mode 100644 .conflict-side-0/examples/playground15/app/api/hello/route.ts create mode 100644 .conflict-side-0/examples/playground15/app/api/instrumentation/route.ts create mode 100644 .conflict-side-0/examples/playground15/app/api/request/route.ts create mode 100644 .conflict-side-0/examples/playground15/app/from-app/page.tsx create mode 100644 .conflict-side-0/examples/playground15/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-side-0/examples/playground15/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-side-0/examples/playground15/app/layout.js create mode 100644 .conflict-side-0/examples/playground15/app/og/route.tsx create mode 100644 .conflict-side-0/examples/playground15/app/other-app/page.tsx create mode 100644 .conflict-side-0/examples/playground15/app/page.js create mode 100644 .conflict-side-0/examples/playground15/data.js create mode 100644 .conflict-side-0/examples/playground15/data.module.css create mode 100644 .conflict-side-0/examples/playground15/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/cloudflare.spec.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/head.spec.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/instrumentation.spec.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/isr.spec.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/playground15/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-0/examples/playground15/instrumentation.js create mode 100644 .conflict-side-0/examples/playground15/lib/posts.ts create mode 100644 .conflict-side-0/examples/playground15/middleware.js create mode 100644 .conflict-side-0/examples/playground15/next.config.mjs create mode 100644 .conflict-side-0/examples/playground15/open-next.config.ts create mode 100644 .conflict-side-0/examples/playground15/package.json create mode 100644 .conflict-side-0/examples/playground15/pages/head.tsx create mode 100644 .conflict-side-0/examples/playground15/public/.gitkeep create mode 100644 .conflict-side-0/examples/playground15/public/test.jpg create mode 100644 .conflict-side-0/examples/playground15/tsconfig.json create mode 100644 .conflict-side-0/examples/playground15/worker-configuration.d.ts create mode 100644 .conflict-side-0/examples/playground15/wrangler.jsonc create mode 100644 .conflict-side-0/examples/prisma/.gitignore create mode 100644 .conflict-side-0/examples/prisma/README.md create mode 100644 .conflict-side-0/examples/prisma/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/prisma/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-0/examples/prisma/e2e/prisma.spec.ts create mode 100644 .conflict-side-0/examples/prisma/next.config.ts create mode 100644 .conflict-side-0/examples/prisma/open-next.config.ts create mode 100644 .conflict-side-0/examples/prisma/package.json create mode 100644 .conflict-side-0/examples/prisma/populate.sql create mode 100644 .conflict-side-0/examples/prisma/prisma.config.ts create mode 100644 .conflict-side-0/examples/prisma/schema.prisma create mode 100644 .conflict-side-0/examples/prisma/src/app/favicon.ico create mode 100644 .conflict-side-0/examples/prisma/src/app/globals.css create mode 100644 .conflict-side-0/examples/prisma/src/app/layout.tsx create mode 100644 .conflict-side-0/examples/prisma/src/app/page.module.css create mode 100644 .conflict-side-0/examples/prisma/src/app/page.tsx create mode 100644 .conflict-side-0/examples/prisma/src/lib/db.ts create mode 100644 .conflict-side-0/examples/prisma/tsconfig.json create mode 100644 .conflict-side-0/examples/prisma/worker-configuration.d.ts create mode 100644 .conflict-side-0/examples/prisma/wrangler.jsonc create mode 100644 .conflict-side-0/examples/ssg-app/.dev.vars create mode 100644 .conflict-side-0/examples/ssg-app/.gitignore create mode 100644 .conflict-side-0/examples/ssg-app/app/favicon.ico create mode 100644 .conflict-side-0/examples/ssg-app/app/globals.css create mode 100644 .conflict-side-0/examples/ssg-app/app/layout.tsx create mode 100644 .conflict-side-0/examples/ssg-app/app/page.module.css create mode 100644 .conflict-side-0/examples/ssg-app/app/page.tsx create mode 100644 .conflict-side-0/examples/ssg-app/e2e/base.spec.ts create mode 100644 .conflict-side-0/examples/ssg-app/e2e/playwright.config.ts create mode 100644 .conflict-side-0/examples/ssg-app/next.config.ts create mode 100644 .conflict-side-0/examples/ssg-app/open-next.config.ts create mode 100644 .conflict-side-0/examples/ssg-app/package.json create mode 100644 .conflict-side-0/examples/ssg-app/tsconfig.json create mode 100644 .conflict-side-0/examples/ssg-app/worker-configuration.d.ts create mode 100644 .conflict-side-0/examples/ssg-app/wrangler.jsonc create mode 100644 .conflict-side-0/examples/vercel-blog-starter/.gitignore create mode 100644 .conflict-side-0/examples/vercel-blog-starter/README.md create mode 100644 .conflict-side-0/examples/vercel-blog-starter/_posts/dynamic-routing.md create mode 100644 .conflict-side-0/examples/vercel-blog-starter/_posts/hello-world.md create mode 100644 .conflict-side-0/examples/vercel-blog-starter/_posts/preview.md create mode 100644 .conflict-side-0/examples/vercel-blog-starter/next.config.mjs create mode 100644 .conflict-side-0/examples/vercel-blog-starter/open-next.config.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/package.json create mode 100644 .conflict-side-0/examples/vercel-blog-starter/postcss.config.js create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/browserconfig.xml create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/favicon-16x16.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/favicon-32x32.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/favicon.ico create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/mstile-150x150.png create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg create mode 100644 .conflict-side-0/examples/vercel-blog-starter/public/favicon/site.webmanifest create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/alert.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/avatar.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/container.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/cover-image.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/footer.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/header.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/hero-post.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/intro.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/more-stories.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/post-body.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/post-header.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/post-preview.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/post-title.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/section-separator.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/switch.module.css create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/globals.css create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/layout.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/page.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/interfaces/author.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/interfaces/post.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/lib/api.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/lib/constants.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/src/lib/markdownToHtml.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/tailwind.config.ts create mode 100644 .conflict-side-0/examples/vercel-blog-starter/tsconfig.json create mode 100644 .conflict-side-0/examples/vercel-blog-starter/wrangler.jsonc create mode 100644 .conflict-side-0/package.json create mode 100644 .conflict-side-0/packages/cloudflare/.gitignore create mode 100644 .conflict-side-0/packages/cloudflare/CHANGELOG.md create mode 100644 .conflict-side-0/packages/cloudflare/README.md create mode 100644 .conflict-side-0/packages/cloudflare/env.d.ts create mode 100644 .conflict-side-0/packages/cloudflare/eslint.config.mjs create mode 100644 .conflict-side-0/packages/cloudflare/package.json create mode 100644 .conflict-side-0/packages/cloudflare/src/api/cloudflare-context.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/config.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/queue.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/queue.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/index.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/asset-resolver/index.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/cache-purge/index.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/internal.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/queue/do-queue.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/queue/memory-queue.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/queue/queue-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/build.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/bundle-server.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compile-images.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compile-init.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/require.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/create-config-files.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/index.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/normalize-path.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/test-patch.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/version.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/workerd.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/build/utils/workerd.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/build.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/deploy.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/helpers.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/populate-cache.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/populate-cache.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/preview.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/setup-cli.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/skew-protection.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/skew-protection.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/commands/upload.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/index.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/project-options.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/images.spec.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/images.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/init.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/shims/empty.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/shims/env.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/shims/fetch.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/shims/throw.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/skew-protection.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/templates/worker.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/utils/ask-confirmation.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/cli/utils/run-wrangler.ts create mode 100644 .conflict-side-0/packages/cloudflare/src/utils/get-package-templates-dir-path.ts create mode 100644 .conflict-side-0/packages/cloudflare/templates/open-next.config.ts create mode 100644 .conflict-side-0/packages/cloudflare/templates/wrangler.jsonc create mode 100644 .conflict-side-0/packages/cloudflare/tsconfig.json rename pnpm-lock.yaml => .conflict-side-0/pnpm-lock.yaml (100%) create mode 100644 .conflict-side-0/pnpm-workspace.yaml create mode 100644 .conflict-side-1/.changeset/README.md create mode 100644 .conflict-side-1/.changeset/config.json create mode 100644 .conflict-side-1/.changeset/crazy-birds-jam.md create mode 100644 .conflict-side-1/.changeset/eager-steaks-crash.md create mode 100644 .conflict-side-1/.changeset/hungry-ideas-buy.md create mode 100644 .conflict-side-1/.editorconfig create mode 100644 .conflict-side-1/.github/ISSUE_TEMPLATE/1.bug_report.yml create mode 100644 .conflict-side-1/.github/ISSUE_TEMPLATE/2.feature_request.yml create mode 100644 .conflict-side-1/.github/ISSUE_TEMPLATE/config.yml create mode 100644 .conflict-side-1/.github/actions/install-dependencies/action.yml create mode 100644 .conflict-side-1/.github/actions/setup-playwright/action.yml create mode 100644 .conflict-side-1/.github/workflows/changesets.yml create mode 100644 .conflict-side-1/.github/workflows/checks.yml create mode 100644 .conflict-side-1/.github/workflows/playwright.yml create mode 100644 .conflict-side-1/.github/workflows/prereleases.yml create mode 100644 .conflict-side-1/.gitignore create mode 100644 .conflict-side-1/.prettierignore create mode 100644 .conflict-side-1/.prettierrc create mode 100644 .conflict-side-1/.vscode/settings.json create mode 100644 .conflict-side-1/CONTRIBUTING.md create mode 100644 .conflict-side-1/LICENSE create mode 100644 .conflict-side-1/README.md create mode 100644 .conflict-side-1/benchmarking/.gitignore create mode 100644 .conflict-side-1/benchmarking/README.md create mode 100644 .conflict-side-1/benchmarking/package.json create mode 100644 .conflict-side-1/benchmarking/src/benchmarking.ts create mode 100644 .conflict-side-1/benchmarking/src/cloudflare.ts create mode 100644 .conflict-side-1/benchmarking/src/index.ts create mode 100644 .conflict-side-1/benchmarking/src/utils.ts create mode 100644 .conflict-side-1/benchmarking/tsconfig.json create mode 100644 .conflict-side-1/examples/bugs/gh-119/.eslintrc.json create mode 100644 .conflict-side-1/examples/bugs/gh-119/.gitignore create mode 100644 .conflict-side-1/examples/bugs/gh-119/README.md create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/favicon.ico create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/fonts/GeistVF.woff create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/globals.css create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/layout.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-119/app/page.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-119/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/bugs/gh-119/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-119/next.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-119/open-next.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-119/package.json create mode 100644 .conflict-side-1/examples/bugs/gh-119/postcss.config.mjs create mode 100644 .conflict-side-1/examples/bugs/gh-119/public/file.svg create mode 100644 .conflict-side-1/examples/bugs/gh-119/public/globe.svg create mode 100644 .conflict-side-1/examples/bugs/gh-119/public/next.svg create mode 100644 .conflict-side-1/examples/bugs/gh-119/public/vercel.svg create mode 100644 .conflict-side-1/examples/bugs/gh-119/public/window.svg create mode 100644 .conflict-side-1/examples/bugs/gh-119/tailwind.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-119/tsconfig.json create mode 100644 .conflict-side-1/examples/bugs/gh-119/wrangler.jsonc create mode 100644 .conflict-side-1/examples/bugs/gh-219/.dev.vars create mode 100644 .conflict-side-1/examples/bugs/gh-219/.gitignore create mode 100644 .conflict-side-1/examples/bugs/gh-219/README.md create mode 100644 .conflict-side-1/examples/bugs/gh-219/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/bugs/gh-219/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-219/eslint.config.mjs create mode 100644 .conflict-side-1/examples/bugs/gh-219/next.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-219/open-next.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-219/package.json create mode 100644 .conflict-side-1/examples/bugs/gh-219/postcss.config.mjs create mode 100644 .conflict-side-1/examples/bugs/gh-219/public/file.svg create mode 100644 .conflict-side-1/examples/bugs/gh-219/public/globe.svg create mode 100644 .conflict-side-1/examples/bugs/gh-219/public/next.svg create mode 100644 .conflict-side-1/examples/bugs/gh-219/public/vercel.svg create mode 100644 .conflict-side-1/examples/bugs/gh-219/public/window.svg create mode 100644 .conflict-side-1/examples/bugs/gh-219/src/app/favicon.ico create mode 100644 .conflict-side-1/examples/bugs/gh-219/src/app/globals.css create mode 100644 .conflict-side-1/examples/bugs/gh-219/src/app/layout.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-219/src/app/page.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-219/src/firebase/config.js create mode 100644 .conflict-side-1/examples/bugs/gh-219/tailwind.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-219/tsconfig.json create mode 100644 .conflict-side-1/examples/bugs/gh-219/wrangler.jsonc create mode 100644 .conflict-side-1/examples/bugs/gh-223/.eslintrc.json create mode 100644 .conflict-side-1/examples/bugs/gh-223/.gitignore create mode 100644 .conflict-side-1/examples/bugs/gh-223/README.md create mode 100644 .conflict-side-1/examples/bugs/gh-223/app/api/image/route.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/app/favicon.ico create mode 100644 .conflict-side-1/examples/bugs/gh-223/app/globals.css create mode 100644 .conflict-side-1/examples/bugs/gh-223/app/layout.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-223/app/page.tsx create mode 100644 .conflict-side-1/examples/bugs/gh-223/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/next.config.mjs create mode 100644 .conflict-side-1/examples/bugs/gh-223/open-next.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/package.json create mode 100644 .conflict-side-1/examples/bugs/gh-223/postcss.config.mjs create mode 100644 .conflict-side-1/examples/bugs/gh-223/public/next.svg create mode 100644 .conflict-side-1/examples/bugs/gh-223/public/vercel.svg create mode 100644 .conflict-side-1/examples/bugs/gh-223/src/utils/common.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/src/utils/s3Bucket.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/tailwind.config.ts create mode 100644 .conflict-side-1/examples/bugs/gh-223/tsconfig.json create mode 100644 .conflict-side-1/examples/bugs/gh-223/wrangler.jsonc create mode 100644 .conflict-side-1/examples/common/apps.ts create mode 100644 .conflict-side-1/examples/common/config-e2e.ts create mode 100644 .conflict-side-1/examples/common/package.json create mode 100644 .conflict-side-1/examples/common/tsconfig.json create mode 100644 .conflict-side-1/examples/create-next-app/.eslintrc.json create mode 100644 .conflict-side-1/examples/create-next-app/.gitignore create mode 100644 .conflict-side-1/examples/create-next-app/README.md create mode 100644 .conflict-side-1/examples/create-next-app/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/create-next-app/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/create-next-app/next.config.mjs create mode 100644 .conflict-side-1/examples/create-next-app/open-next.config.ts create mode 100644 .conflict-side-1/examples/create-next-app/package.json create mode 100644 .conflict-side-1/examples/create-next-app/postcss.config.mjs create mode 100644 .conflict-side-1/examples/create-next-app/public/next.svg create mode 100644 .conflict-side-1/examples/create-next-app/public/vercel.svg create mode 100644 .conflict-side-1/examples/create-next-app/src/app/favicon.ico create mode 100644 .conflict-side-1/examples/create-next-app/src/app/fonts/GeistMonoVF.woff create mode 100644 .conflict-side-1/examples/create-next-app/src/app/fonts/GeistVF.woff create mode 100644 .conflict-side-1/examples/create-next-app/src/app/globals.css create mode 100644 .conflict-side-1/examples/create-next-app/src/app/layout.tsx create mode 100644 .conflict-side-1/examples/create-next-app/src/app/page.tsx create mode 100644 .conflict-side-1/examples/create-next-app/tailwind.config.ts create mode 100644 .conflict-side-1/examples/create-next-app/tsconfig.json create mode 100644 .conflict-side-1/examples/create-next-app/wrangler.jsonc create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/.env create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/.gitignore create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/CHANGELOG.md create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/README.md create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/@modal/default.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/[album]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/albums/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/api/client/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/api/host/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/api/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/globals.css create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/image-optimization/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/isr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/@a/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/@b/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/parallel/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/redirect-destination/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/server-actions/client.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/server-actions/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/ssr/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/ssr/loading.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/app/ssr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/api.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/host.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/image-optimization.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/isr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/modals.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/pages_isr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/parallel.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/serverActions.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/e2e/ssr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/middleware.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/next.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/open-next.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/package.json create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/pages/_app.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/pages/_document.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/pages/api/hello.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/pages/pages_isr/index.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/postcss.config.js create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/public/favicon.ico create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/public/static/frank.webp create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/styles/globals.css create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/tailwind.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/tsconfig.json create mode 100644 .conflict-side-1/examples/e2e/app-pages-router/wrangler.jsonc create mode 100644 .conflict-side-1/examples/e2e/app-router/.gitignore create mode 100644 .conflict-side-1/examples/e2e/app-router/CHANGELOG.md create mode 100644 .conflict-side-1/examples/e2e/app-router/README.md create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/@modal/default.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/[album]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/albums/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/after/revalidate/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/after/ssg/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/client/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/host/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/isr/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/og/route.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/revalidate-path/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/revalidate-tag/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/api/sse/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/config-redirect/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/cookies/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/globals.css create mode 100644 .conflict-side-1/examples/e2e/app-router/app/headers/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/image-optimization/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/isr-data-cache/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/isr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/get/query/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/get/redirect/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/get/revalidate/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/get/static/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/post/cookies/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/post/formdata/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/methods/route.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/app/og/opengraph-image.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/og/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/@a/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/@b/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/parallel/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/redirect-destination/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/revalidate-path/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/revalidate-tag/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/revalidate-tag/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/rewrite-destination/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/search-query/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/server-actions/client.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/server-actions/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/sse/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/ssr/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/ssr/loading.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/app/ssr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/after.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/api.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/config.redirect.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/headers.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/host.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/image-optimization.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/isr.revalidate.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/isr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/methods.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/middleware.cookies.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/middleware.redirect.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/middleware.rewrite.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/modals.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/og.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/parallel.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/query.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/revalidateTag.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/serverActions.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/sse.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/ssr.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/e2e/trailing.test.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/middleware.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/next.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/open-next.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/package.json create mode 100644 .conflict-side-1/examples/e2e/app-router/postcss.config.js create mode 100644 .conflict-side-1/examples/e2e/app-router/public/favicon.ico create mode 100644 .conflict-side-1/examples/e2e/app-router/public/static/corporate_holiday_card.jpg create mode 100644 .conflict-side-1/examples/e2e/app-router/public/static/frank.webp create mode 100644 .conflict-side-1/examples/e2e/app-router/tailwind.config.ts create mode 100644 .conflict-side-1/examples/e2e/app-router/tsconfig.json create mode 100644 .conflict-side-1/examples/e2e/app-router/wrangler.jsonc create mode 100644 .conflict-side-1/examples/e2e/experimental/.gitignore create mode 100644 .conflict-side-1/examples/e2e/experimental/README.md create mode 100644 .conflict-side-1/examples/e2e/experimental/e2e/nodeMiddleware.test.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/e2e/ppr.test.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/e2e/use-cache.test.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/next.config.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/open-next.config.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/package.json create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/api/revalidate/route.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/favicon.ico create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/globals.css create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/page.module.css create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/page.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/ppr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/use-cache/isr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/use-cache/layout.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/components/cached.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/components/dynamic.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/components/static.tsx create mode 100644 .conflict-side-1/examples/e2e/experimental/src/middleware.ts create mode 100644 .conflict-side-1/examples/e2e/experimental/tsconfig.json create mode 100644 .conflict-side-1/examples/e2e/experimental/wrangler.jsonc create mode 100644 .conflict-side-1/examples/e2e/pages-router/.env.production create mode 100644 .conflict-side-1/examples/e2e/pages-router/.gitignore create mode 100644 .conflict-side-1/examples/e2e/pages-router/README.md create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/404.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/amp.test.ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/e2e/api.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/data.test.ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/e2e/fallback.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/head.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/header.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/i18n.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/isr.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/redirect.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/revalidate.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/rewrite.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/ssr.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/streaming.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/e2e/trailing.test.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/next.config.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/open-next.config.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/package.json create mode 100644 .conflict-side-1/examples/e2e/pages-router/postcss.config.js create mode 100644 .conflict-side-1/examples/e2e/pages-router/public/favicon.ico create mode 100644 .conflict-side-1/examples/e2e/pages-router/public/static/frank.webp create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/middleware.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/_app.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/_document.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/amp/index.tsx create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/api/hello.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/api/query.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/api/revalidate.ts create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/api/streaming/index.ts create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx create mode 100755 .conflict-side-1/examples/e2e/pages-router/src/pages/fallback/[slug].tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/head/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/isr/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/sse/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/ssg/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/pages/ssr/index.tsx create mode 100644 .conflict-side-1/examples/e2e/pages-router/src/styles/globals.css create mode 100644 .conflict-side-1/examples/e2e/pages-router/tsconfig.json create mode 100644 .conflict-side-1/examples/e2e/pages-router/wrangler.jsonc create mode 100644 .conflict-side-1/examples/e2e/shared/api/index.ts create mode 100644 .conflict-side-1/examples/e2e/shared/api/songs.json create mode 100644 .conflict-side-1/examples/e2e/shared/components/Album/Album.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/components/Album/Song.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/components/Album/index.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/components/Filler/index.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/components/Modal/index.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/components/Nav/index.tsx create mode 100644 .conflict-side-1/examples/e2e/shared/package.json create mode 100644 .conflict-side-1/examples/e2e/shared/sst-env.d.ts create mode 100644 .conflict-side-1/examples/e2e/shared/tsconfig.json create mode 100644 .conflict-side-1/examples/e2e/utils.ts create mode 100644 .conflict-side-1/examples/middleware/.env create mode 100755 .conflict-side-1/examples/middleware/.gitignore create mode 100755 .conflict-side-1/examples/middleware/README.md create mode 100644 .conflict-side-1/examples/middleware/app/about/page.tsx create mode 100644 .conflict-side-1/examples/middleware/app/about2/page.tsx create mode 100644 .conflict-side-1/examples/middleware/app/another/page.tsx create mode 100644 .conflict-side-1/examples/middleware/app/clerk/route.ts create mode 100644 .conflict-side-1/examples/middleware/app/layout.tsx create mode 100644 .conflict-side-1/examples/middleware/app/middleware/page.tsx create mode 100755 .conflict-side-1/examples/middleware/app/page.tsx create mode 100644 .conflict-side-1/examples/middleware/app/redirected/page.tsx create mode 100644 .conflict-side-1/examples/middleware/app/rewrite/page.tsx create mode 100644 .conflict-side-1/examples/middleware/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/middleware/e2e/cloudflare-context.spec.ts create mode 100644 .conflict-side-1/examples/middleware/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/middleware/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-1/examples/middleware/middleware.ts create mode 100644 .conflict-side-1/examples/middleware/next.config.mjs create mode 100644 .conflict-side-1/examples/middleware/open-next.config.ts create mode 100644 .conflict-side-1/examples/middleware/package.json create mode 100755 .conflict-side-1/examples/middleware/public/favicon.ico create mode 100755 .conflict-side-1/examples/middleware/public/vercel.svg create mode 100755 .conflict-side-1/examples/middleware/tsconfig.json create mode 100644 .conflict-side-1/examples/middleware/wrangler.jsonc create mode 100755 .conflict-side-1/examples/next-partial-prerendering/.gitignore create mode 100644 .conflict-side-1/examples/next-partial-prerendering/.prettierrc create mode 100755 .conflict-side-1/examples/next-partial-prerendering/README.md create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/favicon.ico create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/layout.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/not-found.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/opengraph-image.png create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/page.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/styles.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/app/twitter-image.png create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/add-to-cart.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/byline.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/cart-count-context.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/cart-count.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/header.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/next-logo.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/ping.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/pricing.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-best-seller.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-card.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-currency-symbol.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-deal.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-estimated-arrival.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-lightening-deal.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-low-stock-warning.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-price.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-rating.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-review-card.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-split-payments.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/product-used-price.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/recommended-products.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/reviews.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/sidebar.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/single-product.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/components/vercel-logo.tsx create mode 100644 .conflict-side-1/examples/next-partial-prerendering/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/e2e/ppr.test.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/lib/delay.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/lib/products.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/lib/reviews.ts create mode 100755 .conflict-side-1/examples/next-partial-prerendering/next.config.js create mode 100644 .conflict-side-1/examples/next-partial-prerendering/open-next.config.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/package.json create mode 100644 .conflict-side-1/examples/next-partial-prerendering/postcss.config.js create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/grid.svg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/nextjs-icon-light-background.png create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg create mode 100644 .conflict-side-1/examples/next-partial-prerendering/tailwind.config.ts create mode 100755 .conflict-side-1/examples/next-partial-prerendering/tsconfig.json create mode 100644 .conflict-side-1/examples/next-partial-prerendering/types/product.d.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/types/review.d.ts create mode 100644 .conflict-side-1/examples/next-partial-prerendering/wrangler.jsonc create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/.gitignore create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/action.ts create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/favicon.ico create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/globals.css create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/layout.tsx create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/page.module.css create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/app/page.tsx create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/next.config.ts create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/open-next.config.ts create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/package.json create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/tsconfig.json create mode 100644 .conflict-side-1/examples/overrides/d1-tag-next/wrangler.jsonc create mode 100644 .conflict-side-1/examples/overrides/memory-queue/.gitignore create mode 100644 .conflict-side-1/examples/overrides/memory-queue/app/favicon.ico create mode 100644 .conflict-side-1/examples/overrides/memory-queue/app/globals.css create mode 100644 .conflict-side-1/examples/overrides/memory-queue/app/layout.tsx create mode 100644 .conflict-side-1/examples/overrides/memory-queue/app/page.module.css create mode 100644 .conflict-side-1/examples/overrides/memory-queue/app/page.tsx create mode 100644 .conflict-side-1/examples/overrides/memory-queue/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/overrides/memory-queue/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/overrides/memory-queue/next.config.ts create mode 100644 .conflict-side-1/examples/overrides/memory-queue/open-next.config.ts create mode 100644 .conflict-side-1/examples/overrides/memory-queue/package.json create mode 100644 .conflict-side-1/examples/overrides/memory-queue/tsconfig.json create mode 100644 .conflict-side-1/examples/overrides/memory-queue/wrangler.jsonc create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/.gitignore create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/app/favicon.ico create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/app/globals.css create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/app/layout.tsx create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/app/page.module.css create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/app/page.tsx create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/next.config.ts create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/open-next.config.ts create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/package.json create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/tsconfig.json create mode 100644 .conflict-side-1/examples/overrides/r2-incremental-cache/wrangler.jsonc create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/.gitignore create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/action.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/favicon.ico create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/globals.css create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/layout.tsx create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/page.module.css create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/app/page.tsx create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/next-env.d.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/next.config.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/open-next.config.ts create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/package.json create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/tsconfig.json create mode 100644 .conflict-side-1/examples/overrides/static-assets-incremental-cache/wrangler.jsonc create mode 100644 .conflict-side-1/examples/playground14/.dev.vars create mode 100644 .conflict-side-1/examples/playground14/.env.development create mode 100644 .conflict-side-1/examples/playground14/.gitignore create mode 100644 .conflict-side-1/examples/playground14/app/api/buildid/route.ts create mode 100644 .conflict-side-1/examples/playground14/app/api/env/route.ts create mode 100644 .conflict-side-1/examples/playground14/app/api/hello/route.ts create mode 100644 .conflict-side-1/examples/playground14/app/api/instrumentation/route.ts create mode 100644 .conflict-side-1/examples/playground14/app/api/request/route.ts create mode 100644 .conflict-side-1/examples/playground14/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-side-1/examples/playground14/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-side-1/examples/playground14/app/layout.js create mode 100644 .conflict-side-1/examples/playground14/app/og/route.tsx create mode 100644 .conflict-side-1/examples/playground14/app/page.js create mode 100644 .conflict-side-1/examples/playground14/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/cloudflare.spec.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/head.spec.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/instrumentation.spec.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/isr.spec.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/playground14/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-1/examples/playground14/instrumentation.js create mode 100644 .conflict-side-1/examples/playground14/lib/posts.ts create mode 100644 .conflict-side-1/examples/playground14/middleware.js create mode 100644 .conflict-side-1/examples/playground14/next.config.mjs create mode 100644 .conflict-side-1/examples/playground14/open-next.config.ts create mode 100644 .conflict-side-1/examples/playground14/package.json create mode 100644 .conflict-side-1/examples/playground14/pages/api/pages.ts create mode 100644 .conflict-side-1/examples/playground14/pages/head.tsx create mode 100644 .conflict-side-1/examples/playground14/public/.gitkeep create mode 100644 .conflict-side-1/examples/playground14/public/snipp/snipp.webp create mode 100644 .conflict-side-1/examples/playground14/tsconfig.json create mode 100644 .conflict-side-1/examples/playground14/worker-configuration.d.ts create mode 100644 .conflict-side-1/examples/playground14/worker.ts create mode 100644 .conflict-side-1/examples/playground14/wrangler.jsonc create mode 100644 .conflict-side-1/examples/playground15/.dev.vars create mode 100644 .conflict-side-1/examples/playground15/.env.development create mode 100644 .conflict-side-1/examples/playground15/.gitignore create mode 100644 .conflict-side-1/examples/playground15/app/api/buildid/route.ts create mode 100644 .conflict-side-1/examples/playground15/app/api/env/route.ts create mode 100644 .conflict-side-1/examples/playground15/app/api/hello/route.ts create mode 100644 .conflict-side-1/examples/playground15/app/api/instrumentation/route.ts create mode 100644 .conflict-side-1/examples/playground15/app/api/request/route.ts create mode 100644 .conflict-side-1/examples/playground15/app/from-app/page.tsx create mode 100644 .conflict-side-1/examples/playground15/app/isr/[id]/dynamic/page.tsx create mode 100644 .conflict-side-1/examples/playground15/app/isr/[id]/no-dynamic/page.tsx create mode 100644 .conflict-side-1/examples/playground15/app/layout.js create mode 100644 .conflict-side-1/examples/playground15/app/og/route.tsx create mode 100644 .conflict-side-1/examples/playground15/app/other-app/page.tsx create mode 100644 .conflict-side-1/examples/playground15/app/page.js create mode 100644 .conflict-side-1/examples/playground15/data.js create mode 100644 .conflict-side-1/examples/playground15/data.module.css create mode 100644 .conflict-side-1/examples/playground15/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/cloudflare.spec.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/head.spec.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/instrumentation.spec.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/isr.spec.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/playground15/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-1/examples/playground15/instrumentation.js create mode 100644 .conflict-side-1/examples/playground15/lib/posts.ts create mode 100644 .conflict-side-1/examples/playground15/middleware.js create mode 100644 .conflict-side-1/examples/playground15/next.config.mjs create mode 100644 .conflict-side-1/examples/playground15/open-next.config.ts create mode 100644 .conflict-side-1/examples/playground15/package.json create mode 100644 .conflict-side-1/examples/playground15/pages/head.tsx create mode 100644 .conflict-side-1/examples/playground15/public/.gitkeep create mode 100644 .conflict-side-1/examples/playground15/public/test.jpg create mode 100644 .conflict-side-1/examples/playground15/tsconfig.json create mode 100644 .conflict-side-1/examples/playground15/worker-configuration.d.ts create mode 100644 .conflict-side-1/examples/playground15/wrangler.jsonc create mode 100644 .conflict-side-1/examples/prisma/.gitignore create mode 100644 .conflict-side-1/examples/prisma/README.md create mode 100644 .conflict-side-1/examples/prisma/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/prisma/e2e/playwright.dev.config.ts create mode 100644 .conflict-side-1/examples/prisma/e2e/prisma.spec.ts create mode 100644 .conflict-side-1/examples/prisma/next.config.ts create mode 100644 .conflict-side-1/examples/prisma/open-next.config.ts create mode 100644 .conflict-side-1/examples/prisma/package.json create mode 100644 .conflict-side-1/examples/prisma/populate.sql create mode 100644 .conflict-side-1/examples/prisma/prisma.config.ts create mode 100644 .conflict-side-1/examples/prisma/schema.prisma create mode 100644 .conflict-side-1/examples/prisma/src/app/favicon.ico create mode 100644 .conflict-side-1/examples/prisma/src/app/globals.css create mode 100644 .conflict-side-1/examples/prisma/src/app/layout.tsx create mode 100644 .conflict-side-1/examples/prisma/src/app/page.module.css create mode 100644 .conflict-side-1/examples/prisma/src/app/page.tsx create mode 100644 .conflict-side-1/examples/prisma/src/lib/db.ts create mode 100644 .conflict-side-1/examples/prisma/tsconfig.json create mode 100644 .conflict-side-1/examples/prisma/worker-configuration.d.ts create mode 100644 .conflict-side-1/examples/prisma/wrangler.jsonc create mode 100644 .conflict-side-1/examples/ssg-app/.dev.vars create mode 100644 .conflict-side-1/examples/ssg-app/.gitignore create mode 100644 .conflict-side-1/examples/ssg-app/app/favicon.ico create mode 100644 .conflict-side-1/examples/ssg-app/app/globals.css create mode 100644 .conflict-side-1/examples/ssg-app/app/layout.tsx create mode 100644 .conflict-side-1/examples/ssg-app/app/page.module.css create mode 100644 .conflict-side-1/examples/ssg-app/app/page.tsx create mode 100644 .conflict-side-1/examples/ssg-app/e2e/base.spec.ts create mode 100644 .conflict-side-1/examples/ssg-app/e2e/playwright.config.ts create mode 100644 .conflict-side-1/examples/ssg-app/next.config.ts create mode 100644 .conflict-side-1/examples/ssg-app/open-next.config.ts create mode 100644 .conflict-side-1/examples/ssg-app/package.json create mode 100644 .conflict-side-1/examples/ssg-app/tsconfig.json create mode 100644 .conflict-side-1/examples/ssg-app/worker-configuration.d.ts create mode 100644 .conflict-side-1/examples/ssg-app/wrangler.jsonc create mode 100644 .conflict-side-1/examples/vercel-blog-starter/.gitignore create mode 100644 .conflict-side-1/examples/vercel-blog-starter/README.md create mode 100644 .conflict-side-1/examples/vercel-blog-starter/_posts/dynamic-routing.md create mode 100644 .conflict-side-1/examples/vercel-blog-starter/_posts/hello-world.md create mode 100644 .conflict-side-1/examples/vercel-blog-starter/_posts/preview.md create mode 100644 .conflict-side-1/examples/vercel-blog-starter/next.config.mjs create mode 100644 .conflict-side-1/examples/vercel-blog-starter/open-next.config.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/package.json create mode 100644 .conflict-side-1/examples/vercel-blog-starter/postcss.config.js create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/browserconfig.xml create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/favicon-16x16.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/favicon-32x32.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/favicon.ico create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/mstile-150x150.png create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg create mode 100644 .conflict-side-1/examples/vercel-blog-starter/public/favicon/site.webmanifest create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/alert.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/avatar.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/container.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/cover-image.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/footer.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/header.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/hero-post.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/intro.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/more-stories.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/post-body.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/post-header.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/post-preview.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/post-title.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/section-separator.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/switch.module.css create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/globals.css create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/layout.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/page.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/interfaces/author.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/interfaces/post.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/lib/api.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/lib/constants.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/src/lib/markdownToHtml.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/tailwind.config.ts create mode 100644 .conflict-side-1/examples/vercel-blog-starter/tsconfig.json create mode 100644 .conflict-side-1/examples/vercel-blog-starter/wrangler.jsonc create mode 100644 .conflict-side-1/package.json create mode 100644 .conflict-side-1/packages/cloudflare/.gitignore create mode 100644 .conflict-side-1/packages/cloudflare/CHANGELOG.md create mode 100644 .conflict-side-1/packages/cloudflare/README.md create mode 100644 .conflict-side-1/packages/cloudflare/env.d.ts create mode 100644 .conflict-side-1/packages/cloudflare/eslint.config.mjs create mode 100644 .conflict-side-1/packages/cloudflare/package.json create mode 100644 .conflict-side-1/packages/cloudflare/src/api/cloudflare-context.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/config.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/queue.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/queue.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/index.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/asset-resolver/index.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/cache-purge/index.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/internal.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/queue/do-queue.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/queue/memory-queue.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/queue/queue-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/build.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/bundle-server.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compile-images.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compile-init.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/require.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/create-config-files.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/index.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/normalize-path.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/test-patch.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/version.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/workerd.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/build/utils/workerd.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/build.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/deploy.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/helpers.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/populate-cache.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/populate-cache.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/preview.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/setup-cli.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/skew-protection.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/skew-protection.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/commands/upload.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/index.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/project-options.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/images.spec.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/images.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/init.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/shims/empty.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/shims/env.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/shims/fetch.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/shims/throw.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/skew-protection.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/templates/worker.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/utils/ask-confirmation.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/cli/utils/run-wrangler.ts create mode 100644 .conflict-side-1/packages/cloudflare/src/utils/get-package-templates-dir-path.ts create mode 100644 .conflict-side-1/packages/cloudflare/templates/open-next.config.ts create mode 100644 .conflict-side-1/packages/cloudflare/templates/wrangler.jsonc create mode 100644 .conflict-side-1/packages/cloudflare/tsconfig.json create mode 100644 .conflict-side-1/pnpm-lock.yaml create mode 100644 .conflict-side-1/pnpm-workspace.yaml create mode 100644 README.txt diff --git a/.changeset/README.md b/.auto-resolution/.changeset/README.md similarity index 100% rename from .changeset/README.md rename to .auto-resolution/.changeset/README.md diff --git a/.changeset/config.json b/.auto-resolution/.changeset/config.json similarity index 100% rename from .changeset/config.json rename to .auto-resolution/.changeset/config.json diff --git a/.changeset/empty-garlics-lead.md b/.auto-resolution/.changeset/empty-garlics-lead.md similarity index 100% rename from .changeset/empty-garlics-lead.md rename to .auto-resolution/.changeset/empty-garlics-lead.md diff --git a/.changeset/hungry-ideas-buy.md b/.auto-resolution/.changeset/hungry-ideas-buy.md similarity index 100% rename from .changeset/hungry-ideas-buy.md rename to .auto-resolution/.changeset/hungry-ideas-buy.md diff --git a/.editorconfig b/.auto-resolution/.editorconfig similarity index 100% rename from .editorconfig rename to .auto-resolution/.editorconfig diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.auto-resolution/.github/ISSUE_TEMPLATE/1.bug_report.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/1.bug_report.yml rename to .auto-resolution/.github/ISSUE_TEMPLATE/1.bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.auto-resolution/.github/ISSUE_TEMPLATE/2.feature_request.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/2.feature_request.yml rename to .auto-resolution/.github/ISSUE_TEMPLATE/2.feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.auto-resolution/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yml rename to .auto-resolution/.github/ISSUE_TEMPLATE/config.yml diff --git a/.github/actions/install-dependencies/action.yml b/.auto-resolution/.github/actions/install-dependencies/action.yml similarity index 100% rename from .github/actions/install-dependencies/action.yml rename to .auto-resolution/.github/actions/install-dependencies/action.yml diff --git a/.github/actions/setup-playwright/action.yml b/.auto-resolution/.github/actions/setup-playwright/action.yml similarity index 100% rename from .github/actions/setup-playwright/action.yml rename to .auto-resolution/.github/actions/setup-playwright/action.yml diff --git a/.github/workflows/changesets.yml b/.auto-resolution/.github/workflows/changesets.yml similarity index 100% rename from .github/workflows/changesets.yml rename to .auto-resolution/.github/workflows/changesets.yml diff --git a/.github/workflows/checks.yml b/.auto-resolution/.github/workflows/checks.yml similarity index 100% rename from .github/workflows/checks.yml rename to .auto-resolution/.github/workflows/checks.yml diff --git a/.github/workflows/playwright.yml b/.auto-resolution/.github/workflows/playwright.yml similarity index 100% rename from .github/workflows/playwright.yml rename to .auto-resolution/.github/workflows/playwright.yml diff --git a/.github/workflows/prereleases.yml b/.auto-resolution/.github/workflows/prereleases.yml similarity index 100% rename from .github/workflows/prereleases.yml rename to .auto-resolution/.github/workflows/prereleases.yml diff --git a/.gitignore b/.auto-resolution/.gitignore similarity index 100% rename from .gitignore rename to .auto-resolution/.gitignore diff --git a/.prettierignore b/.auto-resolution/.prettierignore similarity index 100% rename from .prettierignore rename to .auto-resolution/.prettierignore diff --git a/.prettierrc b/.auto-resolution/.prettierrc similarity index 100% rename from .prettierrc rename to .auto-resolution/.prettierrc diff --git a/.vscode/settings.json b/.auto-resolution/.vscode/settings.json similarity index 100% rename from .vscode/settings.json rename to .auto-resolution/.vscode/settings.json diff --git a/CONTRIBUTING.md b/.auto-resolution/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to .auto-resolution/CONTRIBUTING.md diff --git a/LICENSE b/.auto-resolution/LICENSE similarity index 100% rename from LICENSE rename to .auto-resolution/LICENSE diff --git a/README.md b/.auto-resolution/README.md similarity index 100% rename from README.md rename to .auto-resolution/README.md diff --git a/benchmarking/.gitignore b/.auto-resolution/benchmarking/.gitignore similarity index 100% rename from benchmarking/.gitignore rename to .auto-resolution/benchmarking/.gitignore diff --git a/benchmarking/README.md b/.auto-resolution/benchmarking/README.md similarity index 100% rename from benchmarking/README.md rename to .auto-resolution/benchmarking/README.md diff --git a/benchmarking/package.json b/.auto-resolution/benchmarking/package.json similarity index 100% rename from benchmarking/package.json rename to .auto-resolution/benchmarking/package.json diff --git a/benchmarking/src/benchmarking.ts b/.auto-resolution/benchmarking/src/benchmarking.ts similarity index 100% rename from benchmarking/src/benchmarking.ts rename to .auto-resolution/benchmarking/src/benchmarking.ts diff --git a/benchmarking/src/cloudflare.ts b/.auto-resolution/benchmarking/src/cloudflare.ts similarity index 100% rename from benchmarking/src/cloudflare.ts rename to .auto-resolution/benchmarking/src/cloudflare.ts diff --git a/benchmarking/src/index.ts b/.auto-resolution/benchmarking/src/index.ts similarity index 100% rename from benchmarking/src/index.ts rename to .auto-resolution/benchmarking/src/index.ts diff --git a/benchmarking/src/utils.ts b/.auto-resolution/benchmarking/src/utils.ts similarity index 100% rename from benchmarking/src/utils.ts rename to .auto-resolution/benchmarking/src/utils.ts diff --git a/benchmarking/tsconfig.json b/.auto-resolution/benchmarking/tsconfig.json similarity index 100% rename from benchmarking/tsconfig.json rename to .auto-resolution/benchmarking/tsconfig.json diff --git a/examples/bugs/gh-119/.eslintrc.json b/.auto-resolution/examples/bugs/gh-119/.eslintrc.json similarity index 100% rename from examples/bugs/gh-119/.eslintrc.json rename to .auto-resolution/examples/bugs/gh-119/.eslintrc.json diff --git a/examples/bugs/gh-119/.gitignore b/.auto-resolution/examples/bugs/gh-119/.gitignore similarity index 100% rename from examples/bugs/gh-119/.gitignore rename to .auto-resolution/examples/bugs/gh-119/.gitignore diff --git a/examples/bugs/gh-119/README.md b/.auto-resolution/examples/bugs/gh-119/README.md similarity index 100% rename from examples/bugs/gh-119/README.md rename to .auto-resolution/examples/bugs/gh-119/README.md diff --git a/examples/bugs/gh-119/app/favicon.ico b/.auto-resolution/examples/bugs/gh-119/app/favicon.ico similarity index 100% rename from examples/bugs/gh-119/app/favicon.ico rename to .auto-resolution/examples/bugs/gh-119/app/favicon.ico diff --git a/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff b/.auto-resolution/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff similarity index 100% rename from examples/bugs/gh-119/app/fonts/GeistMonoVF.woff rename to .auto-resolution/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff diff --git a/examples/bugs/gh-119/app/fonts/GeistVF.woff b/.auto-resolution/examples/bugs/gh-119/app/fonts/GeistVF.woff similarity index 100% rename from examples/bugs/gh-119/app/fonts/GeistVF.woff rename to .auto-resolution/examples/bugs/gh-119/app/fonts/GeistVF.woff diff --git a/examples/bugs/gh-119/app/globals.css b/.auto-resolution/examples/bugs/gh-119/app/globals.css similarity index 100% rename from examples/bugs/gh-119/app/globals.css rename to .auto-resolution/examples/bugs/gh-119/app/globals.css diff --git a/examples/bugs/gh-119/app/layout.tsx b/.auto-resolution/examples/bugs/gh-119/app/layout.tsx similarity index 100% rename from examples/bugs/gh-119/app/layout.tsx rename to .auto-resolution/examples/bugs/gh-119/app/layout.tsx diff --git a/examples/bugs/gh-119/app/page.tsx b/.auto-resolution/examples/bugs/gh-119/app/page.tsx similarity index 100% rename from examples/bugs/gh-119/app/page.tsx rename to .auto-resolution/examples/bugs/gh-119/app/page.tsx diff --git a/examples/bugs/gh-119/e2e/base.spec.ts b/.auto-resolution/examples/bugs/gh-119/e2e/base.spec.ts similarity index 100% rename from examples/bugs/gh-119/e2e/base.spec.ts rename to .auto-resolution/examples/bugs/gh-119/e2e/base.spec.ts diff --git a/examples/bugs/gh-119/e2e/playwright.config.ts b/.auto-resolution/examples/bugs/gh-119/e2e/playwright.config.ts similarity index 100% rename from examples/bugs/gh-119/e2e/playwright.config.ts rename to .auto-resolution/examples/bugs/gh-119/e2e/playwright.config.ts diff --git a/examples/bugs/gh-119/next.config.ts b/.auto-resolution/examples/bugs/gh-119/next.config.ts similarity index 100% rename from examples/bugs/gh-119/next.config.ts rename to .auto-resolution/examples/bugs/gh-119/next.config.ts diff --git a/examples/bugs/gh-119/open-next.config.ts b/.auto-resolution/examples/bugs/gh-119/open-next.config.ts similarity index 100% rename from examples/bugs/gh-119/open-next.config.ts rename to .auto-resolution/examples/bugs/gh-119/open-next.config.ts diff --git a/examples/bugs/gh-119/package.json b/.auto-resolution/examples/bugs/gh-119/package.json similarity index 100% rename from examples/bugs/gh-119/package.json rename to .auto-resolution/examples/bugs/gh-119/package.json diff --git a/examples/bugs/gh-119/postcss.config.mjs b/.auto-resolution/examples/bugs/gh-119/postcss.config.mjs similarity index 100% rename from examples/bugs/gh-119/postcss.config.mjs rename to .auto-resolution/examples/bugs/gh-119/postcss.config.mjs diff --git a/examples/bugs/gh-119/public/file.svg b/.auto-resolution/examples/bugs/gh-119/public/file.svg similarity index 100% rename from examples/bugs/gh-119/public/file.svg rename to .auto-resolution/examples/bugs/gh-119/public/file.svg diff --git a/examples/bugs/gh-119/public/globe.svg b/.auto-resolution/examples/bugs/gh-119/public/globe.svg similarity index 100% rename from examples/bugs/gh-119/public/globe.svg rename to .auto-resolution/examples/bugs/gh-119/public/globe.svg diff --git a/examples/bugs/gh-119/public/next.svg b/.auto-resolution/examples/bugs/gh-119/public/next.svg similarity index 100% rename from examples/bugs/gh-119/public/next.svg rename to .auto-resolution/examples/bugs/gh-119/public/next.svg diff --git a/examples/bugs/gh-119/public/vercel.svg b/.auto-resolution/examples/bugs/gh-119/public/vercel.svg similarity index 100% rename from examples/bugs/gh-119/public/vercel.svg rename to .auto-resolution/examples/bugs/gh-119/public/vercel.svg diff --git a/examples/bugs/gh-119/public/window.svg b/.auto-resolution/examples/bugs/gh-119/public/window.svg similarity index 100% rename from examples/bugs/gh-119/public/window.svg rename to .auto-resolution/examples/bugs/gh-119/public/window.svg diff --git a/examples/bugs/gh-119/tailwind.config.ts b/.auto-resolution/examples/bugs/gh-119/tailwind.config.ts similarity index 100% rename from examples/bugs/gh-119/tailwind.config.ts rename to .auto-resolution/examples/bugs/gh-119/tailwind.config.ts diff --git a/examples/bugs/gh-119/tsconfig.json b/.auto-resolution/examples/bugs/gh-119/tsconfig.json similarity index 100% rename from examples/bugs/gh-119/tsconfig.json rename to .auto-resolution/examples/bugs/gh-119/tsconfig.json diff --git a/examples/bugs/gh-119/wrangler.jsonc b/.auto-resolution/examples/bugs/gh-119/wrangler.jsonc similarity index 100% rename from examples/bugs/gh-119/wrangler.jsonc rename to .auto-resolution/examples/bugs/gh-119/wrangler.jsonc diff --git a/examples/bugs/gh-219/.dev.vars b/.auto-resolution/examples/bugs/gh-219/.dev.vars similarity index 100% rename from examples/bugs/gh-219/.dev.vars rename to .auto-resolution/examples/bugs/gh-219/.dev.vars diff --git a/examples/bugs/gh-219/.gitignore b/.auto-resolution/examples/bugs/gh-219/.gitignore similarity index 100% rename from examples/bugs/gh-219/.gitignore rename to .auto-resolution/examples/bugs/gh-219/.gitignore diff --git a/examples/bugs/gh-219/README.md b/.auto-resolution/examples/bugs/gh-219/README.md similarity index 100% rename from examples/bugs/gh-219/README.md rename to .auto-resolution/examples/bugs/gh-219/README.md diff --git a/examples/bugs/gh-219/e2e/base.spec.ts b/.auto-resolution/examples/bugs/gh-219/e2e/base.spec.ts similarity index 100% rename from examples/bugs/gh-219/e2e/base.spec.ts rename to .auto-resolution/examples/bugs/gh-219/e2e/base.spec.ts diff --git a/examples/bugs/gh-219/e2e/playwright.config.ts b/.auto-resolution/examples/bugs/gh-219/e2e/playwright.config.ts similarity index 100% rename from examples/bugs/gh-219/e2e/playwright.config.ts rename to .auto-resolution/examples/bugs/gh-219/e2e/playwright.config.ts diff --git a/examples/bugs/gh-219/eslint.config.mjs b/.auto-resolution/examples/bugs/gh-219/eslint.config.mjs similarity index 100% rename from examples/bugs/gh-219/eslint.config.mjs rename to .auto-resolution/examples/bugs/gh-219/eslint.config.mjs diff --git a/examples/bugs/gh-219/next.config.ts b/.auto-resolution/examples/bugs/gh-219/next.config.ts similarity index 100% rename from examples/bugs/gh-219/next.config.ts rename to .auto-resolution/examples/bugs/gh-219/next.config.ts diff --git a/examples/bugs/gh-219/open-next.config.ts b/.auto-resolution/examples/bugs/gh-219/open-next.config.ts similarity index 100% rename from examples/bugs/gh-219/open-next.config.ts rename to .auto-resolution/examples/bugs/gh-219/open-next.config.ts diff --git a/examples/bugs/gh-219/package.json b/.auto-resolution/examples/bugs/gh-219/package.json similarity index 100% rename from examples/bugs/gh-219/package.json rename to .auto-resolution/examples/bugs/gh-219/package.json diff --git a/examples/bugs/gh-219/postcss.config.mjs b/.auto-resolution/examples/bugs/gh-219/postcss.config.mjs similarity index 100% rename from examples/bugs/gh-219/postcss.config.mjs rename to .auto-resolution/examples/bugs/gh-219/postcss.config.mjs diff --git a/examples/bugs/gh-219/public/file.svg b/.auto-resolution/examples/bugs/gh-219/public/file.svg similarity index 100% rename from examples/bugs/gh-219/public/file.svg rename to .auto-resolution/examples/bugs/gh-219/public/file.svg diff --git a/examples/bugs/gh-219/public/globe.svg b/.auto-resolution/examples/bugs/gh-219/public/globe.svg similarity index 100% rename from examples/bugs/gh-219/public/globe.svg rename to .auto-resolution/examples/bugs/gh-219/public/globe.svg diff --git a/examples/bugs/gh-219/public/next.svg b/.auto-resolution/examples/bugs/gh-219/public/next.svg similarity index 100% rename from examples/bugs/gh-219/public/next.svg rename to .auto-resolution/examples/bugs/gh-219/public/next.svg diff --git a/examples/bugs/gh-219/public/vercel.svg b/.auto-resolution/examples/bugs/gh-219/public/vercel.svg similarity index 100% rename from examples/bugs/gh-219/public/vercel.svg rename to .auto-resolution/examples/bugs/gh-219/public/vercel.svg diff --git a/examples/bugs/gh-219/public/window.svg b/.auto-resolution/examples/bugs/gh-219/public/window.svg similarity index 100% rename from examples/bugs/gh-219/public/window.svg rename to .auto-resolution/examples/bugs/gh-219/public/window.svg diff --git a/examples/bugs/gh-219/src/app/favicon.ico b/.auto-resolution/examples/bugs/gh-219/src/app/favicon.ico similarity index 100% rename from examples/bugs/gh-219/src/app/favicon.ico rename to .auto-resolution/examples/bugs/gh-219/src/app/favicon.ico diff --git a/examples/bugs/gh-219/src/app/globals.css b/.auto-resolution/examples/bugs/gh-219/src/app/globals.css similarity index 100% rename from examples/bugs/gh-219/src/app/globals.css rename to .auto-resolution/examples/bugs/gh-219/src/app/globals.css diff --git a/examples/bugs/gh-219/src/app/layout.tsx b/.auto-resolution/examples/bugs/gh-219/src/app/layout.tsx similarity index 100% rename from examples/bugs/gh-219/src/app/layout.tsx rename to .auto-resolution/examples/bugs/gh-219/src/app/layout.tsx diff --git a/examples/bugs/gh-219/src/app/page.tsx b/.auto-resolution/examples/bugs/gh-219/src/app/page.tsx similarity index 100% rename from examples/bugs/gh-219/src/app/page.tsx rename to .auto-resolution/examples/bugs/gh-219/src/app/page.tsx diff --git a/examples/bugs/gh-219/src/firebase/config.js b/.auto-resolution/examples/bugs/gh-219/src/firebase/config.js similarity index 100% rename from examples/bugs/gh-219/src/firebase/config.js rename to .auto-resolution/examples/bugs/gh-219/src/firebase/config.js diff --git a/examples/bugs/gh-219/tailwind.config.ts b/.auto-resolution/examples/bugs/gh-219/tailwind.config.ts similarity index 100% rename from examples/bugs/gh-219/tailwind.config.ts rename to .auto-resolution/examples/bugs/gh-219/tailwind.config.ts diff --git a/examples/bugs/gh-219/tsconfig.json b/.auto-resolution/examples/bugs/gh-219/tsconfig.json similarity index 100% rename from examples/bugs/gh-219/tsconfig.json rename to .auto-resolution/examples/bugs/gh-219/tsconfig.json diff --git a/examples/bugs/gh-219/wrangler.jsonc b/.auto-resolution/examples/bugs/gh-219/wrangler.jsonc similarity index 100% rename from examples/bugs/gh-219/wrangler.jsonc rename to .auto-resolution/examples/bugs/gh-219/wrangler.jsonc diff --git a/examples/bugs/gh-223/.eslintrc.json b/.auto-resolution/examples/bugs/gh-223/.eslintrc.json similarity index 100% rename from examples/bugs/gh-223/.eslintrc.json rename to .auto-resolution/examples/bugs/gh-223/.eslintrc.json diff --git a/examples/bugs/gh-223/.gitignore b/.auto-resolution/examples/bugs/gh-223/.gitignore similarity index 100% rename from examples/bugs/gh-223/.gitignore rename to .auto-resolution/examples/bugs/gh-223/.gitignore diff --git a/examples/bugs/gh-223/README.md b/.auto-resolution/examples/bugs/gh-223/README.md similarity index 100% rename from examples/bugs/gh-223/README.md rename to .auto-resolution/examples/bugs/gh-223/README.md diff --git a/examples/bugs/gh-223/app/api/image/route.ts b/.auto-resolution/examples/bugs/gh-223/app/api/image/route.ts similarity index 100% rename from examples/bugs/gh-223/app/api/image/route.ts rename to .auto-resolution/examples/bugs/gh-223/app/api/image/route.ts diff --git a/examples/bugs/gh-223/app/favicon.ico b/.auto-resolution/examples/bugs/gh-223/app/favicon.ico similarity index 100% rename from examples/bugs/gh-223/app/favicon.ico rename to .auto-resolution/examples/bugs/gh-223/app/favicon.ico diff --git a/examples/bugs/gh-223/app/globals.css b/.auto-resolution/examples/bugs/gh-223/app/globals.css similarity index 100% rename from examples/bugs/gh-223/app/globals.css rename to .auto-resolution/examples/bugs/gh-223/app/globals.css diff --git a/examples/bugs/gh-223/app/layout.tsx b/.auto-resolution/examples/bugs/gh-223/app/layout.tsx similarity index 100% rename from examples/bugs/gh-223/app/layout.tsx rename to .auto-resolution/examples/bugs/gh-223/app/layout.tsx diff --git a/examples/bugs/gh-223/app/page.tsx b/.auto-resolution/examples/bugs/gh-223/app/page.tsx similarity index 100% rename from examples/bugs/gh-223/app/page.tsx rename to .auto-resolution/examples/bugs/gh-223/app/page.tsx diff --git a/examples/bugs/gh-223/e2e/base.spec.ts b/.auto-resolution/examples/bugs/gh-223/e2e/base.spec.ts similarity index 100% rename from examples/bugs/gh-223/e2e/base.spec.ts rename to .auto-resolution/examples/bugs/gh-223/e2e/base.spec.ts diff --git a/examples/bugs/gh-223/e2e/playwright.config.ts b/.auto-resolution/examples/bugs/gh-223/e2e/playwright.config.ts similarity index 100% rename from examples/bugs/gh-223/e2e/playwright.config.ts rename to .auto-resolution/examples/bugs/gh-223/e2e/playwright.config.ts diff --git a/examples/bugs/gh-223/next.config.mjs b/.auto-resolution/examples/bugs/gh-223/next.config.mjs similarity index 100% rename from examples/bugs/gh-223/next.config.mjs rename to .auto-resolution/examples/bugs/gh-223/next.config.mjs diff --git a/examples/bugs/gh-223/open-next.config.ts b/.auto-resolution/examples/bugs/gh-223/open-next.config.ts similarity index 100% rename from examples/bugs/gh-223/open-next.config.ts rename to .auto-resolution/examples/bugs/gh-223/open-next.config.ts diff --git a/examples/bugs/gh-223/package.json b/.auto-resolution/examples/bugs/gh-223/package.json similarity index 100% rename from examples/bugs/gh-223/package.json rename to .auto-resolution/examples/bugs/gh-223/package.json diff --git a/examples/bugs/gh-223/postcss.config.mjs b/.auto-resolution/examples/bugs/gh-223/postcss.config.mjs similarity index 100% rename from examples/bugs/gh-223/postcss.config.mjs rename to .auto-resolution/examples/bugs/gh-223/postcss.config.mjs diff --git a/examples/bugs/gh-223/public/next.svg b/.auto-resolution/examples/bugs/gh-223/public/next.svg similarity index 100% rename from examples/bugs/gh-223/public/next.svg rename to .auto-resolution/examples/bugs/gh-223/public/next.svg diff --git a/examples/bugs/gh-223/public/vercel.svg b/.auto-resolution/examples/bugs/gh-223/public/vercel.svg similarity index 100% rename from examples/bugs/gh-223/public/vercel.svg rename to .auto-resolution/examples/bugs/gh-223/public/vercel.svg diff --git a/examples/bugs/gh-223/src/utils/common.ts b/.auto-resolution/examples/bugs/gh-223/src/utils/common.ts similarity index 100% rename from examples/bugs/gh-223/src/utils/common.ts rename to .auto-resolution/examples/bugs/gh-223/src/utils/common.ts diff --git a/examples/bugs/gh-223/src/utils/s3Bucket.ts b/.auto-resolution/examples/bugs/gh-223/src/utils/s3Bucket.ts similarity index 100% rename from examples/bugs/gh-223/src/utils/s3Bucket.ts rename to .auto-resolution/examples/bugs/gh-223/src/utils/s3Bucket.ts diff --git a/examples/bugs/gh-223/tailwind.config.ts b/.auto-resolution/examples/bugs/gh-223/tailwind.config.ts similarity index 100% rename from examples/bugs/gh-223/tailwind.config.ts rename to .auto-resolution/examples/bugs/gh-223/tailwind.config.ts diff --git a/examples/bugs/gh-223/tsconfig.json b/.auto-resolution/examples/bugs/gh-223/tsconfig.json similarity index 100% rename from examples/bugs/gh-223/tsconfig.json rename to .auto-resolution/examples/bugs/gh-223/tsconfig.json diff --git a/examples/bugs/gh-223/wrangler.jsonc b/.auto-resolution/examples/bugs/gh-223/wrangler.jsonc similarity index 100% rename from examples/bugs/gh-223/wrangler.jsonc rename to .auto-resolution/examples/bugs/gh-223/wrangler.jsonc diff --git a/examples/common/apps.ts b/.auto-resolution/examples/common/apps.ts similarity index 100% rename from examples/common/apps.ts rename to .auto-resolution/examples/common/apps.ts diff --git a/examples/common/config-e2e.ts b/.auto-resolution/examples/common/config-e2e.ts similarity index 100% rename from examples/common/config-e2e.ts rename to .auto-resolution/examples/common/config-e2e.ts diff --git a/examples/common/package.json b/.auto-resolution/examples/common/package.json similarity index 100% rename from examples/common/package.json rename to .auto-resolution/examples/common/package.json diff --git a/examples/common/tsconfig.json b/.auto-resolution/examples/common/tsconfig.json similarity index 100% rename from examples/common/tsconfig.json rename to .auto-resolution/examples/common/tsconfig.json diff --git a/examples/create-next-app/.eslintrc.json b/.auto-resolution/examples/create-next-app/.eslintrc.json similarity index 100% rename from examples/create-next-app/.eslintrc.json rename to .auto-resolution/examples/create-next-app/.eslintrc.json diff --git a/examples/create-next-app/.gitignore b/.auto-resolution/examples/create-next-app/.gitignore similarity index 100% rename from examples/create-next-app/.gitignore rename to .auto-resolution/examples/create-next-app/.gitignore diff --git a/examples/create-next-app/README.md b/.auto-resolution/examples/create-next-app/README.md similarity index 100% rename from examples/create-next-app/README.md rename to .auto-resolution/examples/create-next-app/README.md diff --git a/examples/create-next-app/e2e/base.spec.ts b/.auto-resolution/examples/create-next-app/e2e/base.spec.ts similarity index 100% rename from examples/create-next-app/e2e/base.spec.ts rename to .auto-resolution/examples/create-next-app/e2e/base.spec.ts diff --git a/examples/create-next-app/e2e/playwright.config.ts b/.auto-resolution/examples/create-next-app/e2e/playwright.config.ts similarity index 100% rename from examples/create-next-app/e2e/playwright.config.ts rename to .auto-resolution/examples/create-next-app/e2e/playwright.config.ts diff --git a/examples/create-next-app/next.config.mjs b/.auto-resolution/examples/create-next-app/next.config.mjs similarity index 100% rename from examples/create-next-app/next.config.mjs rename to .auto-resolution/examples/create-next-app/next.config.mjs diff --git a/examples/create-next-app/open-next.config.ts b/.auto-resolution/examples/create-next-app/open-next.config.ts similarity index 100% rename from examples/create-next-app/open-next.config.ts rename to .auto-resolution/examples/create-next-app/open-next.config.ts diff --git a/examples/create-next-app/package.json b/.auto-resolution/examples/create-next-app/package.json similarity index 100% rename from examples/create-next-app/package.json rename to .auto-resolution/examples/create-next-app/package.json diff --git a/examples/create-next-app/postcss.config.mjs b/.auto-resolution/examples/create-next-app/postcss.config.mjs similarity index 100% rename from examples/create-next-app/postcss.config.mjs rename to .auto-resolution/examples/create-next-app/postcss.config.mjs diff --git a/examples/create-next-app/public/next.svg b/.auto-resolution/examples/create-next-app/public/next.svg similarity index 100% rename from examples/create-next-app/public/next.svg rename to .auto-resolution/examples/create-next-app/public/next.svg diff --git a/examples/create-next-app/public/vercel.svg b/.auto-resolution/examples/create-next-app/public/vercel.svg similarity index 100% rename from examples/create-next-app/public/vercel.svg rename to .auto-resolution/examples/create-next-app/public/vercel.svg diff --git a/examples/create-next-app/src/app/favicon.ico b/.auto-resolution/examples/create-next-app/src/app/favicon.ico similarity index 100% rename from examples/create-next-app/src/app/favicon.ico rename to .auto-resolution/examples/create-next-app/src/app/favicon.ico diff --git a/examples/create-next-app/src/app/fonts/GeistMonoVF.woff b/.auto-resolution/examples/create-next-app/src/app/fonts/GeistMonoVF.woff similarity index 100% rename from examples/create-next-app/src/app/fonts/GeistMonoVF.woff rename to .auto-resolution/examples/create-next-app/src/app/fonts/GeistMonoVF.woff diff --git a/examples/create-next-app/src/app/fonts/GeistVF.woff b/.auto-resolution/examples/create-next-app/src/app/fonts/GeistVF.woff similarity index 100% rename from examples/create-next-app/src/app/fonts/GeistVF.woff rename to .auto-resolution/examples/create-next-app/src/app/fonts/GeistVF.woff diff --git a/examples/create-next-app/src/app/globals.css b/.auto-resolution/examples/create-next-app/src/app/globals.css similarity index 100% rename from examples/create-next-app/src/app/globals.css rename to .auto-resolution/examples/create-next-app/src/app/globals.css diff --git a/examples/create-next-app/src/app/layout.tsx b/.auto-resolution/examples/create-next-app/src/app/layout.tsx similarity index 100% rename from examples/create-next-app/src/app/layout.tsx rename to .auto-resolution/examples/create-next-app/src/app/layout.tsx diff --git a/examples/create-next-app/src/app/page.tsx b/.auto-resolution/examples/create-next-app/src/app/page.tsx similarity index 100% rename from examples/create-next-app/src/app/page.tsx rename to .auto-resolution/examples/create-next-app/src/app/page.tsx diff --git a/examples/create-next-app/tailwind.config.ts b/.auto-resolution/examples/create-next-app/tailwind.config.ts similarity index 100% rename from examples/create-next-app/tailwind.config.ts rename to .auto-resolution/examples/create-next-app/tailwind.config.ts diff --git a/examples/create-next-app/tsconfig.json b/.auto-resolution/examples/create-next-app/tsconfig.json similarity index 100% rename from examples/create-next-app/tsconfig.json rename to .auto-resolution/examples/create-next-app/tsconfig.json diff --git a/examples/create-next-app/wrangler.jsonc b/.auto-resolution/examples/create-next-app/wrangler.jsonc similarity index 100% rename from examples/create-next-app/wrangler.jsonc rename to .auto-resolution/examples/create-next-app/wrangler.jsonc diff --git a/examples/e2e/app-pages-router/.env b/.auto-resolution/examples/e2e/app-pages-router/.env similarity index 100% rename from examples/e2e/app-pages-router/.env rename to .auto-resolution/examples/e2e/app-pages-router/.env diff --git a/examples/e2e/app-pages-router/.gitignore b/.auto-resolution/examples/e2e/app-pages-router/.gitignore similarity index 100% rename from examples/e2e/app-pages-router/.gitignore rename to .auto-resolution/examples/e2e/app-pages-router/.gitignore diff --git a/examples/e2e/app-pages-router/CHANGELOG.md b/.auto-resolution/examples/e2e/app-pages-router/CHANGELOG.md similarity index 100% rename from examples/e2e/app-pages-router/CHANGELOG.md rename to .auto-resolution/examples/e2e/app-pages-router/CHANGELOG.md diff --git a/examples/e2e/app-pages-router/README.md b/.auto-resolution/examples/e2e/app-pages-router/README.md similarity index 100% rename from examples/e2e/app-pages-router/README.md rename to .auto-resolution/examples/e2e/app-pages-router/README.md diff --git a/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx diff --git a/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx diff --git a/examples/e2e/app-pages-router/app/albums/@modal/default.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/default.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/@modal/default.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/@modal/default.tsx diff --git a/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx diff --git a/examples/e2e/app-pages-router/app/albums/[album]/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/[album]/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/[album]/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/[album]/page.tsx diff --git a/examples/e2e/app-pages-router/app/albums/layout.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/layout.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/layout.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/layout.tsx diff --git a/examples/e2e/app-pages-router/app/albums/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/albums/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/albums/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/albums/page.tsx diff --git a/examples/e2e/app-pages-router/app/api/client/route.ts b/.auto-resolution/examples/e2e/app-pages-router/app/api/client/route.ts similarity index 100% rename from examples/e2e/app-pages-router/app/api/client/route.ts rename to .auto-resolution/examples/e2e/app-pages-router/app/api/client/route.ts diff --git a/examples/e2e/app-pages-router/app/api/host/route.ts b/.auto-resolution/examples/e2e/app-pages-router/app/api/host/route.ts similarity index 100% rename from examples/e2e/app-pages-router/app/api/host/route.ts rename to .auto-resolution/examples/e2e/app-pages-router/app/api/host/route.ts diff --git a/examples/e2e/app-pages-router/app/api/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/api/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/api/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/api/page.tsx diff --git a/examples/e2e/app-pages-router/app/globals.css b/.auto-resolution/examples/e2e/app-pages-router/app/globals.css similarity index 100% rename from examples/e2e/app-pages-router/app/globals.css rename to .auto-resolution/examples/e2e/app-pages-router/app/globals.css diff --git a/examples/e2e/app-pages-router/app/image-optimization/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/image-optimization/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/image-optimization/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/image-optimization/page.tsx diff --git a/examples/e2e/app-pages-router/app/isr/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/isr/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/isr/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/isr/page.tsx diff --git a/examples/e2e/app-pages-router/app/layout.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/layout.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/layout.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/layout.tsx diff --git a/examples/e2e/app-pages-router/app/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/page.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/@a/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/@a/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/@a/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/@a/page.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/@b/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/@b/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/@b/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/@b/page.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/layout.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/layout.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/layout.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/layout.tsx diff --git a/examples/e2e/app-pages-router/app/parallel/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/parallel/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/parallel/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/parallel/page.tsx diff --git a/examples/e2e/app-pages-router/app/redirect-destination/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/redirect-destination/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/redirect-destination/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/redirect-destination/page.tsx diff --git a/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/rewrite-destination/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx diff --git a/examples/e2e/app-pages-router/app/server-actions/client.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/server-actions/client.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/server-actions/client.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/server-actions/client.tsx diff --git a/examples/e2e/app-pages-router/app/server-actions/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/server-actions/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/server-actions/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/server-actions/page.tsx diff --git a/examples/e2e/app-pages-router/app/ssr/layout.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/ssr/layout.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/ssr/layout.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/ssr/layout.tsx diff --git a/examples/e2e/app-pages-router/app/ssr/loading.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/ssr/loading.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/ssr/loading.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/ssr/loading.tsx diff --git a/examples/e2e/app-pages-router/app/ssr/page.tsx b/.auto-resolution/examples/e2e/app-pages-router/app/ssr/page.tsx similarity index 100% rename from examples/e2e/app-pages-router/app/ssr/page.tsx rename to .auto-resolution/examples/e2e/app-pages-router/app/ssr/page.tsx diff --git a/examples/e2e/app-pages-router/e2e/api.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/api.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/api.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/api.test.ts diff --git a/examples/e2e/app-pages-router/e2e/host.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/host.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/host.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/host.test.ts diff --git a/examples/e2e/app-pages-router/e2e/image-optimization.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/image-optimization.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/image-optimization.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/image-optimization.test.ts diff --git a/examples/e2e/app-pages-router/e2e/isr.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/isr.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/isr.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/isr.test.ts diff --git a/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts diff --git a/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts diff --git a/examples/e2e/app-pages-router/e2e/modals.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/modals.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/modals.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/modals.test.ts diff --git a/examples/e2e/app-pages-router/e2e/pages_isr.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/pages_isr.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/pages_isr.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/pages_isr.test.ts diff --git a/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/pages_ssr.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts diff --git a/examples/e2e/app-pages-router/e2e/parallel.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/parallel.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/parallel.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/parallel.test.ts diff --git a/examples/e2e/app-pages-router/e2e/playwright.config.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/playwright.config.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/playwright.config.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/playwright.config.ts diff --git a/examples/e2e/app-pages-router/e2e/serverActions.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/serverActions.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/serverActions.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/serverActions.test.ts diff --git a/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/skip_trailing.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts diff --git a/examples/e2e/app-pages-router/e2e/ssr.test.ts b/.auto-resolution/examples/e2e/app-pages-router/e2e/ssr.test.ts similarity index 100% rename from examples/e2e/app-pages-router/e2e/ssr.test.ts rename to .auto-resolution/examples/e2e/app-pages-router/e2e/ssr.test.ts diff --git a/examples/e2e/app-pages-router/middleware.ts b/.auto-resolution/examples/e2e/app-pages-router/middleware.ts similarity index 100% rename from examples/e2e/app-pages-router/middleware.ts rename to .auto-resolution/examples/e2e/app-pages-router/middleware.ts diff --git a/examples/e2e/app-pages-router/next.config.ts b/.auto-resolution/examples/e2e/app-pages-router/next.config.ts similarity index 100% rename from examples/e2e/app-pages-router/next.config.ts rename to .auto-resolution/examples/e2e/app-pages-router/next.config.ts diff --git a/examples/e2e/app-pages-router/open-next.config.ts b/.auto-resolution/examples/e2e/app-pages-router/open-next.config.ts similarity index 100% rename from examples/e2e/app-pages-router/open-next.config.ts rename to .auto-resolution/examples/e2e/app-pages-router/open-next.config.ts diff --git a/examples/e2e/app-pages-router/package.json b/.auto-resolution/examples/e2e/app-pages-router/package.json similarity index 100% rename from examples/e2e/app-pages-router/package.json rename to .auto-resolution/examples/e2e/app-pages-router/package.json diff --git a/examples/e2e/app-pages-router/pages/_app.tsx b/.auto-resolution/examples/e2e/app-pages-router/pages/_app.tsx similarity index 100% rename from examples/e2e/app-pages-router/pages/_app.tsx rename to .auto-resolution/examples/e2e/app-pages-router/pages/_app.tsx diff --git a/examples/e2e/app-pages-router/pages/_document.tsx b/.auto-resolution/examples/e2e/app-pages-router/pages/_document.tsx similarity index 100% rename from examples/e2e/app-pages-router/pages/_document.tsx rename to .auto-resolution/examples/e2e/app-pages-router/pages/_document.tsx diff --git a/examples/e2e/app-pages-router/pages/api/hello.ts b/.auto-resolution/examples/e2e/app-pages-router/pages/api/hello.ts similarity index 100% rename from examples/e2e/app-pages-router/pages/api/hello.ts rename to .auto-resolution/examples/e2e/app-pages-router/pages/api/hello.ts diff --git a/examples/e2e/app-pages-router/pages/pages_isr/index.tsx b/.auto-resolution/examples/e2e/app-pages-router/pages/pages_isr/index.tsx similarity index 100% rename from examples/e2e/app-pages-router/pages/pages_isr/index.tsx rename to .auto-resolution/examples/e2e/app-pages-router/pages/pages_isr/index.tsx diff --git a/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx b/.auto-resolution/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx similarity index 100% rename from examples/e2e/app-pages-router/pages/pages_ssr/index.tsx rename to .auto-resolution/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx diff --git a/examples/e2e/app-pages-router/postcss.config.js b/.auto-resolution/examples/e2e/app-pages-router/postcss.config.js similarity index 100% rename from examples/e2e/app-pages-router/postcss.config.js rename to .auto-resolution/examples/e2e/app-pages-router/postcss.config.js diff --git a/examples/e2e/app-pages-router/public/favicon.ico b/.auto-resolution/examples/e2e/app-pages-router/public/favicon.ico similarity index 100% rename from examples/e2e/app-pages-router/public/favicon.ico rename to .auto-resolution/examples/e2e/app-pages-router/public/favicon.ico diff --git a/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg b/.auto-resolution/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg similarity index 100% rename from examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg rename to .auto-resolution/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg diff --git a/examples/e2e/app-pages-router/public/static/frank.webp b/.auto-resolution/examples/e2e/app-pages-router/public/static/frank.webp similarity index 100% rename from examples/e2e/app-pages-router/public/static/frank.webp rename to .auto-resolution/examples/e2e/app-pages-router/public/static/frank.webp diff --git a/examples/e2e/app-pages-router/styles/globals.css b/.auto-resolution/examples/e2e/app-pages-router/styles/globals.css similarity index 100% rename from examples/e2e/app-pages-router/styles/globals.css rename to .auto-resolution/examples/e2e/app-pages-router/styles/globals.css diff --git a/examples/e2e/app-pages-router/tailwind.config.ts b/.auto-resolution/examples/e2e/app-pages-router/tailwind.config.ts similarity index 100% rename from examples/e2e/app-pages-router/tailwind.config.ts rename to .auto-resolution/examples/e2e/app-pages-router/tailwind.config.ts diff --git a/examples/e2e/app-pages-router/tsconfig.json b/.auto-resolution/examples/e2e/app-pages-router/tsconfig.json similarity index 100% rename from examples/e2e/app-pages-router/tsconfig.json rename to .auto-resolution/examples/e2e/app-pages-router/tsconfig.json diff --git a/examples/e2e/app-pages-router/wrangler.jsonc b/.auto-resolution/examples/e2e/app-pages-router/wrangler.jsonc similarity index 100% rename from examples/e2e/app-pages-router/wrangler.jsonc rename to .auto-resolution/examples/e2e/app-pages-router/wrangler.jsonc diff --git a/examples/e2e/app-router/.gitignore b/.auto-resolution/examples/e2e/app-router/.gitignore similarity index 100% rename from examples/e2e/app-router/.gitignore rename to .auto-resolution/examples/e2e/app-router/.gitignore diff --git a/examples/e2e/app-router/CHANGELOG.md b/.auto-resolution/examples/e2e/app-router/CHANGELOG.md similarity index 100% rename from examples/e2e/app-router/CHANGELOG.md rename to .auto-resolution/examples/e2e/app-router/CHANGELOG.md diff --git a/examples/e2e/app-router/README.md b/.auto-resolution/examples/e2e/app-router/README.md similarity index 100% rename from examples/e2e/app-router/README.md rename to .auto-resolution/examples/e2e/app-router/README.md diff --git a/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx diff --git a/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx diff --git a/examples/e2e/app-router/app/albums/@modal/default.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/@modal/default.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/@modal/default.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/@modal/default.tsx diff --git a/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/[album]/[song]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx diff --git a/examples/e2e/app-router/app/albums/[album]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/[album]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/[album]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/[album]/page.tsx diff --git a/examples/e2e/app-router/app/albums/layout.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/layout.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/layout.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/layout.tsx diff --git a/examples/e2e/app-router/app/albums/page.tsx b/.auto-resolution/examples/e2e/app-router/app/albums/page.tsx similarity index 100% rename from examples/e2e/app-router/app/albums/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/albums/page.tsx diff --git a/examples/e2e/app-router/app/api/after/revalidate/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/after/revalidate/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/after/revalidate/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/after/revalidate/route.ts diff --git a/examples/e2e/app-router/app/api/after/ssg/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/after/ssg/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/after/ssg/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/after/ssg/route.ts diff --git a/examples/e2e/app-router/app/api/client/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/client/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/client/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/client/route.ts diff --git a/examples/e2e/app-router/app/api/host/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/host/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/host/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/host/route.ts diff --git a/examples/e2e/app-router/app/api/isr/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/isr/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/isr/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/isr/route.ts diff --git a/examples/e2e/app-router/app/api/og/route.tsx b/.auto-resolution/examples/e2e/app-router/app/api/og/route.tsx similarity index 100% rename from examples/e2e/app-router/app/api/og/route.tsx rename to .auto-resolution/examples/e2e/app-router/app/api/og/route.tsx diff --git a/examples/e2e/app-router/app/api/page.tsx b/.auto-resolution/examples/e2e/app-router/app/api/page.tsx similarity index 100% rename from examples/e2e/app-router/app/api/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/api/page.tsx diff --git a/examples/e2e/app-router/app/api/revalidate-path/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/revalidate-path/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/revalidate-path/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/revalidate-path/route.ts diff --git a/examples/e2e/app-router/app/api/revalidate-tag/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/revalidate-tag/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/revalidate-tag/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/revalidate-tag/route.ts diff --git a/examples/e2e/app-router/app/api/sse/route.ts b/.auto-resolution/examples/e2e/app-router/app/api/sse/route.ts similarity index 100% rename from examples/e2e/app-router/app/api/sse/route.ts rename to .auto-resolution/examples/e2e/app-router/app/api/sse/route.ts diff --git a/examples/e2e/app-router/app/config-redirect/page.tsx b/.auto-resolution/examples/e2e/app-router/app/config-redirect/page.tsx similarity index 100% rename from examples/e2e/app-router/app/config-redirect/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/config-redirect/page.tsx diff --git a/examples/e2e/app-router/app/cookies/page.tsx b/.auto-resolution/examples/e2e/app-router/app/cookies/page.tsx similarity index 100% rename from examples/e2e/app-router/app/cookies/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/cookies/page.tsx diff --git a/examples/e2e/app-router/app/globals.css b/.auto-resolution/examples/e2e/app-router/app/globals.css similarity index 100% rename from examples/e2e/app-router/app/globals.css rename to .auto-resolution/examples/e2e/app-router/app/globals.css diff --git a/examples/e2e/app-router/app/headers/page.tsx b/.auto-resolution/examples/e2e/app-router/app/headers/page.tsx similarity index 100% rename from examples/e2e/app-router/app/headers/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/headers/page.tsx diff --git a/examples/e2e/app-router/app/image-optimization/page.tsx b/.auto-resolution/examples/e2e/app-router/app/image-optimization/page.tsx similarity index 100% rename from examples/e2e/app-router/app/image-optimization/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/image-optimization/page.tsx diff --git a/examples/e2e/app-router/app/isr-data-cache/page.tsx b/.auto-resolution/examples/e2e/app-router/app/isr-data-cache/page.tsx similarity index 100% rename from examples/e2e/app-router/app/isr-data-cache/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/isr-data-cache/page.tsx diff --git a/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx diff --git a/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx b/.auto-resolution/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx similarity index 100% rename from examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx diff --git a/examples/e2e/app-router/app/isr/page.tsx b/.auto-resolution/examples/e2e/app-router/app/isr/page.tsx similarity index 100% rename from examples/e2e/app-router/app/isr/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/isr/page.tsx diff --git a/examples/e2e/app-router/app/layout.tsx b/.auto-resolution/examples/e2e/app-router/app/layout.tsx similarity index 100% rename from examples/e2e/app-router/app/layout.tsx rename to .auto-resolution/examples/e2e/app-router/app/layout.tsx diff --git a/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts diff --git a/examples/e2e/app-router/app/methods/get/query/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/get/query/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/get/query/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/get/query/route.ts diff --git a/examples/e2e/app-router/app/methods/get/redirect/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/get/redirect/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/get/redirect/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/get/redirect/route.ts diff --git a/examples/e2e/app-router/app/methods/get/revalidate/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/get/revalidate/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/get/revalidate/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/get/revalidate/route.ts diff --git a/examples/e2e/app-router/app/methods/get/static/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/get/static/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/get/static/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/get/static/route.ts diff --git a/examples/e2e/app-router/app/methods/post/cookies/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/post/cookies/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/post/cookies/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/post/cookies/route.ts diff --git a/examples/e2e/app-router/app/methods/post/formdata/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/post/formdata/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/post/formdata/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/post/formdata/route.ts diff --git a/examples/e2e/app-router/app/methods/route.ts b/.auto-resolution/examples/e2e/app-router/app/methods/route.ts similarity index 100% rename from examples/e2e/app-router/app/methods/route.ts rename to .auto-resolution/examples/e2e/app-router/app/methods/route.ts diff --git a/examples/e2e/app-router/app/og/opengraph-image.tsx b/.auto-resolution/examples/e2e/app-router/app/og/opengraph-image.tsx similarity index 100% rename from examples/e2e/app-router/app/og/opengraph-image.tsx rename to .auto-resolution/examples/e2e/app-router/app/og/opengraph-image.tsx diff --git a/examples/e2e/app-router/app/og/page.tsx b/.auto-resolution/examples/e2e/app-router/app/og/page.tsx similarity index 100% rename from examples/e2e/app-router/app/og/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/og/page.tsx diff --git a/examples/e2e/app-router/app/page.tsx b/.auto-resolution/examples/e2e/app-router/app/page.tsx similarity index 100% rename from examples/e2e/app-router/app/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/page.tsx diff --git a/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/@a/a-page/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx diff --git a/examples/e2e/app-router/app/parallel/@a/page.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/@a/page.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/@a/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/@a/page.tsx diff --git a/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/@b/b-page/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx diff --git a/examples/e2e/app-router/app/parallel/@b/page.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/@b/page.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/@b/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/@b/page.tsx diff --git a/examples/e2e/app-router/app/parallel/layout.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/layout.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/layout.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/layout.tsx diff --git a/examples/e2e/app-router/app/parallel/page.tsx b/.auto-resolution/examples/e2e/app-router/app/parallel/page.tsx similarity index 100% rename from examples/e2e/app-router/app/parallel/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/parallel/page.tsx diff --git a/examples/e2e/app-router/app/redirect-destination/page.tsx b/.auto-resolution/examples/e2e/app-router/app/redirect-destination/page.tsx similarity index 100% rename from examples/e2e/app-router/app/redirect-destination/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/redirect-destination/page.tsx diff --git a/examples/e2e/app-router/app/revalidate-path/page.tsx b/.auto-resolution/examples/e2e/app-router/app/revalidate-path/page.tsx similarity index 100% rename from examples/e2e/app-router/app/revalidate-path/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/revalidate-path/page.tsx diff --git a/examples/e2e/app-router/app/revalidate-tag/layout.tsx b/.auto-resolution/examples/e2e/app-router/app/revalidate-tag/layout.tsx similarity index 100% rename from examples/e2e/app-router/app/revalidate-tag/layout.tsx rename to .auto-resolution/examples/e2e/app-router/app/revalidate-tag/layout.tsx diff --git a/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx b/.auto-resolution/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx similarity index 100% rename from examples/e2e/app-router/app/revalidate-tag/nested/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx diff --git a/examples/e2e/app-router/app/revalidate-tag/page.tsx b/.auto-resolution/examples/e2e/app-router/app/revalidate-tag/page.tsx similarity index 100% rename from examples/e2e/app-router/app/revalidate-tag/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/revalidate-tag/page.tsx diff --git a/examples/e2e/app-router/app/rewrite-destination/page.tsx b/.auto-resolution/examples/e2e/app-router/app/rewrite-destination/page.tsx similarity index 100% rename from examples/e2e/app-router/app/rewrite-destination/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/rewrite-destination/page.tsx diff --git a/examples/e2e/app-router/app/search-query/page.tsx b/.auto-resolution/examples/e2e/app-router/app/search-query/page.tsx similarity index 100% rename from examples/e2e/app-router/app/search-query/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/search-query/page.tsx diff --git a/examples/e2e/app-router/app/server-actions/client.tsx b/.auto-resolution/examples/e2e/app-router/app/server-actions/client.tsx similarity index 100% rename from examples/e2e/app-router/app/server-actions/client.tsx rename to .auto-resolution/examples/e2e/app-router/app/server-actions/client.tsx diff --git a/examples/e2e/app-router/app/server-actions/page.tsx b/.auto-resolution/examples/e2e/app-router/app/server-actions/page.tsx similarity index 100% rename from examples/e2e/app-router/app/server-actions/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/server-actions/page.tsx diff --git a/examples/e2e/app-router/app/sse/page.tsx b/.auto-resolution/examples/e2e/app-router/app/sse/page.tsx similarity index 100% rename from examples/e2e/app-router/app/sse/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/sse/page.tsx diff --git a/examples/e2e/app-router/app/ssr/layout.tsx b/.auto-resolution/examples/e2e/app-router/app/ssr/layout.tsx similarity index 100% rename from examples/e2e/app-router/app/ssr/layout.tsx rename to .auto-resolution/examples/e2e/app-router/app/ssr/layout.tsx diff --git a/examples/e2e/app-router/app/ssr/loading.tsx b/.auto-resolution/examples/e2e/app-router/app/ssr/loading.tsx similarity index 100% rename from examples/e2e/app-router/app/ssr/loading.tsx rename to .auto-resolution/examples/e2e/app-router/app/ssr/loading.tsx diff --git a/examples/e2e/app-router/app/ssr/page.tsx b/.auto-resolution/examples/e2e/app-router/app/ssr/page.tsx similarity index 100% rename from examples/e2e/app-router/app/ssr/page.tsx rename to .auto-resolution/examples/e2e/app-router/app/ssr/page.tsx diff --git a/examples/e2e/app-router/e2e/after.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/after.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/after.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/after.test.ts diff --git a/examples/e2e/app-router/e2e/api.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/api.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/api.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/api.test.ts diff --git a/examples/e2e/app-router/e2e/config.redirect.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/config.redirect.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/config.redirect.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/config.redirect.test.ts diff --git a/examples/e2e/app-router/e2e/headers.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/headers.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/headers.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/headers.test.ts diff --git a/examples/e2e/app-router/e2e/host.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/host.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/host.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/host.test.ts diff --git a/examples/e2e/app-router/e2e/image-optimization.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/image-optimization.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/image-optimization.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/image-optimization.test.ts diff --git a/examples/e2e/app-router/e2e/isr.revalidate.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/isr.revalidate.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/isr.revalidate.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/isr.revalidate.test.ts diff --git a/examples/e2e/app-router/e2e/isr.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/isr.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/isr.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/isr.test.ts diff --git a/examples/e2e/app-router/e2e/methods.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/methods.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/methods.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/methods.test.ts diff --git a/examples/e2e/app-router/e2e/middleware.cookies.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/middleware.cookies.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/middleware.cookies.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/middleware.cookies.test.ts diff --git a/examples/e2e/app-router/e2e/middleware.redirect.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/middleware.redirect.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/middleware.redirect.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/middleware.redirect.test.ts diff --git a/examples/e2e/app-router/e2e/middleware.rewrite.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/middleware.rewrite.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/middleware.rewrite.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/middleware.rewrite.test.ts diff --git a/examples/e2e/app-router/e2e/modals.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/modals.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/modals.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/modals.test.ts diff --git a/examples/e2e/app-router/e2e/og.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/og.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/og.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/og.test.ts diff --git a/examples/e2e/app-router/e2e/parallel.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/parallel.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/parallel.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/parallel.test.ts diff --git a/examples/e2e/app-router/e2e/playwright.config.ts b/.auto-resolution/examples/e2e/app-router/e2e/playwright.config.ts similarity index 100% rename from examples/e2e/app-router/e2e/playwright.config.ts rename to .auto-resolution/examples/e2e/app-router/e2e/playwright.config.ts diff --git a/examples/e2e/app-router/e2e/query.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/query.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/query.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/query.test.ts diff --git a/examples/e2e/app-router/e2e/revalidateTag.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/revalidateTag.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/revalidateTag.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/revalidateTag.test.ts diff --git a/examples/e2e/app-router/e2e/serverActions.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/serverActions.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/serverActions.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/serverActions.test.ts diff --git a/examples/e2e/app-router/e2e/sse.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/sse.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/sse.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/sse.test.ts diff --git a/examples/e2e/app-router/e2e/ssr.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/ssr.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/ssr.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/ssr.test.ts diff --git a/examples/e2e/app-router/e2e/trailing.test.ts b/.auto-resolution/examples/e2e/app-router/e2e/trailing.test.ts similarity index 100% rename from examples/e2e/app-router/e2e/trailing.test.ts rename to .auto-resolution/examples/e2e/app-router/e2e/trailing.test.ts diff --git a/examples/e2e/app-router/middleware.ts b/.auto-resolution/examples/e2e/app-router/middleware.ts similarity index 100% rename from examples/e2e/app-router/middleware.ts rename to .auto-resolution/examples/e2e/app-router/middleware.ts diff --git a/examples/e2e/app-router/next.config.ts b/.auto-resolution/examples/e2e/app-router/next.config.ts similarity index 100% rename from examples/e2e/app-router/next.config.ts rename to .auto-resolution/examples/e2e/app-router/next.config.ts diff --git a/examples/e2e/app-router/open-next.config.ts b/.auto-resolution/examples/e2e/app-router/open-next.config.ts similarity index 100% rename from examples/e2e/app-router/open-next.config.ts rename to .auto-resolution/examples/e2e/app-router/open-next.config.ts diff --git a/examples/e2e/app-router/package.json b/.auto-resolution/examples/e2e/app-router/package.json similarity index 100% rename from examples/e2e/app-router/package.json rename to .auto-resolution/examples/e2e/app-router/package.json diff --git a/examples/e2e/app-router/postcss.config.js b/.auto-resolution/examples/e2e/app-router/postcss.config.js similarity index 100% rename from examples/e2e/app-router/postcss.config.js rename to .auto-resolution/examples/e2e/app-router/postcss.config.js diff --git a/examples/e2e/app-router/public/favicon.ico b/.auto-resolution/examples/e2e/app-router/public/favicon.ico similarity index 100% rename from examples/e2e/app-router/public/favicon.ico rename to .auto-resolution/examples/e2e/app-router/public/favicon.ico diff --git a/examples/e2e/app-router/public/static/corporate_holiday_card.jpg b/.auto-resolution/examples/e2e/app-router/public/static/corporate_holiday_card.jpg similarity index 100% rename from examples/e2e/app-router/public/static/corporate_holiday_card.jpg rename to .auto-resolution/examples/e2e/app-router/public/static/corporate_holiday_card.jpg diff --git a/examples/e2e/app-router/public/static/frank.webp b/.auto-resolution/examples/e2e/app-router/public/static/frank.webp similarity index 100% rename from examples/e2e/app-router/public/static/frank.webp rename to .auto-resolution/examples/e2e/app-router/public/static/frank.webp diff --git a/examples/e2e/app-router/tailwind.config.ts b/.auto-resolution/examples/e2e/app-router/tailwind.config.ts similarity index 100% rename from examples/e2e/app-router/tailwind.config.ts rename to .auto-resolution/examples/e2e/app-router/tailwind.config.ts diff --git a/examples/e2e/app-router/tsconfig.json b/.auto-resolution/examples/e2e/app-router/tsconfig.json similarity index 100% rename from examples/e2e/app-router/tsconfig.json rename to .auto-resolution/examples/e2e/app-router/tsconfig.json diff --git a/examples/e2e/app-router/wrangler.jsonc b/.auto-resolution/examples/e2e/app-router/wrangler.jsonc similarity index 100% rename from examples/e2e/app-router/wrangler.jsonc rename to .auto-resolution/examples/e2e/app-router/wrangler.jsonc diff --git a/examples/e2e/experimental/.gitignore b/.auto-resolution/examples/e2e/experimental/.gitignore similarity index 100% rename from examples/e2e/experimental/.gitignore rename to .auto-resolution/examples/e2e/experimental/.gitignore diff --git a/examples/e2e/experimental/README.md b/.auto-resolution/examples/e2e/experimental/README.md similarity index 100% rename from examples/e2e/experimental/README.md rename to .auto-resolution/examples/e2e/experimental/README.md diff --git a/examples/e2e/experimental/e2e/nodeMiddleware.test.ts b/.auto-resolution/examples/e2e/experimental/e2e/nodeMiddleware.test.ts similarity index 100% rename from examples/e2e/experimental/e2e/nodeMiddleware.test.ts rename to .auto-resolution/examples/e2e/experimental/e2e/nodeMiddleware.test.ts diff --git a/examples/e2e/experimental/e2e/playwright.config.ts b/.auto-resolution/examples/e2e/experimental/e2e/playwright.config.ts similarity index 100% rename from examples/e2e/experimental/e2e/playwright.config.ts rename to .auto-resolution/examples/e2e/experimental/e2e/playwright.config.ts diff --git a/examples/e2e/experimental/e2e/ppr.test.ts b/.auto-resolution/examples/e2e/experimental/e2e/ppr.test.ts similarity index 100% rename from examples/e2e/experimental/e2e/ppr.test.ts rename to .auto-resolution/examples/e2e/experimental/e2e/ppr.test.ts diff --git a/examples/e2e/experimental/e2e/use-cache.test.ts b/.auto-resolution/examples/e2e/experimental/e2e/use-cache.test.ts similarity index 100% rename from examples/e2e/experimental/e2e/use-cache.test.ts rename to .auto-resolution/examples/e2e/experimental/e2e/use-cache.test.ts diff --git a/examples/e2e/experimental/next.config.ts b/.auto-resolution/examples/e2e/experimental/next.config.ts similarity index 100% rename from examples/e2e/experimental/next.config.ts rename to .auto-resolution/examples/e2e/experimental/next.config.ts diff --git a/examples/e2e/experimental/open-next.config.ts b/.auto-resolution/examples/e2e/experimental/open-next.config.ts similarity index 100% rename from examples/e2e/experimental/open-next.config.ts rename to .auto-resolution/examples/e2e/experimental/open-next.config.ts diff --git a/examples/e2e/experimental/package.json b/.auto-resolution/examples/e2e/experimental/package.json similarity index 100% rename from examples/e2e/experimental/package.json rename to .auto-resolution/examples/e2e/experimental/package.json diff --git a/examples/e2e/experimental/src/app/api/revalidate/route.ts b/.auto-resolution/examples/e2e/experimental/src/app/api/revalidate/route.ts similarity index 100% rename from examples/e2e/experimental/src/app/api/revalidate/route.ts rename to .auto-resolution/examples/e2e/experimental/src/app/api/revalidate/route.ts diff --git a/examples/e2e/experimental/src/app/favicon.ico b/.auto-resolution/examples/e2e/experimental/src/app/favicon.ico similarity index 100% rename from examples/e2e/experimental/src/app/favicon.ico rename to .auto-resolution/examples/e2e/experimental/src/app/favicon.ico diff --git a/examples/e2e/experimental/src/app/globals.css b/.auto-resolution/examples/e2e/experimental/src/app/globals.css similarity index 100% rename from examples/e2e/experimental/src/app/globals.css rename to .auto-resolution/examples/e2e/experimental/src/app/globals.css diff --git a/examples/e2e/experimental/src/app/layout.tsx b/.auto-resolution/examples/e2e/experimental/src/app/layout.tsx similarity index 100% rename from examples/e2e/experimental/src/app/layout.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/layout.tsx diff --git a/examples/e2e/experimental/src/app/page.module.css b/.auto-resolution/examples/e2e/experimental/src/app/page.module.css similarity index 100% rename from examples/e2e/experimental/src/app/page.module.css rename to .auto-resolution/examples/e2e/experimental/src/app/page.module.css diff --git a/examples/e2e/experimental/src/app/page.tsx b/.auto-resolution/examples/e2e/experimental/src/app/page.tsx similarity index 100% rename from examples/e2e/experimental/src/app/page.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/page.tsx diff --git a/examples/e2e/experimental/src/app/ppr/page.tsx b/.auto-resolution/examples/e2e/experimental/src/app/ppr/page.tsx similarity index 100% rename from examples/e2e/experimental/src/app/ppr/page.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/ppr/page.tsx diff --git a/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx b/.auto-resolution/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx similarity index 100% rename from examples/e2e/experimental/src/app/use-cache/fetch/page.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx diff --git a/examples/e2e/experimental/src/app/use-cache/isr/page.tsx b/.auto-resolution/examples/e2e/experimental/src/app/use-cache/isr/page.tsx similarity index 100% rename from examples/e2e/experimental/src/app/use-cache/isr/page.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/use-cache/isr/page.tsx diff --git a/examples/e2e/experimental/src/app/use-cache/layout.tsx b/.auto-resolution/examples/e2e/experimental/src/app/use-cache/layout.tsx similarity index 100% rename from examples/e2e/experimental/src/app/use-cache/layout.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/use-cache/layout.tsx diff --git a/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx b/.auto-resolution/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx similarity index 100% rename from examples/e2e/experimental/src/app/use-cache/ssr/page.tsx rename to .auto-resolution/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx diff --git a/examples/e2e/experimental/src/components/cached.tsx b/.auto-resolution/examples/e2e/experimental/src/components/cached.tsx similarity index 100% rename from examples/e2e/experimental/src/components/cached.tsx rename to .auto-resolution/examples/e2e/experimental/src/components/cached.tsx diff --git a/examples/e2e/experimental/src/components/dynamic.tsx b/.auto-resolution/examples/e2e/experimental/src/components/dynamic.tsx similarity index 100% rename from examples/e2e/experimental/src/components/dynamic.tsx rename to .auto-resolution/examples/e2e/experimental/src/components/dynamic.tsx diff --git a/examples/e2e/experimental/src/components/static.tsx b/.auto-resolution/examples/e2e/experimental/src/components/static.tsx similarity index 100% rename from examples/e2e/experimental/src/components/static.tsx rename to .auto-resolution/examples/e2e/experimental/src/components/static.tsx diff --git a/examples/e2e/experimental/src/middleware.ts b/.auto-resolution/examples/e2e/experimental/src/middleware.ts similarity index 100% rename from examples/e2e/experimental/src/middleware.ts rename to .auto-resolution/examples/e2e/experimental/src/middleware.ts diff --git a/examples/e2e/experimental/tsconfig.json b/.auto-resolution/examples/e2e/experimental/tsconfig.json similarity index 100% rename from examples/e2e/experimental/tsconfig.json rename to .auto-resolution/examples/e2e/experimental/tsconfig.json diff --git a/examples/e2e/experimental/wrangler.jsonc b/.auto-resolution/examples/e2e/experimental/wrangler.jsonc similarity index 100% rename from examples/e2e/experimental/wrangler.jsonc rename to .auto-resolution/examples/e2e/experimental/wrangler.jsonc diff --git a/examples/e2e/pages-router/.env.production b/.auto-resolution/examples/e2e/pages-router/.env.production similarity index 100% rename from examples/e2e/pages-router/.env.production rename to .auto-resolution/examples/e2e/pages-router/.env.production diff --git a/examples/e2e/pages-router/.gitignore b/.auto-resolution/examples/e2e/pages-router/.gitignore similarity index 100% rename from examples/e2e/pages-router/.gitignore rename to .auto-resolution/examples/e2e/pages-router/.gitignore diff --git a/examples/e2e/pages-router/README.md b/.auto-resolution/examples/e2e/pages-router/README.md similarity index 100% rename from examples/e2e/pages-router/README.md rename to .auto-resolution/examples/e2e/pages-router/README.md diff --git a/examples/e2e/pages-router/e2e/404.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/404.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/404.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/404.test.ts diff --git a/examples/e2e/pages-router/e2e/amp.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/amp.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/amp.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/amp.test.ts diff --git a/examples/e2e/pages-router/e2e/api.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/api.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/api.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/api.test.ts diff --git a/examples/e2e/pages-router/e2e/data.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/data.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/data.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/data.test.ts diff --git a/examples/e2e/pages-router/e2e/fallback.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/fallback.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/fallback.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/fallback.test.ts diff --git a/examples/e2e/pages-router/e2e/head.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/head.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/head.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/head.test.ts diff --git a/examples/e2e/pages-router/e2e/header.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/header.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/header.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/header.test.ts diff --git a/examples/e2e/pages-router/e2e/i18n.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/i18n.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/i18n.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/i18n.test.ts diff --git a/examples/e2e/pages-router/e2e/isr.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/isr.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/isr.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/isr.test.ts diff --git a/examples/e2e/pages-router/e2e/playwright.config.ts b/.auto-resolution/examples/e2e/pages-router/e2e/playwright.config.ts similarity index 100% rename from examples/e2e/pages-router/e2e/playwright.config.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/playwright.config.ts diff --git a/examples/e2e/pages-router/e2e/redirect.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/redirect.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/redirect.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/redirect.test.ts diff --git a/examples/e2e/pages-router/e2e/revalidate.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/revalidate.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/revalidate.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/revalidate.test.ts diff --git a/examples/e2e/pages-router/e2e/rewrite.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/rewrite.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/rewrite.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/rewrite.test.ts diff --git a/examples/e2e/pages-router/e2e/ssr.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/ssr.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/ssr.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/ssr.test.ts diff --git a/examples/e2e/pages-router/e2e/streaming.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/streaming.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/streaming.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/streaming.test.ts diff --git a/examples/e2e/pages-router/e2e/trailing.test.ts b/.auto-resolution/examples/e2e/pages-router/e2e/trailing.test.ts similarity index 100% rename from examples/e2e/pages-router/e2e/trailing.test.ts rename to .auto-resolution/examples/e2e/pages-router/e2e/trailing.test.ts diff --git a/examples/e2e/pages-router/next.config.ts b/.auto-resolution/examples/e2e/pages-router/next.config.ts similarity index 100% rename from examples/e2e/pages-router/next.config.ts rename to .auto-resolution/examples/e2e/pages-router/next.config.ts diff --git a/examples/e2e/pages-router/open-next.config.ts b/.auto-resolution/examples/e2e/pages-router/open-next.config.ts similarity index 100% rename from examples/e2e/pages-router/open-next.config.ts rename to .auto-resolution/examples/e2e/pages-router/open-next.config.ts diff --git a/examples/e2e/pages-router/package.json b/.auto-resolution/examples/e2e/pages-router/package.json similarity index 100% rename from examples/e2e/pages-router/package.json rename to .auto-resolution/examples/e2e/pages-router/package.json diff --git a/examples/e2e/pages-router/postcss.config.js b/.auto-resolution/examples/e2e/pages-router/postcss.config.js similarity index 100% rename from examples/e2e/pages-router/postcss.config.js rename to .auto-resolution/examples/e2e/pages-router/postcss.config.js diff --git a/examples/e2e/pages-router/public/favicon.ico b/.auto-resolution/examples/e2e/pages-router/public/favicon.ico similarity index 100% rename from examples/e2e/pages-router/public/favicon.ico rename to .auto-resolution/examples/e2e/pages-router/public/favicon.ico diff --git a/examples/e2e/pages-router/public/static/frank.webp b/.auto-resolution/examples/e2e/pages-router/public/static/frank.webp similarity index 100% rename from examples/e2e/pages-router/public/static/frank.webp rename to .auto-resolution/examples/e2e/pages-router/public/static/frank.webp diff --git a/examples/e2e/pages-router/src/middleware.ts b/.auto-resolution/examples/e2e/pages-router/src/middleware.ts similarity index 100% rename from examples/e2e/pages-router/src/middleware.ts rename to .auto-resolution/examples/e2e/pages-router/src/middleware.ts diff --git a/examples/e2e/pages-router/src/pages/_app.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/_app.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/_app.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/_app.tsx diff --git a/examples/e2e/pages-router/src/pages/_document.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/_document.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/_document.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/_document.tsx diff --git a/examples/e2e/pages-router/src/pages/amp/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/amp/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/amp/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/amp/index.tsx diff --git a/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts diff --git a/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts diff --git a/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts diff --git a/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts diff --git a/examples/e2e/pages-router/src/pages/api/hello.ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/hello.ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/hello.ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/hello.ts diff --git a/examples/e2e/pages-router/src/pages/api/query.ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/query.ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/query.ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/query.ts diff --git a/examples/e2e/pages-router/src/pages/api/revalidate.ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/revalidate.ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/revalidate.ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/revalidate.ts diff --git a/examples/e2e/pages-router/src/pages/api/streaming/index.ts b/.auto-resolution/examples/e2e/pages-router/src/pages/api/streaming/index.ts similarity index 100% rename from examples/e2e/pages-router/src/pages/api/streaming/index.ts rename to .auto-resolution/examples/e2e/pages-router/src/pages/api/streaming/index.ts diff --git a/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx diff --git a/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx diff --git a/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx diff --git a/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx diff --git a/examples/e2e/pages-router/src/pages/fallback/[slug].tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/fallback/[slug].tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/fallback/[slug].tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/fallback/[slug].tsx diff --git a/examples/e2e/pages-router/src/pages/head/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/head/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/head/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/head/index.tsx diff --git a/examples/e2e/pages-router/src/pages/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/index.tsx diff --git a/examples/e2e/pages-router/src/pages/isr/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/isr/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/isr/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/isr/index.tsx diff --git a/examples/e2e/pages-router/src/pages/sse/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/sse/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/sse/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/sse/index.tsx diff --git a/examples/e2e/pages-router/src/pages/ssg/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/ssg/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/ssg/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/ssg/index.tsx diff --git a/examples/e2e/pages-router/src/pages/ssr/index.tsx b/.auto-resolution/examples/e2e/pages-router/src/pages/ssr/index.tsx similarity index 100% rename from examples/e2e/pages-router/src/pages/ssr/index.tsx rename to .auto-resolution/examples/e2e/pages-router/src/pages/ssr/index.tsx diff --git a/examples/e2e/pages-router/src/styles/globals.css b/.auto-resolution/examples/e2e/pages-router/src/styles/globals.css similarity index 100% rename from examples/e2e/pages-router/src/styles/globals.css rename to .auto-resolution/examples/e2e/pages-router/src/styles/globals.css diff --git a/examples/e2e/pages-router/tsconfig.json b/.auto-resolution/examples/e2e/pages-router/tsconfig.json similarity index 100% rename from examples/e2e/pages-router/tsconfig.json rename to .auto-resolution/examples/e2e/pages-router/tsconfig.json diff --git a/examples/e2e/pages-router/wrangler.jsonc b/.auto-resolution/examples/e2e/pages-router/wrangler.jsonc similarity index 100% rename from examples/e2e/pages-router/wrangler.jsonc rename to .auto-resolution/examples/e2e/pages-router/wrangler.jsonc diff --git a/examples/e2e/shared/api/index.ts b/.auto-resolution/examples/e2e/shared/api/index.ts similarity index 100% rename from examples/e2e/shared/api/index.ts rename to .auto-resolution/examples/e2e/shared/api/index.ts diff --git a/examples/e2e/shared/api/songs.json b/.auto-resolution/examples/e2e/shared/api/songs.json similarity index 100% rename from examples/e2e/shared/api/songs.json rename to .auto-resolution/examples/e2e/shared/api/songs.json diff --git a/examples/e2e/shared/components/Album/Album.tsx b/.auto-resolution/examples/e2e/shared/components/Album/Album.tsx similarity index 100% rename from examples/e2e/shared/components/Album/Album.tsx rename to .auto-resolution/examples/e2e/shared/components/Album/Album.tsx diff --git a/examples/e2e/shared/components/Album/Song.tsx b/.auto-resolution/examples/e2e/shared/components/Album/Song.tsx similarity index 100% rename from examples/e2e/shared/components/Album/Song.tsx rename to .auto-resolution/examples/e2e/shared/components/Album/Song.tsx diff --git a/examples/e2e/shared/components/Album/index.tsx b/.auto-resolution/examples/e2e/shared/components/Album/index.tsx similarity index 100% rename from examples/e2e/shared/components/Album/index.tsx rename to .auto-resolution/examples/e2e/shared/components/Album/index.tsx diff --git a/examples/e2e/shared/components/Filler/index.tsx b/.auto-resolution/examples/e2e/shared/components/Filler/index.tsx similarity index 100% rename from examples/e2e/shared/components/Filler/index.tsx rename to .auto-resolution/examples/e2e/shared/components/Filler/index.tsx diff --git a/examples/e2e/shared/components/Modal/index.tsx b/.auto-resolution/examples/e2e/shared/components/Modal/index.tsx similarity index 100% rename from examples/e2e/shared/components/Modal/index.tsx rename to .auto-resolution/examples/e2e/shared/components/Modal/index.tsx diff --git a/examples/e2e/shared/components/Nav/index.tsx b/.auto-resolution/examples/e2e/shared/components/Nav/index.tsx similarity index 100% rename from examples/e2e/shared/components/Nav/index.tsx rename to .auto-resolution/examples/e2e/shared/components/Nav/index.tsx diff --git a/examples/e2e/shared/package.json b/.auto-resolution/examples/e2e/shared/package.json similarity index 100% rename from examples/e2e/shared/package.json rename to .auto-resolution/examples/e2e/shared/package.json diff --git a/examples/e2e/shared/sst-env.d.ts b/.auto-resolution/examples/e2e/shared/sst-env.d.ts similarity index 100% rename from examples/e2e/shared/sst-env.d.ts rename to .auto-resolution/examples/e2e/shared/sst-env.d.ts diff --git a/examples/e2e/shared/tsconfig.json b/.auto-resolution/examples/e2e/shared/tsconfig.json similarity index 100% rename from examples/e2e/shared/tsconfig.json rename to .auto-resolution/examples/e2e/shared/tsconfig.json diff --git a/examples/e2e/utils.ts b/.auto-resolution/examples/e2e/utils.ts similarity index 100% rename from examples/e2e/utils.ts rename to .auto-resolution/examples/e2e/utils.ts diff --git a/examples/middleware/.env b/.auto-resolution/examples/middleware/.env similarity index 100% rename from examples/middleware/.env rename to .auto-resolution/examples/middleware/.env diff --git a/examples/middleware/.gitignore b/.auto-resolution/examples/middleware/.gitignore similarity index 100% rename from examples/middleware/.gitignore rename to .auto-resolution/examples/middleware/.gitignore diff --git a/examples/middleware/README.md b/.auto-resolution/examples/middleware/README.md similarity index 100% rename from examples/middleware/README.md rename to .auto-resolution/examples/middleware/README.md diff --git a/examples/middleware/app/about/page.tsx b/.auto-resolution/examples/middleware/app/about/page.tsx similarity index 100% rename from examples/middleware/app/about/page.tsx rename to .auto-resolution/examples/middleware/app/about/page.tsx diff --git a/examples/middleware/app/about2/page.tsx b/.auto-resolution/examples/middleware/app/about2/page.tsx similarity index 100% rename from examples/middleware/app/about2/page.tsx rename to .auto-resolution/examples/middleware/app/about2/page.tsx diff --git a/examples/middleware/app/another/page.tsx b/.auto-resolution/examples/middleware/app/another/page.tsx similarity index 100% rename from examples/middleware/app/another/page.tsx rename to .auto-resolution/examples/middleware/app/another/page.tsx diff --git a/examples/middleware/app/clerk/route.ts b/.auto-resolution/examples/middleware/app/clerk/route.ts similarity index 100% rename from examples/middleware/app/clerk/route.ts rename to .auto-resolution/examples/middleware/app/clerk/route.ts diff --git a/examples/middleware/app/layout.tsx b/.auto-resolution/examples/middleware/app/layout.tsx similarity index 100% rename from examples/middleware/app/layout.tsx rename to .auto-resolution/examples/middleware/app/layout.tsx diff --git a/examples/middleware/app/middleware/page.tsx b/.auto-resolution/examples/middleware/app/middleware/page.tsx similarity index 100% rename from examples/middleware/app/middleware/page.tsx rename to .auto-resolution/examples/middleware/app/middleware/page.tsx diff --git a/examples/middleware/app/page.tsx b/.auto-resolution/examples/middleware/app/page.tsx similarity index 100% rename from examples/middleware/app/page.tsx rename to .auto-resolution/examples/middleware/app/page.tsx diff --git a/examples/middleware/app/redirected/page.tsx b/.auto-resolution/examples/middleware/app/redirected/page.tsx similarity index 100% rename from examples/middleware/app/redirected/page.tsx rename to .auto-resolution/examples/middleware/app/redirected/page.tsx diff --git a/examples/middleware/app/rewrite/page.tsx b/.auto-resolution/examples/middleware/app/rewrite/page.tsx similarity index 100% rename from examples/middleware/app/rewrite/page.tsx rename to .auto-resolution/examples/middleware/app/rewrite/page.tsx diff --git a/examples/middleware/e2e/base.spec.ts b/.auto-resolution/examples/middleware/e2e/base.spec.ts similarity index 100% rename from examples/middleware/e2e/base.spec.ts rename to .auto-resolution/examples/middleware/e2e/base.spec.ts diff --git a/examples/middleware/e2e/cloudflare-context.spec.ts b/.auto-resolution/examples/middleware/e2e/cloudflare-context.spec.ts similarity index 100% rename from examples/middleware/e2e/cloudflare-context.spec.ts rename to .auto-resolution/examples/middleware/e2e/cloudflare-context.spec.ts diff --git a/examples/middleware/e2e/playwright.config.ts b/.auto-resolution/examples/middleware/e2e/playwright.config.ts similarity index 100% rename from examples/middleware/e2e/playwright.config.ts rename to .auto-resolution/examples/middleware/e2e/playwright.config.ts diff --git a/examples/middleware/e2e/playwright.dev.config.ts b/.auto-resolution/examples/middleware/e2e/playwright.dev.config.ts similarity index 100% rename from examples/middleware/e2e/playwright.dev.config.ts rename to .auto-resolution/examples/middleware/e2e/playwright.dev.config.ts diff --git a/examples/middleware/middleware.ts b/.auto-resolution/examples/middleware/middleware.ts similarity index 100% rename from examples/middleware/middleware.ts rename to .auto-resolution/examples/middleware/middleware.ts diff --git a/examples/middleware/next.config.mjs b/.auto-resolution/examples/middleware/next.config.mjs similarity index 100% rename from examples/middleware/next.config.mjs rename to .auto-resolution/examples/middleware/next.config.mjs diff --git a/examples/middleware/open-next.config.ts b/.auto-resolution/examples/middleware/open-next.config.ts similarity index 100% rename from examples/middleware/open-next.config.ts rename to .auto-resolution/examples/middleware/open-next.config.ts diff --git a/examples/middleware/package.json b/.auto-resolution/examples/middleware/package.json similarity index 100% rename from examples/middleware/package.json rename to .auto-resolution/examples/middleware/package.json diff --git a/examples/middleware/public/favicon.ico b/.auto-resolution/examples/middleware/public/favicon.ico similarity index 100% rename from examples/middleware/public/favicon.ico rename to .auto-resolution/examples/middleware/public/favicon.ico diff --git a/examples/middleware/public/vercel.svg b/.auto-resolution/examples/middleware/public/vercel.svg similarity index 100% rename from examples/middleware/public/vercel.svg rename to .auto-resolution/examples/middleware/public/vercel.svg diff --git a/examples/middleware/tsconfig.json b/.auto-resolution/examples/middleware/tsconfig.json similarity index 100% rename from examples/middleware/tsconfig.json rename to .auto-resolution/examples/middleware/tsconfig.json diff --git a/examples/middleware/wrangler.jsonc b/.auto-resolution/examples/middleware/wrangler.jsonc similarity index 100% rename from examples/middleware/wrangler.jsonc rename to .auto-resolution/examples/middleware/wrangler.jsonc diff --git a/examples/next-partial-prerendering/.gitignore b/.auto-resolution/examples/next-partial-prerendering/.gitignore similarity index 100% rename from examples/next-partial-prerendering/.gitignore rename to .auto-resolution/examples/next-partial-prerendering/.gitignore diff --git a/examples/next-partial-prerendering/.prettierrc b/.auto-resolution/examples/next-partial-prerendering/.prettierrc similarity index 100% rename from examples/next-partial-prerendering/.prettierrc rename to .auto-resolution/examples/next-partial-prerendering/.prettierrc diff --git a/examples/next-partial-prerendering/README.md b/.auto-resolution/examples/next-partial-prerendering/README.md similarity index 100% rename from examples/next-partial-prerendering/README.md rename to .auto-resolution/examples/next-partial-prerendering/README.md diff --git a/examples/next-partial-prerendering/app/favicon.ico b/.auto-resolution/examples/next-partial-prerendering/app/favicon.ico similarity index 100% rename from examples/next-partial-prerendering/app/favicon.ico rename to .auto-resolution/examples/next-partial-prerendering/app/favicon.ico diff --git a/examples/next-partial-prerendering/app/layout.tsx b/.auto-resolution/examples/next-partial-prerendering/app/layout.tsx similarity index 100% rename from examples/next-partial-prerendering/app/layout.tsx rename to .auto-resolution/examples/next-partial-prerendering/app/layout.tsx diff --git a/examples/next-partial-prerendering/app/not-found.tsx b/.auto-resolution/examples/next-partial-prerendering/app/not-found.tsx similarity index 100% rename from examples/next-partial-prerendering/app/not-found.tsx rename to .auto-resolution/examples/next-partial-prerendering/app/not-found.tsx diff --git a/examples/next-partial-prerendering/app/opengraph-image.png b/.auto-resolution/examples/next-partial-prerendering/app/opengraph-image.png similarity index 100% rename from examples/next-partial-prerendering/app/opengraph-image.png rename to .auto-resolution/examples/next-partial-prerendering/app/opengraph-image.png diff --git a/examples/next-partial-prerendering/app/page.tsx b/.auto-resolution/examples/next-partial-prerendering/app/page.tsx similarity index 100% rename from examples/next-partial-prerendering/app/page.tsx rename to .auto-resolution/examples/next-partial-prerendering/app/page.tsx diff --git a/examples/next-partial-prerendering/app/styles.tsx b/.auto-resolution/examples/next-partial-prerendering/app/styles.tsx similarity index 100% rename from examples/next-partial-prerendering/app/styles.tsx rename to .auto-resolution/examples/next-partial-prerendering/app/styles.tsx diff --git a/examples/next-partial-prerendering/app/twitter-image.png b/.auto-resolution/examples/next-partial-prerendering/app/twitter-image.png similarity index 100% rename from examples/next-partial-prerendering/app/twitter-image.png rename to .auto-resolution/examples/next-partial-prerendering/app/twitter-image.png diff --git a/examples/next-partial-prerendering/components/add-to-cart.tsx b/.auto-resolution/examples/next-partial-prerendering/components/add-to-cart.tsx similarity index 100% rename from examples/next-partial-prerendering/components/add-to-cart.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/add-to-cart.tsx diff --git a/examples/next-partial-prerendering/components/byline.tsx b/.auto-resolution/examples/next-partial-prerendering/components/byline.tsx similarity index 100% rename from examples/next-partial-prerendering/components/byline.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/byline.tsx diff --git a/examples/next-partial-prerendering/components/cart-count-context.tsx b/.auto-resolution/examples/next-partial-prerendering/components/cart-count-context.tsx similarity index 100% rename from examples/next-partial-prerendering/components/cart-count-context.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/cart-count-context.tsx diff --git a/examples/next-partial-prerendering/components/cart-count.tsx b/.auto-resolution/examples/next-partial-prerendering/components/cart-count.tsx similarity index 100% rename from examples/next-partial-prerendering/components/cart-count.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/cart-count.tsx diff --git a/examples/next-partial-prerendering/components/header.tsx b/.auto-resolution/examples/next-partial-prerendering/components/header.tsx similarity index 100% rename from examples/next-partial-prerendering/components/header.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/header.tsx diff --git a/examples/next-partial-prerendering/components/next-logo.tsx b/.auto-resolution/examples/next-partial-prerendering/components/next-logo.tsx similarity index 100% rename from examples/next-partial-prerendering/components/next-logo.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/next-logo.tsx diff --git a/examples/next-partial-prerendering/components/ping.tsx b/.auto-resolution/examples/next-partial-prerendering/components/ping.tsx similarity index 100% rename from examples/next-partial-prerendering/components/ping.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/ping.tsx diff --git a/examples/next-partial-prerendering/components/pricing.tsx b/.auto-resolution/examples/next-partial-prerendering/components/pricing.tsx similarity index 100% rename from examples/next-partial-prerendering/components/pricing.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/pricing.tsx diff --git a/examples/next-partial-prerendering/components/product-best-seller.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-best-seller.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-best-seller.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-best-seller.tsx diff --git a/examples/next-partial-prerendering/components/product-card.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-card.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-card.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-card.tsx diff --git a/examples/next-partial-prerendering/components/product-currency-symbol.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-currency-symbol.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-currency-symbol.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-currency-symbol.tsx diff --git a/examples/next-partial-prerendering/components/product-deal.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-deal.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-deal.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-deal.tsx diff --git a/examples/next-partial-prerendering/components/product-estimated-arrival.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-estimated-arrival.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-estimated-arrival.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-estimated-arrival.tsx diff --git a/examples/next-partial-prerendering/components/product-lightening-deal.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-lightening-deal.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-lightening-deal.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-lightening-deal.tsx diff --git a/examples/next-partial-prerendering/components/product-low-stock-warning.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-low-stock-warning.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-low-stock-warning.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-low-stock-warning.tsx diff --git a/examples/next-partial-prerendering/components/product-price.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-price.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-price.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-price.tsx diff --git a/examples/next-partial-prerendering/components/product-rating.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-rating.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-rating.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-rating.tsx diff --git a/examples/next-partial-prerendering/components/product-review-card.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-review-card.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-review-card.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-review-card.tsx diff --git a/examples/next-partial-prerendering/components/product-split-payments.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-split-payments.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-split-payments.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-split-payments.tsx diff --git a/examples/next-partial-prerendering/components/product-used-price.tsx b/.auto-resolution/examples/next-partial-prerendering/components/product-used-price.tsx similarity index 100% rename from examples/next-partial-prerendering/components/product-used-price.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/product-used-price.tsx diff --git a/examples/next-partial-prerendering/components/recommended-products.tsx b/.auto-resolution/examples/next-partial-prerendering/components/recommended-products.tsx similarity index 100% rename from examples/next-partial-prerendering/components/recommended-products.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/recommended-products.tsx diff --git a/examples/next-partial-prerendering/components/reviews.tsx b/.auto-resolution/examples/next-partial-prerendering/components/reviews.tsx similarity index 100% rename from examples/next-partial-prerendering/components/reviews.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/reviews.tsx diff --git a/examples/next-partial-prerendering/components/sidebar.tsx b/.auto-resolution/examples/next-partial-prerendering/components/sidebar.tsx similarity index 100% rename from examples/next-partial-prerendering/components/sidebar.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/sidebar.tsx diff --git a/examples/next-partial-prerendering/components/single-product.tsx b/.auto-resolution/examples/next-partial-prerendering/components/single-product.tsx similarity index 100% rename from examples/next-partial-prerendering/components/single-product.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/single-product.tsx diff --git a/examples/next-partial-prerendering/components/vercel-logo.tsx b/.auto-resolution/examples/next-partial-prerendering/components/vercel-logo.tsx similarity index 100% rename from examples/next-partial-prerendering/components/vercel-logo.tsx rename to .auto-resolution/examples/next-partial-prerendering/components/vercel-logo.tsx diff --git a/examples/next-partial-prerendering/e2e/playwright.config.ts b/.auto-resolution/examples/next-partial-prerendering/e2e/playwright.config.ts similarity index 100% rename from examples/next-partial-prerendering/e2e/playwright.config.ts rename to .auto-resolution/examples/next-partial-prerendering/e2e/playwright.config.ts diff --git a/examples/next-partial-prerendering/e2e/ppr.test.ts b/.auto-resolution/examples/next-partial-prerendering/e2e/ppr.test.ts similarity index 100% rename from examples/next-partial-prerendering/e2e/ppr.test.ts rename to .auto-resolution/examples/next-partial-prerendering/e2e/ppr.test.ts diff --git a/examples/next-partial-prerendering/lib/delay.ts b/.auto-resolution/examples/next-partial-prerendering/lib/delay.ts similarity index 100% rename from examples/next-partial-prerendering/lib/delay.ts rename to .auto-resolution/examples/next-partial-prerendering/lib/delay.ts diff --git a/examples/next-partial-prerendering/lib/products.ts b/.auto-resolution/examples/next-partial-prerendering/lib/products.ts similarity index 100% rename from examples/next-partial-prerendering/lib/products.ts rename to .auto-resolution/examples/next-partial-prerendering/lib/products.ts diff --git a/examples/next-partial-prerendering/lib/reviews.ts b/.auto-resolution/examples/next-partial-prerendering/lib/reviews.ts similarity index 100% rename from examples/next-partial-prerendering/lib/reviews.ts rename to .auto-resolution/examples/next-partial-prerendering/lib/reviews.ts diff --git a/examples/next-partial-prerendering/next.config.js b/.auto-resolution/examples/next-partial-prerendering/next.config.js similarity index 100% rename from examples/next-partial-prerendering/next.config.js rename to .auto-resolution/examples/next-partial-prerendering/next.config.js diff --git a/examples/next-partial-prerendering/open-next.config.ts b/.auto-resolution/examples/next-partial-prerendering/open-next.config.ts similarity index 100% rename from examples/next-partial-prerendering/open-next.config.ts rename to .auto-resolution/examples/next-partial-prerendering/open-next.config.ts diff --git a/examples/next-partial-prerendering/package.json b/.auto-resolution/examples/next-partial-prerendering/package.json similarity index 100% rename from examples/next-partial-prerendering/package.json rename to .auto-resolution/examples/next-partial-prerendering/package.json diff --git a/examples/next-partial-prerendering/postcss.config.js b/.auto-resolution/examples/next-partial-prerendering/postcss.config.js similarity index 100% rename from examples/next-partial-prerendering/postcss.config.js rename to .auto-resolution/examples/next-partial-prerendering/postcss.config.js diff --git a/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg diff --git a/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg diff --git a/examples/next-partial-prerendering/public/grid.svg b/.auto-resolution/examples/next-partial-prerendering/public/grid.svg similarity index 100% rename from examples/next-partial-prerendering/public/grid.svg rename to .auto-resolution/examples/next-partial-prerendering/public/grid.svg diff --git a/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg diff --git a/examples/next-partial-prerendering/public/nextjs-icon-light-background.png b/.auto-resolution/examples/next-partial-prerendering/public/nextjs-icon-light-background.png similarity index 100% rename from examples/next-partial-prerendering/public/nextjs-icon-light-background.png rename to .auto-resolution/examples/next-partial-prerendering/public/nextjs-icon-light-background.png diff --git a/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/patrick-OIFgeLnjwrM-unsplash.jpg diff --git a/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/prince-akachi-LWkFHEGpleE-unsplash.jpg diff --git a/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg b/.auto-resolution/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg similarity index 100% rename from examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg rename to .auto-resolution/examples/next-partial-prerendering/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg diff --git a/examples/next-partial-prerendering/tailwind.config.ts b/.auto-resolution/examples/next-partial-prerendering/tailwind.config.ts similarity index 100% rename from examples/next-partial-prerendering/tailwind.config.ts rename to .auto-resolution/examples/next-partial-prerendering/tailwind.config.ts diff --git a/examples/next-partial-prerendering/tsconfig.json b/.auto-resolution/examples/next-partial-prerendering/tsconfig.json similarity index 100% rename from examples/next-partial-prerendering/tsconfig.json rename to .auto-resolution/examples/next-partial-prerendering/tsconfig.json diff --git a/examples/next-partial-prerendering/types/product.d.ts b/.auto-resolution/examples/next-partial-prerendering/types/product.d.ts similarity index 100% rename from examples/next-partial-prerendering/types/product.d.ts rename to .auto-resolution/examples/next-partial-prerendering/types/product.d.ts diff --git a/examples/next-partial-prerendering/types/review.d.ts b/.auto-resolution/examples/next-partial-prerendering/types/review.d.ts similarity index 100% rename from examples/next-partial-prerendering/types/review.d.ts rename to .auto-resolution/examples/next-partial-prerendering/types/review.d.ts diff --git a/examples/next-partial-prerendering/wrangler.jsonc b/.auto-resolution/examples/next-partial-prerendering/wrangler.jsonc similarity index 100% rename from examples/next-partial-prerendering/wrangler.jsonc rename to .auto-resolution/examples/next-partial-prerendering/wrangler.jsonc diff --git a/examples/overrides/d1-tag-next/.gitignore b/.auto-resolution/examples/overrides/d1-tag-next/.gitignore similarity index 100% rename from examples/overrides/d1-tag-next/.gitignore rename to .auto-resolution/examples/overrides/d1-tag-next/.gitignore diff --git a/examples/overrides/d1-tag-next/app/action.ts b/.auto-resolution/examples/overrides/d1-tag-next/app/action.ts similarity index 100% rename from examples/overrides/d1-tag-next/app/action.ts rename to .auto-resolution/examples/overrides/d1-tag-next/app/action.ts diff --git a/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx b/.auto-resolution/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx similarity index 100% rename from examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx rename to .auto-resolution/examples/overrides/d1-tag-next/app/components/revalidationButtons.tsx diff --git a/examples/overrides/d1-tag-next/app/favicon.ico b/.auto-resolution/examples/overrides/d1-tag-next/app/favicon.ico similarity index 100% rename from examples/overrides/d1-tag-next/app/favicon.ico rename to .auto-resolution/examples/overrides/d1-tag-next/app/favicon.ico diff --git a/examples/overrides/d1-tag-next/app/globals.css b/.auto-resolution/examples/overrides/d1-tag-next/app/globals.css similarity index 100% rename from examples/overrides/d1-tag-next/app/globals.css rename to .auto-resolution/examples/overrides/d1-tag-next/app/globals.css diff --git a/examples/overrides/d1-tag-next/app/layout.tsx b/.auto-resolution/examples/overrides/d1-tag-next/app/layout.tsx similarity index 100% rename from examples/overrides/d1-tag-next/app/layout.tsx rename to .auto-resolution/examples/overrides/d1-tag-next/app/layout.tsx diff --git a/examples/overrides/d1-tag-next/app/page.module.css b/.auto-resolution/examples/overrides/d1-tag-next/app/page.module.css similarity index 100% rename from examples/overrides/d1-tag-next/app/page.module.css rename to .auto-resolution/examples/overrides/d1-tag-next/app/page.module.css diff --git a/examples/overrides/d1-tag-next/app/page.tsx b/.auto-resolution/examples/overrides/d1-tag-next/app/page.tsx similarity index 100% rename from examples/overrides/d1-tag-next/app/page.tsx rename to .auto-resolution/examples/overrides/d1-tag-next/app/page.tsx diff --git a/examples/overrides/d1-tag-next/e2e/base.spec.ts b/.auto-resolution/examples/overrides/d1-tag-next/e2e/base.spec.ts similarity index 100% rename from examples/overrides/d1-tag-next/e2e/base.spec.ts rename to .auto-resolution/examples/overrides/d1-tag-next/e2e/base.spec.ts diff --git a/examples/overrides/d1-tag-next/e2e/playwright.config.ts b/.auto-resolution/examples/overrides/d1-tag-next/e2e/playwright.config.ts similarity index 100% rename from examples/overrides/d1-tag-next/e2e/playwright.config.ts rename to .auto-resolution/examples/overrides/d1-tag-next/e2e/playwright.config.ts diff --git a/examples/overrides/d1-tag-next/next.config.ts b/.auto-resolution/examples/overrides/d1-tag-next/next.config.ts similarity index 100% rename from examples/overrides/d1-tag-next/next.config.ts rename to .auto-resolution/examples/overrides/d1-tag-next/next.config.ts diff --git a/examples/overrides/d1-tag-next/open-next.config.ts b/.auto-resolution/examples/overrides/d1-tag-next/open-next.config.ts similarity index 100% rename from examples/overrides/d1-tag-next/open-next.config.ts rename to .auto-resolution/examples/overrides/d1-tag-next/open-next.config.ts diff --git a/examples/overrides/d1-tag-next/package.json b/.auto-resolution/examples/overrides/d1-tag-next/package.json similarity index 100% rename from examples/overrides/d1-tag-next/package.json rename to .auto-resolution/examples/overrides/d1-tag-next/package.json diff --git a/examples/overrides/d1-tag-next/tsconfig.json b/.auto-resolution/examples/overrides/d1-tag-next/tsconfig.json similarity index 100% rename from examples/overrides/d1-tag-next/tsconfig.json rename to .auto-resolution/examples/overrides/d1-tag-next/tsconfig.json diff --git a/examples/overrides/d1-tag-next/wrangler.jsonc b/.auto-resolution/examples/overrides/d1-tag-next/wrangler.jsonc similarity index 100% rename from examples/overrides/d1-tag-next/wrangler.jsonc rename to .auto-resolution/examples/overrides/d1-tag-next/wrangler.jsonc diff --git a/examples/overrides/memory-queue/.gitignore b/.auto-resolution/examples/overrides/memory-queue/.gitignore similarity index 100% rename from examples/overrides/memory-queue/.gitignore rename to .auto-resolution/examples/overrides/memory-queue/.gitignore diff --git a/examples/overrides/memory-queue/app/favicon.ico b/.auto-resolution/examples/overrides/memory-queue/app/favicon.ico similarity index 100% rename from examples/overrides/memory-queue/app/favicon.ico rename to .auto-resolution/examples/overrides/memory-queue/app/favicon.ico diff --git a/examples/overrides/memory-queue/app/globals.css b/.auto-resolution/examples/overrides/memory-queue/app/globals.css similarity index 100% rename from examples/overrides/memory-queue/app/globals.css rename to .auto-resolution/examples/overrides/memory-queue/app/globals.css diff --git a/examples/overrides/memory-queue/app/layout.tsx b/.auto-resolution/examples/overrides/memory-queue/app/layout.tsx similarity index 100% rename from examples/overrides/memory-queue/app/layout.tsx rename to .auto-resolution/examples/overrides/memory-queue/app/layout.tsx diff --git a/examples/overrides/memory-queue/app/page.module.css b/.auto-resolution/examples/overrides/memory-queue/app/page.module.css similarity index 100% rename from examples/overrides/memory-queue/app/page.module.css rename to .auto-resolution/examples/overrides/memory-queue/app/page.module.css diff --git a/examples/overrides/memory-queue/app/page.tsx b/.auto-resolution/examples/overrides/memory-queue/app/page.tsx similarity index 100% rename from examples/overrides/memory-queue/app/page.tsx rename to .auto-resolution/examples/overrides/memory-queue/app/page.tsx diff --git a/examples/overrides/memory-queue/e2e/base.spec.ts b/.auto-resolution/examples/overrides/memory-queue/e2e/base.spec.ts similarity index 100% rename from examples/overrides/memory-queue/e2e/base.spec.ts rename to .auto-resolution/examples/overrides/memory-queue/e2e/base.spec.ts diff --git a/examples/overrides/memory-queue/e2e/playwright.config.ts b/.auto-resolution/examples/overrides/memory-queue/e2e/playwright.config.ts similarity index 100% rename from examples/overrides/memory-queue/e2e/playwright.config.ts rename to .auto-resolution/examples/overrides/memory-queue/e2e/playwright.config.ts diff --git a/examples/overrides/memory-queue/next.config.ts b/.auto-resolution/examples/overrides/memory-queue/next.config.ts similarity index 100% rename from examples/overrides/memory-queue/next.config.ts rename to .auto-resolution/examples/overrides/memory-queue/next.config.ts diff --git a/examples/overrides/memory-queue/open-next.config.ts b/.auto-resolution/examples/overrides/memory-queue/open-next.config.ts similarity index 100% rename from examples/overrides/memory-queue/open-next.config.ts rename to .auto-resolution/examples/overrides/memory-queue/open-next.config.ts diff --git a/examples/overrides/memory-queue/package.json b/.auto-resolution/examples/overrides/memory-queue/package.json similarity index 100% rename from examples/overrides/memory-queue/package.json rename to .auto-resolution/examples/overrides/memory-queue/package.json diff --git a/examples/overrides/memory-queue/tsconfig.json b/.auto-resolution/examples/overrides/memory-queue/tsconfig.json similarity index 100% rename from examples/overrides/memory-queue/tsconfig.json rename to .auto-resolution/examples/overrides/memory-queue/tsconfig.json diff --git a/examples/overrides/memory-queue/wrangler.jsonc b/.auto-resolution/examples/overrides/memory-queue/wrangler.jsonc similarity index 100% rename from examples/overrides/memory-queue/wrangler.jsonc rename to .auto-resolution/examples/overrides/memory-queue/wrangler.jsonc diff --git a/examples/overrides/r2-incremental-cache/.gitignore b/.auto-resolution/examples/overrides/r2-incremental-cache/.gitignore similarity index 100% rename from examples/overrides/r2-incremental-cache/.gitignore rename to .auto-resolution/examples/overrides/r2-incremental-cache/.gitignore diff --git a/examples/overrides/r2-incremental-cache/app/favicon.ico b/.auto-resolution/examples/overrides/r2-incremental-cache/app/favicon.ico similarity index 100% rename from examples/overrides/r2-incremental-cache/app/favicon.ico rename to .auto-resolution/examples/overrides/r2-incremental-cache/app/favicon.ico diff --git a/examples/overrides/r2-incremental-cache/app/globals.css b/.auto-resolution/examples/overrides/r2-incremental-cache/app/globals.css similarity index 100% rename from examples/overrides/r2-incremental-cache/app/globals.css rename to .auto-resolution/examples/overrides/r2-incremental-cache/app/globals.css diff --git a/examples/overrides/r2-incremental-cache/app/layout.tsx b/.auto-resolution/examples/overrides/r2-incremental-cache/app/layout.tsx similarity index 100% rename from examples/overrides/r2-incremental-cache/app/layout.tsx rename to .auto-resolution/examples/overrides/r2-incremental-cache/app/layout.tsx diff --git a/examples/overrides/r2-incremental-cache/app/page.module.css b/.auto-resolution/examples/overrides/r2-incremental-cache/app/page.module.css similarity index 100% rename from examples/overrides/r2-incremental-cache/app/page.module.css rename to .auto-resolution/examples/overrides/r2-incremental-cache/app/page.module.css diff --git a/examples/overrides/r2-incremental-cache/app/page.tsx b/.auto-resolution/examples/overrides/r2-incremental-cache/app/page.tsx similarity index 100% rename from examples/overrides/r2-incremental-cache/app/page.tsx rename to .auto-resolution/examples/overrides/r2-incremental-cache/app/page.tsx diff --git a/examples/overrides/r2-incremental-cache/e2e/base.spec.ts b/.auto-resolution/examples/overrides/r2-incremental-cache/e2e/base.spec.ts similarity index 100% rename from examples/overrides/r2-incremental-cache/e2e/base.spec.ts rename to .auto-resolution/examples/overrides/r2-incremental-cache/e2e/base.spec.ts diff --git a/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts b/.auto-resolution/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts similarity index 100% rename from examples/overrides/r2-incremental-cache/e2e/playwright.config.ts rename to .auto-resolution/examples/overrides/r2-incremental-cache/e2e/playwright.config.ts diff --git a/examples/overrides/r2-incremental-cache/next.config.ts b/.auto-resolution/examples/overrides/r2-incremental-cache/next.config.ts similarity index 100% rename from examples/overrides/r2-incremental-cache/next.config.ts rename to .auto-resolution/examples/overrides/r2-incremental-cache/next.config.ts diff --git a/examples/overrides/r2-incremental-cache/open-next.config.ts b/.auto-resolution/examples/overrides/r2-incremental-cache/open-next.config.ts similarity index 100% rename from examples/overrides/r2-incremental-cache/open-next.config.ts rename to .auto-resolution/examples/overrides/r2-incremental-cache/open-next.config.ts diff --git a/examples/overrides/r2-incremental-cache/package.json b/.auto-resolution/examples/overrides/r2-incremental-cache/package.json similarity index 100% rename from examples/overrides/r2-incremental-cache/package.json rename to .auto-resolution/examples/overrides/r2-incremental-cache/package.json diff --git a/examples/overrides/r2-incremental-cache/tsconfig.json b/.auto-resolution/examples/overrides/r2-incremental-cache/tsconfig.json similarity index 100% rename from examples/overrides/r2-incremental-cache/tsconfig.json rename to .auto-resolution/examples/overrides/r2-incremental-cache/tsconfig.json diff --git a/examples/overrides/r2-incremental-cache/wrangler.jsonc b/.auto-resolution/examples/overrides/r2-incremental-cache/wrangler.jsonc similarity index 100% rename from examples/overrides/r2-incremental-cache/wrangler.jsonc rename to .auto-resolution/examples/overrides/r2-incremental-cache/wrangler.jsonc diff --git a/examples/overrides/static-assets-incremental-cache/.gitignore b/.auto-resolution/examples/overrides/static-assets-incremental-cache/.gitignore similarity index 100% rename from examples/overrides/static-assets-incremental-cache/.gitignore rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/.gitignore diff --git a/examples/overrides/static-assets-incremental-cache/app/action.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/action.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/action.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/action.ts diff --git a/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/components/revalidationButtons.tsx diff --git a/examples/overrides/static-assets-incremental-cache/app/favicon.ico b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/favicon.ico similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/favicon.ico rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/favicon.ico diff --git a/examples/overrides/static-assets-incremental-cache/app/globals.css b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/globals.css similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/globals.css rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/globals.css diff --git a/examples/overrides/static-assets-incremental-cache/app/layout.tsx b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/layout.tsx similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/layout.tsx rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/layout.tsx diff --git a/examples/overrides/static-assets-incremental-cache/app/page.module.css b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/page.module.css similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/page.module.css rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/page.module.css diff --git a/examples/overrides/static-assets-incremental-cache/app/page.tsx b/.auto-resolution/examples/overrides/static-assets-incremental-cache/app/page.tsx similarity index 100% rename from examples/overrides/static-assets-incremental-cache/app/page.tsx rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/app/page.tsx diff --git a/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/e2e/base.spec.ts diff --git a/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/e2e/playwright.config.ts diff --git a/examples/overrides/static-assets-incremental-cache/next-env.d.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/next-env.d.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/next-env.d.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/next-env.d.ts diff --git a/examples/overrides/static-assets-incremental-cache/next.config.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/next.config.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/next.config.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/next.config.ts diff --git a/examples/overrides/static-assets-incremental-cache/open-next.config.ts b/.auto-resolution/examples/overrides/static-assets-incremental-cache/open-next.config.ts similarity index 100% rename from examples/overrides/static-assets-incremental-cache/open-next.config.ts rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/open-next.config.ts diff --git a/examples/overrides/static-assets-incremental-cache/package.json b/.auto-resolution/examples/overrides/static-assets-incremental-cache/package.json similarity index 100% rename from examples/overrides/static-assets-incremental-cache/package.json rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/package.json diff --git a/examples/overrides/static-assets-incremental-cache/tsconfig.json b/.auto-resolution/examples/overrides/static-assets-incremental-cache/tsconfig.json similarity index 100% rename from examples/overrides/static-assets-incremental-cache/tsconfig.json rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/tsconfig.json diff --git a/examples/overrides/static-assets-incremental-cache/wrangler.jsonc b/.auto-resolution/examples/overrides/static-assets-incremental-cache/wrangler.jsonc similarity index 100% rename from examples/overrides/static-assets-incremental-cache/wrangler.jsonc rename to .auto-resolution/examples/overrides/static-assets-incremental-cache/wrangler.jsonc diff --git a/examples/playground14/.dev.vars b/.auto-resolution/examples/playground14/.dev.vars similarity index 100% rename from examples/playground14/.dev.vars rename to .auto-resolution/examples/playground14/.dev.vars diff --git a/examples/playground14/.env.development b/.auto-resolution/examples/playground14/.env.development similarity index 100% rename from examples/playground14/.env.development rename to .auto-resolution/examples/playground14/.env.development diff --git a/examples/playground14/.gitignore b/.auto-resolution/examples/playground14/.gitignore similarity index 100% rename from examples/playground14/.gitignore rename to .auto-resolution/examples/playground14/.gitignore diff --git a/examples/playground14/app/api/buildid/route.ts b/.auto-resolution/examples/playground14/app/api/buildid/route.ts similarity index 100% rename from examples/playground14/app/api/buildid/route.ts rename to .auto-resolution/examples/playground14/app/api/buildid/route.ts diff --git a/examples/playground14/app/api/env/route.ts b/.auto-resolution/examples/playground14/app/api/env/route.ts similarity index 100% rename from examples/playground14/app/api/env/route.ts rename to .auto-resolution/examples/playground14/app/api/env/route.ts diff --git a/examples/playground14/app/api/hello/route.ts b/.auto-resolution/examples/playground14/app/api/hello/route.ts similarity index 100% rename from examples/playground14/app/api/hello/route.ts rename to .auto-resolution/examples/playground14/app/api/hello/route.ts diff --git a/examples/playground14/app/api/instrumentation/route.ts b/.auto-resolution/examples/playground14/app/api/instrumentation/route.ts similarity index 100% rename from examples/playground14/app/api/instrumentation/route.ts rename to .auto-resolution/examples/playground14/app/api/instrumentation/route.ts diff --git a/examples/playground14/app/api/request/route.ts b/.auto-resolution/examples/playground14/app/api/request/route.ts similarity index 100% rename from examples/playground14/app/api/request/route.ts rename to .auto-resolution/examples/playground14/app/api/request/route.ts diff --git a/examples/playground14/app/isr/[id]/dynamic/page.tsx b/.auto-resolution/examples/playground14/app/isr/[id]/dynamic/page.tsx similarity index 100% rename from examples/playground14/app/isr/[id]/dynamic/page.tsx rename to .auto-resolution/examples/playground14/app/isr/[id]/dynamic/page.tsx diff --git a/examples/playground14/app/isr/[id]/no-dynamic/page.tsx b/.auto-resolution/examples/playground14/app/isr/[id]/no-dynamic/page.tsx similarity index 100% rename from examples/playground14/app/isr/[id]/no-dynamic/page.tsx rename to .auto-resolution/examples/playground14/app/isr/[id]/no-dynamic/page.tsx diff --git a/examples/playground14/app/layout.js b/.auto-resolution/examples/playground14/app/layout.js similarity index 100% rename from examples/playground14/app/layout.js rename to .auto-resolution/examples/playground14/app/layout.js diff --git a/examples/playground14/app/og/route.tsx b/.auto-resolution/examples/playground14/app/og/route.tsx similarity index 100% rename from examples/playground14/app/og/route.tsx rename to .auto-resolution/examples/playground14/app/og/route.tsx diff --git a/examples/playground14/app/page.js b/.auto-resolution/examples/playground14/app/page.js similarity index 100% rename from examples/playground14/app/page.js rename to .auto-resolution/examples/playground14/app/page.js diff --git a/examples/playground14/e2e/base.spec.ts b/.auto-resolution/examples/playground14/e2e/base.spec.ts similarity index 100% rename from examples/playground14/e2e/base.spec.ts rename to .auto-resolution/examples/playground14/e2e/base.spec.ts diff --git a/examples/playground14/e2e/cloudflare.spec.ts b/.auto-resolution/examples/playground14/e2e/cloudflare.spec.ts similarity index 100% rename from examples/playground14/e2e/cloudflare.spec.ts rename to .auto-resolution/examples/playground14/e2e/cloudflare.spec.ts diff --git a/examples/playground14/e2e/head.spec.ts b/.auto-resolution/examples/playground14/e2e/head.spec.ts similarity index 100% rename from examples/playground14/e2e/head.spec.ts rename to .auto-resolution/examples/playground14/e2e/head.spec.ts diff --git a/examples/playground14/e2e/instrumentation.spec.ts b/.auto-resolution/examples/playground14/e2e/instrumentation.spec.ts similarity index 100% rename from examples/playground14/e2e/instrumentation.spec.ts rename to .auto-resolution/examples/playground14/e2e/instrumentation.spec.ts diff --git a/examples/playground14/e2e/isr.spec.ts b/.auto-resolution/examples/playground14/e2e/isr.spec.ts similarity index 100% rename from examples/playground14/e2e/isr.spec.ts rename to .auto-resolution/examples/playground14/e2e/isr.spec.ts diff --git a/examples/playground14/e2e/playwright.config.ts b/.auto-resolution/examples/playground14/e2e/playwright.config.ts similarity index 100% rename from examples/playground14/e2e/playwright.config.ts rename to .auto-resolution/examples/playground14/e2e/playwright.config.ts diff --git a/examples/playground14/e2e/playwright.dev.config.ts b/.auto-resolution/examples/playground14/e2e/playwright.dev.config.ts similarity index 100% rename from examples/playground14/e2e/playwright.dev.config.ts rename to .auto-resolution/examples/playground14/e2e/playwright.dev.config.ts diff --git a/examples/playground14/instrumentation.js b/.auto-resolution/examples/playground14/instrumentation.js similarity index 100% rename from examples/playground14/instrumentation.js rename to .auto-resolution/examples/playground14/instrumentation.js diff --git a/examples/playground14/lib/posts.ts b/.auto-resolution/examples/playground14/lib/posts.ts similarity index 100% rename from examples/playground14/lib/posts.ts rename to .auto-resolution/examples/playground14/lib/posts.ts diff --git a/examples/playground14/middleware.js b/.auto-resolution/examples/playground14/middleware.js similarity index 100% rename from examples/playground14/middleware.js rename to .auto-resolution/examples/playground14/middleware.js diff --git a/examples/playground14/next.config.mjs b/.auto-resolution/examples/playground14/next.config.mjs similarity index 100% rename from examples/playground14/next.config.mjs rename to .auto-resolution/examples/playground14/next.config.mjs diff --git a/examples/playground14/open-next.config.ts b/.auto-resolution/examples/playground14/open-next.config.ts similarity index 100% rename from examples/playground14/open-next.config.ts rename to .auto-resolution/examples/playground14/open-next.config.ts diff --git a/examples/playground14/package.json b/.auto-resolution/examples/playground14/package.json similarity index 100% rename from examples/playground14/package.json rename to .auto-resolution/examples/playground14/package.json diff --git a/examples/playground14/pages/api/pages.ts b/.auto-resolution/examples/playground14/pages/api/pages.ts similarity index 100% rename from examples/playground14/pages/api/pages.ts rename to .auto-resolution/examples/playground14/pages/api/pages.ts diff --git a/examples/playground14/pages/head.tsx b/.auto-resolution/examples/playground14/pages/head.tsx similarity index 100% rename from examples/playground14/pages/head.tsx rename to .auto-resolution/examples/playground14/pages/head.tsx diff --git a/examples/playground14/public/.gitkeep b/.auto-resolution/examples/playground14/public/.gitkeep similarity index 100% rename from examples/playground14/public/.gitkeep rename to .auto-resolution/examples/playground14/public/.gitkeep diff --git a/examples/playground14/public/snipp/snipp.webp b/.auto-resolution/examples/playground14/public/snipp/snipp.webp similarity index 100% rename from examples/playground14/public/snipp/snipp.webp rename to .auto-resolution/examples/playground14/public/snipp/snipp.webp diff --git a/examples/playground14/tsconfig.json b/.auto-resolution/examples/playground14/tsconfig.json similarity index 100% rename from examples/playground14/tsconfig.json rename to .auto-resolution/examples/playground14/tsconfig.json diff --git a/examples/playground14/worker-configuration.d.ts b/.auto-resolution/examples/playground14/worker-configuration.d.ts similarity index 100% rename from examples/playground14/worker-configuration.d.ts rename to .auto-resolution/examples/playground14/worker-configuration.d.ts diff --git a/examples/playground14/worker.ts b/.auto-resolution/examples/playground14/worker.ts similarity index 100% rename from examples/playground14/worker.ts rename to .auto-resolution/examples/playground14/worker.ts diff --git a/examples/playground14/wrangler.jsonc b/.auto-resolution/examples/playground14/wrangler.jsonc similarity index 100% rename from examples/playground14/wrangler.jsonc rename to .auto-resolution/examples/playground14/wrangler.jsonc diff --git a/examples/playground15/.dev.vars b/.auto-resolution/examples/playground15/.dev.vars similarity index 100% rename from examples/playground15/.dev.vars rename to .auto-resolution/examples/playground15/.dev.vars diff --git a/examples/playground15/.env.development b/.auto-resolution/examples/playground15/.env.development similarity index 100% rename from examples/playground15/.env.development rename to .auto-resolution/examples/playground15/.env.development diff --git a/examples/playground15/.gitignore b/.auto-resolution/examples/playground15/.gitignore similarity index 100% rename from examples/playground15/.gitignore rename to .auto-resolution/examples/playground15/.gitignore diff --git a/examples/playground15/app/api/buildid/route.ts b/.auto-resolution/examples/playground15/app/api/buildid/route.ts similarity index 100% rename from examples/playground15/app/api/buildid/route.ts rename to .auto-resolution/examples/playground15/app/api/buildid/route.ts diff --git a/examples/playground15/app/api/env/route.ts b/.auto-resolution/examples/playground15/app/api/env/route.ts similarity index 100% rename from examples/playground15/app/api/env/route.ts rename to .auto-resolution/examples/playground15/app/api/env/route.ts diff --git a/examples/playground15/app/api/hello/route.ts b/.auto-resolution/examples/playground15/app/api/hello/route.ts similarity index 100% rename from examples/playground15/app/api/hello/route.ts rename to .auto-resolution/examples/playground15/app/api/hello/route.ts diff --git a/examples/playground15/app/api/instrumentation/route.ts b/.auto-resolution/examples/playground15/app/api/instrumentation/route.ts similarity index 100% rename from examples/playground15/app/api/instrumentation/route.ts rename to .auto-resolution/examples/playground15/app/api/instrumentation/route.ts diff --git a/examples/playground15/app/api/request/route.ts b/.auto-resolution/examples/playground15/app/api/request/route.ts similarity index 100% rename from examples/playground15/app/api/request/route.ts rename to .auto-resolution/examples/playground15/app/api/request/route.ts diff --git a/examples/playground15/app/from-app/page.tsx b/.auto-resolution/examples/playground15/app/from-app/page.tsx similarity index 100% rename from examples/playground15/app/from-app/page.tsx rename to .auto-resolution/examples/playground15/app/from-app/page.tsx diff --git a/examples/playground15/app/isr/[id]/dynamic/page.tsx b/.auto-resolution/examples/playground15/app/isr/[id]/dynamic/page.tsx similarity index 100% rename from examples/playground15/app/isr/[id]/dynamic/page.tsx rename to .auto-resolution/examples/playground15/app/isr/[id]/dynamic/page.tsx diff --git a/examples/playground15/app/isr/[id]/no-dynamic/page.tsx b/.auto-resolution/examples/playground15/app/isr/[id]/no-dynamic/page.tsx similarity index 100% rename from examples/playground15/app/isr/[id]/no-dynamic/page.tsx rename to .auto-resolution/examples/playground15/app/isr/[id]/no-dynamic/page.tsx diff --git a/examples/playground15/app/layout.js b/.auto-resolution/examples/playground15/app/layout.js similarity index 100% rename from examples/playground15/app/layout.js rename to .auto-resolution/examples/playground15/app/layout.js diff --git a/examples/playground15/app/og/route.tsx b/.auto-resolution/examples/playground15/app/og/route.tsx similarity index 100% rename from examples/playground15/app/og/route.tsx rename to .auto-resolution/examples/playground15/app/og/route.tsx diff --git a/examples/playground15/app/other-app/page.tsx b/.auto-resolution/examples/playground15/app/other-app/page.tsx similarity index 100% rename from examples/playground15/app/other-app/page.tsx rename to .auto-resolution/examples/playground15/app/other-app/page.tsx diff --git a/examples/playground15/app/page.js b/.auto-resolution/examples/playground15/app/page.js similarity index 100% rename from examples/playground15/app/page.js rename to .auto-resolution/examples/playground15/app/page.js diff --git a/examples/playground15/data.js b/.auto-resolution/examples/playground15/data.js similarity index 100% rename from examples/playground15/data.js rename to .auto-resolution/examples/playground15/data.js diff --git a/examples/playground15/data.module.css b/.auto-resolution/examples/playground15/data.module.css similarity index 100% rename from examples/playground15/data.module.css rename to .auto-resolution/examples/playground15/data.module.css diff --git a/examples/playground15/e2e/base.spec.ts b/.auto-resolution/examples/playground15/e2e/base.spec.ts similarity index 100% rename from examples/playground15/e2e/base.spec.ts rename to .auto-resolution/examples/playground15/e2e/base.spec.ts diff --git a/examples/playground15/e2e/cloudflare.spec.ts b/.auto-resolution/examples/playground15/e2e/cloudflare.spec.ts similarity index 100% rename from examples/playground15/e2e/cloudflare.spec.ts rename to .auto-resolution/examples/playground15/e2e/cloudflare.spec.ts diff --git a/examples/playground15/e2e/head.spec.ts b/.auto-resolution/examples/playground15/e2e/head.spec.ts similarity index 100% rename from examples/playground15/e2e/head.spec.ts rename to .auto-resolution/examples/playground15/e2e/head.spec.ts diff --git a/examples/playground15/e2e/instrumentation.spec.ts b/.auto-resolution/examples/playground15/e2e/instrumentation.spec.ts similarity index 100% rename from examples/playground15/e2e/instrumentation.spec.ts rename to .auto-resolution/examples/playground15/e2e/instrumentation.spec.ts diff --git a/examples/playground15/e2e/isr.spec.ts b/.auto-resolution/examples/playground15/e2e/isr.spec.ts similarity index 100% rename from examples/playground15/e2e/isr.spec.ts rename to .auto-resolution/examples/playground15/e2e/isr.spec.ts diff --git a/examples/playground15/e2e/playwright.config.ts b/.auto-resolution/examples/playground15/e2e/playwright.config.ts similarity index 100% rename from examples/playground15/e2e/playwright.config.ts rename to .auto-resolution/examples/playground15/e2e/playwright.config.ts diff --git a/examples/playground15/e2e/playwright.dev.config.ts b/.auto-resolution/examples/playground15/e2e/playwright.dev.config.ts similarity index 100% rename from examples/playground15/e2e/playwright.dev.config.ts rename to .auto-resolution/examples/playground15/e2e/playwright.dev.config.ts diff --git a/examples/playground15/instrumentation.js b/.auto-resolution/examples/playground15/instrumentation.js similarity index 100% rename from examples/playground15/instrumentation.js rename to .auto-resolution/examples/playground15/instrumentation.js diff --git a/examples/playground15/lib/posts.ts b/.auto-resolution/examples/playground15/lib/posts.ts similarity index 100% rename from examples/playground15/lib/posts.ts rename to .auto-resolution/examples/playground15/lib/posts.ts diff --git a/examples/playground15/middleware.js b/.auto-resolution/examples/playground15/middleware.js similarity index 100% rename from examples/playground15/middleware.js rename to .auto-resolution/examples/playground15/middleware.js diff --git a/examples/playground15/next.config.mjs b/.auto-resolution/examples/playground15/next.config.mjs similarity index 100% rename from examples/playground15/next.config.mjs rename to .auto-resolution/examples/playground15/next.config.mjs diff --git a/examples/playground15/open-next.config.ts b/.auto-resolution/examples/playground15/open-next.config.ts similarity index 100% rename from examples/playground15/open-next.config.ts rename to .auto-resolution/examples/playground15/open-next.config.ts diff --git a/examples/playground15/package.json b/.auto-resolution/examples/playground15/package.json similarity index 100% rename from examples/playground15/package.json rename to .auto-resolution/examples/playground15/package.json diff --git a/examples/playground15/pages/head.tsx b/.auto-resolution/examples/playground15/pages/head.tsx similarity index 100% rename from examples/playground15/pages/head.tsx rename to .auto-resolution/examples/playground15/pages/head.tsx diff --git a/examples/playground15/public/.gitkeep b/.auto-resolution/examples/playground15/public/.gitkeep similarity index 100% rename from examples/playground15/public/.gitkeep rename to .auto-resolution/examples/playground15/public/.gitkeep diff --git a/examples/playground15/public/test.jpg b/.auto-resolution/examples/playground15/public/test.jpg similarity index 100% rename from examples/playground15/public/test.jpg rename to .auto-resolution/examples/playground15/public/test.jpg diff --git a/examples/playground15/tsconfig.json b/.auto-resolution/examples/playground15/tsconfig.json similarity index 100% rename from examples/playground15/tsconfig.json rename to .auto-resolution/examples/playground15/tsconfig.json diff --git a/examples/playground15/worker-configuration.d.ts b/.auto-resolution/examples/playground15/worker-configuration.d.ts similarity index 100% rename from examples/playground15/worker-configuration.d.ts rename to .auto-resolution/examples/playground15/worker-configuration.d.ts diff --git a/examples/playground15/wrangler.jsonc b/.auto-resolution/examples/playground15/wrangler.jsonc similarity index 100% rename from examples/playground15/wrangler.jsonc rename to .auto-resolution/examples/playground15/wrangler.jsonc diff --git a/examples/prisma/.gitignore b/.auto-resolution/examples/prisma/.gitignore similarity index 100% rename from examples/prisma/.gitignore rename to .auto-resolution/examples/prisma/.gitignore diff --git a/examples/prisma/README.md b/.auto-resolution/examples/prisma/README.md similarity index 100% rename from examples/prisma/README.md rename to .auto-resolution/examples/prisma/README.md diff --git a/examples/prisma/e2e/playwright.config.ts b/.auto-resolution/examples/prisma/e2e/playwright.config.ts similarity index 100% rename from examples/prisma/e2e/playwright.config.ts rename to .auto-resolution/examples/prisma/e2e/playwright.config.ts diff --git a/examples/prisma/e2e/playwright.dev.config.ts b/.auto-resolution/examples/prisma/e2e/playwright.dev.config.ts similarity index 100% rename from examples/prisma/e2e/playwright.dev.config.ts rename to .auto-resolution/examples/prisma/e2e/playwright.dev.config.ts diff --git a/examples/prisma/e2e/prisma.spec.ts b/.auto-resolution/examples/prisma/e2e/prisma.spec.ts similarity index 100% rename from examples/prisma/e2e/prisma.spec.ts rename to .auto-resolution/examples/prisma/e2e/prisma.spec.ts diff --git a/examples/prisma/next.config.ts b/.auto-resolution/examples/prisma/next.config.ts similarity index 100% rename from examples/prisma/next.config.ts rename to .auto-resolution/examples/prisma/next.config.ts diff --git a/examples/prisma/open-next.config.ts b/.auto-resolution/examples/prisma/open-next.config.ts similarity index 100% rename from examples/prisma/open-next.config.ts rename to .auto-resolution/examples/prisma/open-next.config.ts diff --git a/examples/prisma/package.json b/.auto-resolution/examples/prisma/package.json similarity index 100% rename from examples/prisma/package.json rename to .auto-resolution/examples/prisma/package.json diff --git a/examples/prisma/populate.sql b/.auto-resolution/examples/prisma/populate.sql similarity index 100% rename from examples/prisma/populate.sql rename to .auto-resolution/examples/prisma/populate.sql diff --git a/examples/prisma/prisma.config.ts b/.auto-resolution/examples/prisma/prisma.config.ts similarity index 100% rename from examples/prisma/prisma.config.ts rename to .auto-resolution/examples/prisma/prisma.config.ts diff --git a/examples/prisma/schema.prisma b/.auto-resolution/examples/prisma/schema.prisma similarity index 100% rename from examples/prisma/schema.prisma rename to .auto-resolution/examples/prisma/schema.prisma diff --git a/examples/prisma/src/app/favicon.ico b/.auto-resolution/examples/prisma/src/app/favicon.ico similarity index 100% rename from examples/prisma/src/app/favicon.ico rename to .auto-resolution/examples/prisma/src/app/favicon.ico diff --git a/examples/prisma/src/app/globals.css b/.auto-resolution/examples/prisma/src/app/globals.css similarity index 100% rename from examples/prisma/src/app/globals.css rename to .auto-resolution/examples/prisma/src/app/globals.css diff --git a/examples/prisma/src/app/layout.tsx b/.auto-resolution/examples/prisma/src/app/layout.tsx similarity index 100% rename from examples/prisma/src/app/layout.tsx rename to .auto-resolution/examples/prisma/src/app/layout.tsx diff --git a/examples/prisma/src/app/page.module.css b/.auto-resolution/examples/prisma/src/app/page.module.css similarity index 100% rename from examples/prisma/src/app/page.module.css rename to .auto-resolution/examples/prisma/src/app/page.module.css diff --git a/examples/prisma/src/app/page.tsx b/.auto-resolution/examples/prisma/src/app/page.tsx similarity index 100% rename from examples/prisma/src/app/page.tsx rename to .auto-resolution/examples/prisma/src/app/page.tsx diff --git a/examples/prisma/src/lib/db.ts b/.auto-resolution/examples/prisma/src/lib/db.ts similarity index 100% rename from examples/prisma/src/lib/db.ts rename to .auto-resolution/examples/prisma/src/lib/db.ts diff --git a/examples/prisma/tsconfig.json b/.auto-resolution/examples/prisma/tsconfig.json similarity index 100% rename from examples/prisma/tsconfig.json rename to .auto-resolution/examples/prisma/tsconfig.json diff --git a/examples/prisma/worker-configuration.d.ts b/.auto-resolution/examples/prisma/worker-configuration.d.ts similarity index 100% rename from examples/prisma/worker-configuration.d.ts rename to .auto-resolution/examples/prisma/worker-configuration.d.ts diff --git a/examples/prisma/wrangler.jsonc b/.auto-resolution/examples/prisma/wrangler.jsonc similarity index 100% rename from examples/prisma/wrangler.jsonc rename to .auto-resolution/examples/prisma/wrangler.jsonc diff --git a/examples/ssg-app/.dev.vars b/.auto-resolution/examples/ssg-app/.dev.vars similarity index 100% rename from examples/ssg-app/.dev.vars rename to .auto-resolution/examples/ssg-app/.dev.vars diff --git a/examples/ssg-app/.gitignore b/.auto-resolution/examples/ssg-app/.gitignore similarity index 100% rename from examples/ssg-app/.gitignore rename to .auto-resolution/examples/ssg-app/.gitignore diff --git a/examples/ssg-app/app/favicon.ico b/.auto-resolution/examples/ssg-app/app/favicon.ico similarity index 100% rename from examples/ssg-app/app/favicon.ico rename to .auto-resolution/examples/ssg-app/app/favicon.ico diff --git a/examples/ssg-app/app/globals.css b/.auto-resolution/examples/ssg-app/app/globals.css similarity index 100% rename from examples/ssg-app/app/globals.css rename to .auto-resolution/examples/ssg-app/app/globals.css diff --git a/examples/ssg-app/app/layout.tsx b/.auto-resolution/examples/ssg-app/app/layout.tsx similarity index 100% rename from examples/ssg-app/app/layout.tsx rename to .auto-resolution/examples/ssg-app/app/layout.tsx diff --git a/examples/ssg-app/app/page.module.css b/.auto-resolution/examples/ssg-app/app/page.module.css similarity index 100% rename from examples/ssg-app/app/page.module.css rename to .auto-resolution/examples/ssg-app/app/page.module.css diff --git a/examples/ssg-app/app/page.tsx b/.auto-resolution/examples/ssg-app/app/page.tsx similarity index 100% rename from examples/ssg-app/app/page.tsx rename to .auto-resolution/examples/ssg-app/app/page.tsx diff --git a/examples/ssg-app/e2e/base.spec.ts b/.auto-resolution/examples/ssg-app/e2e/base.spec.ts similarity index 100% rename from examples/ssg-app/e2e/base.spec.ts rename to .auto-resolution/examples/ssg-app/e2e/base.spec.ts diff --git a/examples/ssg-app/e2e/playwright.config.ts b/.auto-resolution/examples/ssg-app/e2e/playwright.config.ts similarity index 100% rename from examples/ssg-app/e2e/playwright.config.ts rename to .auto-resolution/examples/ssg-app/e2e/playwright.config.ts diff --git a/examples/ssg-app/next.config.ts b/.auto-resolution/examples/ssg-app/next.config.ts similarity index 100% rename from examples/ssg-app/next.config.ts rename to .auto-resolution/examples/ssg-app/next.config.ts diff --git a/examples/ssg-app/open-next.config.ts b/.auto-resolution/examples/ssg-app/open-next.config.ts similarity index 100% rename from examples/ssg-app/open-next.config.ts rename to .auto-resolution/examples/ssg-app/open-next.config.ts diff --git a/examples/ssg-app/package.json b/.auto-resolution/examples/ssg-app/package.json similarity index 100% rename from examples/ssg-app/package.json rename to .auto-resolution/examples/ssg-app/package.json diff --git a/examples/ssg-app/tsconfig.json b/.auto-resolution/examples/ssg-app/tsconfig.json similarity index 100% rename from examples/ssg-app/tsconfig.json rename to .auto-resolution/examples/ssg-app/tsconfig.json diff --git a/examples/ssg-app/worker-configuration.d.ts b/.auto-resolution/examples/ssg-app/worker-configuration.d.ts similarity index 100% rename from examples/ssg-app/worker-configuration.d.ts rename to .auto-resolution/examples/ssg-app/worker-configuration.d.ts diff --git a/examples/ssg-app/wrangler.jsonc b/.auto-resolution/examples/ssg-app/wrangler.jsonc similarity index 100% rename from examples/ssg-app/wrangler.jsonc rename to .auto-resolution/examples/ssg-app/wrangler.jsonc diff --git a/examples/vercel-blog-starter/.gitignore b/.auto-resolution/examples/vercel-blog-starter/.gitignore similarity index 100% rename from examples/vercel-blog-starter/.gitignore rename to .auto-resolution/examples/vercel-blog-starter/.gitignore diff --git a/examples/vercel-blog-starter/README.md b/.auto-resolution/examples/vercel-blog-starter/README.md similarity index 100% rename from examples/vercel-blog-starter/README.md rename to .auto-resolution/examples/vercel-blog-starter/README.md diff --git a/examples/vercel-blog-starter/_posts/dynamic-routing.md b/.auto-resolution/examples/vercel-blog-starter/_posts/dynamic-routing.md similarity index 100% rename from examples/vercel-blog-starter/_posts/dynamic-routing.md rename to .auto-resolution/examples/vercel-blog-starter/_posts/dynamic-routing.md diff --git a/examples/vercel-blog-starter/_posts/hello-world.md b/.auto-resolution/examples/vercel-blog-starter/_posts/hello-world.md similarity index 100% rename from examples/vercel-blog-starter/_posts/hello-world.md rename to .auto-resolution/examples/vercel-blog-starter/_posts/hello-world.md diff --git a/examples/vercel-blog-starter/_posts/preview.md b/.auto-resolution/examples/vercel-blog-starter/_posts/preview.md similarity index 100% rename from examples/vercel-blog-starter/_posts/preview.md rename to .auto-resolution/examples/vercel-blog-starter/_posts/preview.md diff --git a/examples/vercel-blog-starter/next.config.mjs b/.auto-resolution/examples/vercel-blog-starter/next.config.mjs similarity index 100% rename from examples/vercel-blog-starter/next.config.mjs rename to .auto-resolution/examples/vercel-blog-starter/next.config.mjs diff --git a/examples/vercel-blog-starter/open-next.config.ts b/.auto-resolution/examples/vercel-blog-starter/open-next.config.ts similarity index 100% rename from examples/vercel-blog-starter/open-next.config.ts rename to .auto-resolution/examples/vercel-blog-starter/open-next.config.ts diff --git a/examples/vercel-blog-starter/package.json b/.auto-resolution/examples/vercel-blog-starter/package.json similarity index 100% rename from examples/vercel-blog-starter/package.json rename to .auto-resolution/examples/vercel-blog-starter/package.json diff --git a/examples/vercel-blog-starter/postcss.config.js b/.auto-resolution/examples/vercel-blog-starter/postcss.config.js similarity index 100% rename from examples/vercel-blog-starter/postcss.config.js rename to .auto-resolution/examples/vercel-blog-starter/postcss.config.js diff --git a/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/jj.jpeg diff --git a/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/joe.jpeg diff --git a/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/authors/tim.jpeg diff --git a/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/dynamic-routing/cover.jpg diff --git a/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/hello-world/cover.jpg diff --git a/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg b/.auto-resolution/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg similarity index 100% rename from examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg rename to .auto-resolution/examples/vercel-blog-starter/public/assets/blog/preview/cover.jpg diff --git a/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/android-chrome-192x192.png diff --git a/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/android-chrome-512x512.png diff --git a/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/apple-touch-icon.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/apple-touch-icon.png diff --git a/examples/vercel-blog-starter/public/favicon/browserconfig.xml b/.auto-resolution/examples/vercel-blog-starter/public/favicon/browserconfig.xml similarity index 100% rename from examples/vercel-blog-starter/public/favicon/browserconfig.xml rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/browserconfig.xml diff --git a/examples/vercel-blog-starter/public/favicon/favicon-16x16.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/favicon-16x16.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/favicon-16x16.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/favicon-16x16.png diff --git a/examples/vercel-blog-starter/public/favicon/favicon-32x32.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/favicon-32x32.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/favicon-32x32.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/favicon-32x32.png diff --git a/examples/vercel-blog-starter/public/favicon/favicon.ico b/.auto-resolution/examples/vercel-blog-starter/public/favicon/favicon.ico similarity index 100% rename from examples/vercel-blog-starter/public/favicon/favicon.ico rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/favicon.ico diff --git a/examples/vercel-blog-starter/public/favicon/mstile-150x150.png b/.auto-resolution/examples/vercel-blog-starter/public/favicon/mstile-150x150.png similarity index 100% rename from examples/vercel-blog-starter/public/favicon/mstile-150x150.png rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/mstile-150x150.png diff --git a/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg b/.auto-resolution/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg similarity index 100% rename from examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/safari-pinned-tab.svg diff --git a/examples/vercel-blog-starter/public/favicon/site.webmanifest b/.auto-resolution/examples/vercel-blog-starter/public/favicon/site.webmanifest similarity index 100% rename from examples/vercel-blog-starter/public/favicon/site.webmanifest rename to .auto-resolution/examples/vercel-blog-starter/public/favicon/site.webmanifest diff --git a/examples/vercel-blog-starter/src/app/_components/alert.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/alert.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/alert.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/alert.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/avatar.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/avatar.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/avatar.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/avatar.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/container.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/container.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/container.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/container.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/cover-image.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/cover-image.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/cover-image.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/cover-image.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/date-formatter.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/date-formatter.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/footer.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/footer.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/footer.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/footer.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/header.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/header.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/header.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/header.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/hero-post.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/hero-post.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/hero-post.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/hero-post.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/intro.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/intro.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/intro.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/intro.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/markdown-styles.module.css diff --git a/examples/vercel-blog-starter/src/app/_components/more-stories.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/more-stories.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/more-stories.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/more-stories.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/post-body.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/post-body.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/post-body.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/post-body.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/post-header.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/post-header.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/post-header.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/post-header.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/post-preview.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/post-preview.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/post-preview.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/post-preview.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/post-title.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/post-title.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/post-title.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/post-title.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/section-separator.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/section-separator.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/section-separator.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/section-separator.tsx diff --git a/examples/vercel-blog-starter/src/app/_components/switch.module.css b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/switch.module.css similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/switch.module.css rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/switch.module.css diff --git a/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/_components/theme-switcher.tsx diff --git a/examples/vercel-blog-starter/src/app/globals.css b/.auto-resolution/examples/vercel-blog-starter/src/app/globals.css similarity index 100% rename from examples/vercel-blog-starter/src/app/globals.css rename to .auto-resolution/examples/vercel-blog-starter/src/app/globals.css diff --git a/examples/vercel-blog-starter/src/app/layout.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/layout.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/layout.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/layout.tsx diff --git a/examples/vercel-blog-starter/src/app/page.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/page.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/page.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/page.tsx diff --git a/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx b/.auto-resolution/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx similarity index 100% rename from examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx rename to .auto-resolution/examples/vercel-blog-starter/src/app/posts/[slug]/page.tsx diff --git a/examples/vercel-blog-starter/src/interfaces/author.ts b/.auto-resolution/examples/vercel-blog-starter/src/interfaces/author.ts similarity index 100% rename from examples/vercel-blog-starter/src/interfaces/author.ts rename to .auto-resolution/examples/vercel-blog-starter/src/interfaces/author.ts diff --git a/examples/vercel-blog-starter/src/interfaces/post.ts b/.auto-resolution/examples/vercel-blog-starter/src/interfaces/post.ts similarity index 100% rename from examples/vercel-blog-starter/src/interfaces/post.ts rename to .auto-resolution/examples/vercel-blog-starter/src/interfaces/post.ts diff --git a/examples/vercel-blog-starter/src/lib/api.ts b/.auto-resolution/examples/vercel-blog-starter/src/lib/api.ts similarity index 100% rename from examples/vercel-blog-starter/src/lib/api.ts rename to .auto-resolution/examples/vercel-blog-starter/src/lib/api.ts diff --git a/examples/vercel-blog-starter/src/lib/constants.ts b/.auto-resolution/examples/vercel-blog-starter/src/lib/constants.ts similarity index 100% rename from examples/vercel-blog-starter/src/lib/constants.ts rename to .auto-resolution/examples/vercel-blog-starter/src/lib/constants.ts diff --git a/examples/vercel-blog-starter/src/lib/markdownToHtml.ts b/.auto-resolution/examples/vercel-blog-starter/src/lib/markdownToHtml.ts similarity index 100% rename from examples/vercel-blog-starter/src/lib/markdownToHtml.ts rename to .auto-resolution/examples/vercel-blog-starter/src/lib/markdownToHtml.ts diff --git a/examples/vercel-blog-starter/tailwind.config.ts b/.auto-resolution/examples/vercel-blog-starter/tailwind.config.ts similarity index 100% rename from examples/vercel-blog-starter/tailwind.config.ts rename to .auto-resolution/examples/vercel-blog-starter/tailwind.config.ts diff --git a/examples/vercel-blog-starter/tsconfig.json b/.auto-resolution/examples/vercel-blog-starter/tsconfig.json similarity index 100% rename from examples/vercel-blog-starter/tsconfig.json rename to .auto-resolution/examples/vercel-blog-starter/tsconfig.json diff --git a/examples/vercel-blog-starter/wrangler.jsonc b/.auto-resolution/examples/vercel-blog-starter/wrangler.jsonc similarity index 100% rename from examples/vercel-blog-starter/wrangler.jsonc rename to .auto-resolution/examples/vercel-blog-starter/wrangler.jsonc diff --git a/package.json b/.auto-resolution/package.json similarity index 100% rename from package.json rename to .auto-resolution/package.json diff --git a/packages/cloudflare/.gitignore b/.auto-resolution/packages/cloudflare/.gitignore similarity index 100% rename from packages/cloudflare/.gitignore rename to .auto-resolution/packages/cloudflare/.gitignore diff --git a/packages/cloudflare/CHANGELOG.md b/.auto-resolution/packages/cloudflare/CHANGELOG.md similarity index 100% rename from packages/cloudflare/CHANGELOG.md rename to .auto-resolution/packages/cloudflare/CHANGELOG.md diff --git a/packages/cloudflare/README.md b/.auto-resolution/packages/cloudflare/README.md similarity index 100% rename from packages/cloudflare/README.md rename to .auto-resolution/packages/cloudflare/README.md diff --git a/packages/cloudflare/env.d.ts b/.auto-resolution/packages/cloudflare/env.d.ts similarity index 100% rename from packages/cloudflare/env.d.ts rename to .auto-resolution/packages/cloudflare/env.d.ts diff --git a/packages/cloudflare/eslint.config.mjs b/.auto-resolution/packages/cloudflare/eslint.config.mjs similarity index 100% rename from packages/cloudflare/eslint.config.mjs rename to .auto-resolution/packages/cloudflare/eslint.config.mjs diff --git a/packages/cloudflare/package.json b/.auto-resolution/packages/cloudflare/package.json similarity index 100% rename from packages/cloudflare/package.json rename to .auto-resolution/packages/cloudflare/package.json diff --git a/packages/cloudflare/src/api/cloudflare-context.ts b/.auto-resolution/packages/cloudflare/src/api/cloudflare-context.ts similarity index 100% rename from packages/cloudflare/src/api/cloudflare-context.ts rename to .auto-resolution/packages/cloudflare/src/api/cloudflare-context.ts diff --git a/packages/cloudflare/src/api/config.ts b/.auto-resolution/packages/cloudflare/src/api/config.ts similarity index 100% rename from packages/cloudflare/src/api/config.ts rename to .auto-resolution/packages/cloudflare/src/api/config.ts diff --git a/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.spec.ts diff --git a/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/bucket-cache-purge.ts diff --git a/packages/cloudflare/src/api/durable-objects/queue.spec.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/queue.spec.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/queue.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/queue.spec.ts diff --git a/packages/cloudflare/src/api/durable-objects/queue.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/queue.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/queue.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/queue.ts diff --git a/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.spec.ts diff --git a/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts b/.auto-resolution/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts similarity index 100% rename from packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/durable-objects/sharded-tag-cache.ts diff --git a/packages/cloudflare/src/api/index.ts b/.auto-resolution/packages/cloudflare/src/api/index.ts similarity index 100% rename from packages/cloudflare/src/api/index.ts rename to .auto-resolution/packages/cloudflare/src/api/index.ts diff --git a/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/asset-resolver/index.spec.ts diff --git a/packages/cloudflare/src/api/overrides/asset-resolver/index.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/asset-resolver/index.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/asset-resolver/index.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/asset-resolver/index.ts diff --git a/packages/cloudflare/src/api/overrides/cache-purge/index.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/cache-purge/index.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/cache-purge/index.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/cache-purge/index.ts diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/kv-incremental-cache.ts diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/r2-incremental-cache.ts diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/regional-cache.ts diff --git a/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/incremental-cache/static-assets-incremental-cache.ts diff --git a/packages/cloudflare/src/api/overrides/internal.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/internal.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/internal.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/internal.ts diff --git a/packages/cloudflare/src/api/overrides/queue/do-queue.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/queue/do-queue.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/queue/do-queue.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/queue/do-queue.ts diff --git a/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/queue/memory-queue.spec.ts diff --git a/packages/cloudflare/src/api/overrides/queue/memory-queue.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/queue/memory-queue.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/queue/memory-queue.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/queue/memory-queue.ts diff --git a/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/queue/queue-cache.spec.ts diff --git a/packages/cloudflare/src/api/overrides/queue/queue-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/queue/queue-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/queue/queue-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/queue/queue-cache.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.spec.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/d1-next-tag-cache.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.spec.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/do-sharded-tag-cache.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.spec.ts diff --git a/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts b/.auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts similarity index 100% rename from packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts rename to .auto-resolution/packages/cloudflare/src/api/overrides/tag-cache/tag-cache-filter.ts diff --git a/packages/cloudflare/src/cli/build/build.ts b/.auto-resolution/packages/cloudflare/src/cli/build/build.ts similarity index 100% rename from packages/cloudflare/src/cli/build/build.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/build.ts diff --git a/packages/cloudflare/src/cli/build/bundle-server.ts b/.auto-resolution/packages/cloudflare/src/cli/build/bundle-server.ts similarity index 100% rename from packages/cloudflare/src/cli/build/bundle-server.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/bundle-server.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-cache-assets-manifest.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compile-env-files.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-env-files.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compile-images.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-images.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compile-images.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-images.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compile-init.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-init.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compile-init.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-init.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compile-skew-protection.ts diff --git a/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/compileDurableObjects.ts diff --git a/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts b/.auto-resolution/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts similarity index 100% rename from packages/cloudflare/src/cli/build/open-next/createServerBundle.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/open-next/createServerBundle.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/patch-vercel-og-library.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/vercel-og.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/vercel-og.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/ast/webpack-runtime.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/dynamic-requires.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/find-dir.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/instrumentation.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/load-manifest.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/next-server.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/next-server.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/next-server.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/open-next.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/open-next.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/optional-deps.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/pages-router-context.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/patch-depd-deprecations.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/require-hook.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/require.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/require.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/require.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/require.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/res-revalidate.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/use-cache.spec.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/use-cache.ts diff --git a/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts b/.auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts similarity index 100% rename from packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/patches/plugins/wrangler-external.ts diff --git a/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/copy-package-cli-files.ts diff --git a/packages/cloudflare/src/cli/build/utils/create-config-files.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/create-config-files.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/create-config-files.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/create-config-files.ts diff --git a/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/ensure-cf-config.ts diff --git a/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.spec.ts diff --git a/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/extract-project-env-vars.ts diff --git a/packages/cloudflare/src/cli/build/utils/index.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/index.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/index.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/index.ts diff --git a/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/needs-experimental-react.ts diff --git a/packages/cloudflare/src/cli/build/utils/normalize-path.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/normalize-path.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/normalize-path.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/normalize-path.ts diff --git a/packages/cloudflare/src/cli/build/utils/test-patch.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/test-patch.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/test-patch.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/test-patch.ts diff --git a/packages/cloudflare/src/cli/build/utils/version.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/version.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/version.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/version.ts diff --git a/packages/cloudflare/src/cli/build/utils/workerd.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/workerd.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/workerd.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/workerd.spec.ts diff --git a/packages/cloudflare/src/cli/build/utils/workerd.ts b/.auto-resolution/packages/cloudflare/src/cli/build/utils/workerd.ts similarity index 100% rename from packages/cloudflare/src/cli/build/utils/workerd.ts rename to .auto-resolution/packages/cloudflare/src/cli/build/utils/workerd.ts diff --git a/packages/cloudflare/src/cli/commands/build.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/build.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/build.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/build.ts diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/deploy.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/deploy.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/deploy.ts diff --git a/packages/cloudflare/src/cli/commands/helpers.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/helpers.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/helpers.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/helpers.ts diff --git a/packages/cloudflare/src/cli/commands/populate-cache.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/populate-cache.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/populate-cache.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/populate-cache.spec.ts diff --git a/packages/cloudflare/src/cli/commands/populate-cache.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/populate-cache.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/populate-cache.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/populate-cache.ts diff --git a/packages/cloudflare/src/cli/commands/preview.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/preview.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/preview.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/preview.ts diff --git a/packages/cloudflare/src/cli/commands/setup-cli.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/setup-cli.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/setup-cli.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/setup-cli.ts diff --git a/packages/cloudflare/src/cli/commands/skew-protection.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/skew-protection.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/skew-protection.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/skew-protection.spec.ts diff --git a/packages/cloudflare/src/cli/commands/skew-protection.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/skew-protection.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/skew-protection.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/skew-protection.ts diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/.auto-resolution/packages/cloudflare/src/cli/commands/upload.ts similarity index 100% rename from packages/cloudflare/src/cli/commands/upload.ts rename to .auto-resolution/packages/cloudflare/src/cli/commands/upload.ts diff --git a/packages/cloudflare/src/cli/index.ts b/.auto-resolution/packages/cloudflare/src/cli/index.ts similarity index 100% rename from packages/cloudflare/src/cli/index.ts rename to .auto-resolution/packages/cloudflare/src/cli/index.ts diff --git a/packages/cloudflare/src/cli/project-options.ts b/.auto-resolution/packages/cloudflare/src/cli/project-options.ts similarity index 100% rename from packages/cloudflare/src/cli/project-options.ts rename to .auto-resolution/packages/cloudflare/src/cli/project-options.ts diff --git a/packages/cloudflare/src/cli/templates/images.spec.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/images.spec.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/images.spec.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/images.spec.ts diff --git a/packages/cloudflare/src/cli/templates/images.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/images.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/images.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/images.ts diff --git a/packages/cloudflare/src/cli/templates/init.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/init.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/init.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/init.ts diff --git a/packages/cloudflare/src/cli/templates/shims/empty.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/shims/empty.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/shims/empty.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/shims/empty.ts diff --git a/packages/cloudflare/src/cli/templates/shims/env.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/shims/env.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/shims/env.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/shims/env.ts diff --git a/packages/cloudflare/src/cli/templates/shims/fetch.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/shims/fetch.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/shims/fetch.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/shims/fetch.ts diff --git a/packages/cloudflare/src/cli/templates/shims/throw.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/shims/throw.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/shims/throw.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/shims/throw.ts diff --git a/packages/cloudflare/src/cli/templates/skew-protection.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/skew-protection.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/skew-protection.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/skew-protection.ts diff --git a/packages/cloudflare/src/cli/templates/worker.ts b/.auto-resolution/packages/cloudflare/src/cli/templates/worker.ts similarity index 100% rename from packages/cloudflare/src/cli/templates/worker.ts rename to .auto-resolution/packages/cloudflare/src/cli/templates/worker.ts diff --git a/packages/cloudflare/src/cli/utils/ask-confirmation.ts b/.auto-resolution/packages/cloudflare/src/cli/utils/ask-confirmation.ts similarity index 100% rename from packages/cloudflare/src/cli/utils/ask-confirmation.ts rename to .auto-resolution/packages/cloudflare/src/cli/utils/ask-confirmation.ts diff --git a/packages/cloudflare/src/cli/utils/run-wrangler.ts b/.auto-resolution/packages/cloudflare/src/cli/utils/run-wrangler.ts similarity index 100% rename from packages/cloudflare/src/cli/utils/run-wrangler.ts rename to .auto-resolution/packages/cloudflare/src/cli/utils/run-wrangler.ts diff --git a/packages/cloudflare/src/utils/get-package-templates-dir-path.ts b/.auto-resolution/packages/cloudflare/src/utils/get-package-templates-dir-path.ts similarity index 100% rename from packages/cloudflare/src/utils/get-package-templates-dir-path.ts rename to .auto-resolution/packages/cloudflare/src/utils/get-package-templates-dir-path.ts diff --git a/packages/cloudflare/templates/open-next.config.ts b/.auto-resolution/packages/cloudflare/templates/open-next.config.ts similarity index 100% rename from packages/cloudflare/templates/open-next.config.ts rename to .auto-resolution/packages/cloudflare/templates/open-next.config.ts diff --git a/packages/cloudflare/templates/wrangler.jsonc b/.auto-resolution/packages/cloudflare/templates/wrangler.jsonc similarity index 100% rename from packages/cloudflare/templates/wrangler.jsonc rename to .auto-resolution/packages/cloudflare/templates/wrangler.jsonc diff --git a/packages/cloudflare/tsconfig.json b/.auto-resolution/packages/cloudflare/tsconfig.json similarity index 100% rename from packages/cloudflare/tsconfig.json rename to .auto-resolution/packages/cloudflare/tsconfig.json diff --git a/.auto-resolution/pnpm-lock.yaml b/.auto-resolution/pnpm-lock.yaml new file mode 100644 index 00000000..9568daac --- /dev/null +++ b/.auto-resolution/pnpm-lock.yaml @@ -0,0 +1,21051 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +catalogs: + default: + '@cloudflare/workers-types': + specifier: ^4.20250224.0 + version: 4.20250224.0 + '@dotenvx/dotenvx': + specifier: 1.31.0 + version: 1.31.0 + '@eslint/js': + specifier: ^9.11.1 + version: 9.11.1 + '@playwright/test': + specifier: ^1.51.1 + version: 1.51.1 + '@tsconfig/strictest': + specifier: ^2.0.5 + version: 2.0.5 + '@types/mock-fs': + specifier: ^4.13.4 + version: 4.13.4 + '@types/node': + specifier: ^22.2.0 + version: 22.2.0 + '@types/react': + specifier: ^18 + version: 18.3.3 + '@types/react-dom': + specifier: ^18 + version: 18.3.0 + '@types/yargs': + specifier: ^17.0.33 + version: 17.0.33 + esbuild: + specifier: ^0.25.4 + version: 0.25.4 + eslint: + specifier: ^9.11.1 + version: 9.11.1 + eslint-plugin-import: + specifier: ^2.31.0 + version: 2.31.0 + eslint-plugin-simple-import-sort: + specifier: ^12.1.1 + version: 12.1.1 + eslint-plugin-unicorn: + specifier: ^55.0.0 + version: 55.0.0 + glob: + specifier: ^11.0.0 + version: 11.0.0 + globals: + specifier: ^15.9.0 + version: 15.9.0 + mock-fs: + specifier: ^5.4.1 + version: 5.4.1 + next: + specifier: ~14.2.24 + version: 14.2.24 + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1 + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + tsx: + specifier: ^4.19.2 + version: 4.19.2 + typescript: + specifier: ^5.7.3 + version: 5.7.3 + typescript-eslint: + specifier: ^8.37.0 + version: 8.37.0 + vitest: + specifier: ^2.1.1 + version: 2.1.1 + wrangler: + specifier: ^4.24.4 + version: 4.24.4 + yargs: + specifier: ^18.0.0 + version: 18.0.0 + e2e: + '@types/node': + specifier: 20.17.6 + version: 20.17.6 + '@types/react': + specifier: 19.0.0 + version: 19.0.0 + '@types/react-dom': + specifier: 19.0.0 + version: 19.0.0 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15 + next: + specifier: ~15.3.5 + version: 15.3.5 + postcss: + specifier: 8.4.27 + version: 8.4.27 + react: + specifier: 19.0.0 + version: 19.0.0 + react-dom: + specifier: 19.0.0 + version: 19.0.0 + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + +importers: + + .: + devDependencies: + '@changesets/changelog-github': + specifier: ^0.5.1 + version: 0.5.1 + '@changesets/cli': + specifier: ^2.29.2 + version: 2.29.2 + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + pkg-pr-new: + specifier: ^0.0.51 + version: 0.0.51 + prettier: + specifier: 3.3.3 + version: 3.3.3 + + benchmarking: + devDependencies: + '@tsconfig/strictest': + specifier: 'catalog:' + version: 2.0.5 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + ora: + specifier: ^8.1.0 + version: 8.1.0 + tsx: + specifier: 'catalog:' + version: 4.19.2 + + examples/bugs/gh-119: + dependencies: + next: + specifier: 15.0.4 + version: 15.0.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: ^20 + version: 20.17.6 + '@types/react': + specifier: ^18 + version: 18.3.3 + '@types/react-dom': + specifier: ^18 + version: 18.3.0 + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 15.0.4 + version: 15.0.4(eslint@8.57.1)(typescript@5.7.3) + postcss: + specifier: ^8 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + typescript: + specifier: ^5 + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/bugs/gh-219: + dependencies: + '@hookform/resolvers': + specifier: ^3.9.1 + version: 3.10.0(react-hook-form@7.54.2(react@19.0.0)) + '@libsql/client': + specifier: ^0.14.0 + version: 0.14.0 + '@t3-oss/env-nextjs': + specifier: ^0.11.1 + version: 0.11.1(typescript@5.7.3)(zod@3.24.1) + '@tanstack/react-table': + specifier: ^8.20.6 + version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + better-sqlite3: + specifier: ^11.7.0 + version: 11.8.1 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + drizzle-orm: + specifier: ^0.38.3 + version: 0.38.4(@cloudflare/workers-types@4.20250109.0)(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@prisma/client@6.7.0(prisma@6.7.0(typescript@5.7.3))(typescript@5.7.3))(@types/better-sqlite3@7.6.12)(@types/react@19.0.0)(better-sqlite3@11.8.1)(knex@3.1.0(better-sqlite3@11.8.1)(pg@8.16.0))(pg@8.16.0)(prisma@6.7.0(typescript@5.7.3))(react@19.0.0) + firebase: + specifier: ^11.1.0 + version: 11.2.0 + firebase-admin: + specifier: ^13.0.2 + version: 13.0.2 + lucide-react: + specifier: ^0.469.0 + version: 0.469.0(react@19.0.0) + nanoid: + specifier: ^5.0.9 + version: 5.0.9 + next: + specifier: 15.1.0 + version: 15.1.0(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next-auth: + specifier: ^4.24.11 + version: 4.24.11(next@15.1.0(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next-themes: + specifier: ^0.4.4 + version: 0.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + qrcode.react: + specifier: ^4.2.0 + version: 4.2.0(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + react-hook-form: + specifier: ^7.54.2 + version: 7.54.2(react@19.0.0) + react-icons: + specifier: ^5.4.0 + version: 5.4.0(react@19.0.0) + sonner: + specifier: ^1.7.1 + version: 1.7.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + tailwind-merge: + specifier: ^2.6.0 + version: 2.6.0 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3))) + zod: + specifier: ^3.24.1 + version: 3.24.1 + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20241224.0 + version: 4.20250109.0 + '@eslint/eslintrc': + specifier: ^3 + version: 3.1.0 + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/better-sqlite3': + specifier: ^7.6.12 + version: 7.6.12 + '@types/node': + specifier: ^20 + version: 20.17.6 + '@types/react': + specifier: ^19 + version: 19.0.0 + '@types/react-dom': + specifier: ^19 + version: 19.0.0 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + drizzle-kit: + specifier: ^0.30.1 + version: 0.30.4 + eslint: + specifier: ^9 + version: 9.11.1(jiti@1.21.6) + eslint-config-next: + specifier: 15.1.0 + version: 15.1.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + postcss: + specifier: ^8 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + typescript: + specifier: ^5 + version: 5.7.3 + vercel: + specifier: ^39.2.2 + version: 39.4.2(rollup@4.40.1) + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250109.0) + + examples/bugs/gh-223: + dependencies: + '@aws-sdk/client-s3': + specifier: ^3.721.0 + version: 3.726.1 + '@aws-sdk/s3-request-presigner': + specifier: ^3.721.0 + version: 3.741.0 + next: + specifier: 15.1.3 + version: 15.1.3(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20241224.0 + version: 4.20250109.0 + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: ^22.10.2 + version: 22.12.0 + '@types/react': + specifier: ^19.0.2 + version: 19.0.8 + '@types/react-dom': + specifier: ^19.0.2 + version: 19.0.3(@types/react@19.0.8) + eslint: + specifier: ^9.17.0 + version: 9.19.0(jiti@1.21.6) + eslint-config-next: + specifier: 15.1.3 + version: 15.1.3(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + postcss: + specifier: ^8.4.49 + version: 8.5.1 + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17(ts-node@10.9.1(@types/node@22.12.0)(typescript@5.7.3)) + typescript: + specifier: ^5.7.2 + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250109.0) + + examples/create-next-app: + dependencies: + next: + specifier: 'catalog:' + version: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 'catalog:' + version: 18.3.1 + react-dom: + specifier: 'catalog:' + version: 18.3.1(react@18.3.1) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: 'catalog:' + version: 18.3.3 + '@types/react-dom': + specifier: 'catalog:' + version: 18.3.0 + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 14.2.14 + version: 14.2.14(eslint@8.57.1)(typescript@5.7.3) + postcss: + specifier: ^8 + version: 8.4.31 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.11(ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3)) + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/e2e/app-pages-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: catalog:e2e + version: 20.17.6 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + autoprefixer: + specifier: catalog:e2e + version: 10.4.15(postcss@8.4.27) + postcss: + specifier: catalog:e2e + version: 8.4.27 + tailwindcss: + specifier: catalog:e2e + version: 3.3.3(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + typescript: + specifier: catalog:default + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/e2e/app-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: catalog:e2e + version: 20.17.6 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + autoprefixer: + specifier: catalog:e2e + version: 10.4.15(postcss@8.4.27) + postcss: + specifier: catalog:e2e + version: 8.4.27 + tailwindcss: + specifier: catalog:e2e + version: 3.3.3(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + typescript: + specifier: catalog:default + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/e2e/experimental: + dependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + next: + specifier: 15.4.0-canary.14 + version: 15.4.0-canary.14(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: catalog:e2e + version: 20.17.6 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + typescript: + specifier: catalog:default + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/e2e/pages-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: catalog:e2e + version: 20.17.6 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + autoprefixer: + specifier: catalog:e2e + version: 10.4.15(postcss@8.4.27) + postcss: + specifier: catalog:e2e + version: 8.4.27 + tailwindcss: + specifier: catalog:e2e + version: 3.3.3(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + typescript: + specifier: catalog:default + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/e2e/shared: + dependencies: + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + + examples/middleware: + dependencies: + '@clerk/nextjs': + specifier: 6.9.6 + version: 6.9.6(next@14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: + specifier: 'catalog:' + version: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 'catalog:' + version: 18.3.1 + react-dom: + specifier: 'catalog:' + version: 18.3.1(react@18.3.1) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: 'catalog:' + version: 18.3.3 + '@types/react-dom': + specifier: 'catalog:' + version: 18.3.0 + eslint: + specifier: 'catalog:' + version: 9.11.1(jiti@1.21.6) + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/next-partial-prerendering: + dependencies: + '@heroicons/react': + specifier: 2.1.5 + version: 2.1.5(react@19.0.0-rc-8b08e99e-20240713) + clsx: + specifier: 2.1.1 + version: 2.1.1 + date-fns: + specifier: 3.6.0 + version: 3.6.0 + dinero.js: + specifier: 2.0.0-alpha.8 + version: 2.0.0-alpha.8 + geist: + specifier: 1.3.1 + version: 1.3.1(next@15.0.0-canary.174(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713))(react@19.0.0-rc-8b08e99e-20240713)) + next: + specifier: 15.0.0-canary.174 + version: 15.0.0-canary.174(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713))(react@19.0.0-rc-8b08e99e-20240713) + react: + specifier: 19.0.0-rc-8b08e99e-20240713 + version: 19.0.0-rc-8b08e99e-20240713 + react-dom: + specifier: 19.0.0-rc-8b08e99e-20240713 + version: 19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@tailwindcss/forms': + specifier: 0.5.7 + version: 0.5.7(tailwindcss@3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3))) + '@tailwindcss/typography': + specifier: 0.5.13 + version: 0.5.13(tailwindcss@3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3))) + '@types/node': + specifier: 20.14.10 + version: 20.14.10 + '@types/react': + specifier: 18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: 18.3.0 + version: 18.3.0 + autoprefixer: + specifier: 10.4.19 + version: 10.4.19(postcss@8.4.39) + postcss: + specifier: 8.4.39 + version: 8.4.39 + tailwindcss: + specifier: 3.4.5 + version: 3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)) + typescript: + specifier: 5.5.3 + version: 5.5.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/overrides/d1-tag-next: + dependencies: + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/overrides/memory-queue: + dependencies: + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/overrides/r2-incremental-cache: + dependencies: + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/overrides/static-assets-incremental-cache: + dependencies: + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/playground14: + dependencies: + next: + specifier: 'catalog:' + version: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 'catalog:' + version: 18.3.1 + react-dom: + specifier: 'catalog:' + version: 18.3.1(react@18.3.1) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/playground15: + dependencies: + next: + specifier: ^15.3.5 + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/prisma: + dependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@prisma/adapter-d1': + specifier: ^6.7.0 + version: 6.7.0 + '@prisma/client': + specifier: ^6.7.0 + version: 6.7.0(prisma@6.7.0(typescript@5.7.3))(typescript@5.7.3) + next: + specifier: catalog:e2e + version: 15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: catalog:e2e + version: 19.0.0 + react-dom: + specifier: catalog:e2e + version: 19.0.0(react@19.0.0) + devDependencies: + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: catalog:e2e + version: 19.0.0 + '@types/react-dom': + specifier: catalog:e2e + version: 19.0.0 + prisma: + specifier: ^6.7.0 + version: 6.7.0(typescript@5.7.3) + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/ssg-app: + dependencies: + next: + specifier: 15.1.7 + version: 15.1.7(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@playwright/test': + specifier: 'catalog:' + version: 1.51.1 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: ^19 + version: 19.0.8 + '@types/react-dom': + specifier: ^19 + version: 19.0.3(@types/react@19.0.8) + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + examples/vercel-blog-starter: + dependencies: + classnames: + specifier: ^2.5.1 + version: 2.5.1 + date-fns: + specifier: ^3.6.0 + version: 3.6.0 + gray-matter: + specifier: ^4.0.3 + version: 4.0.3 + next: + specifier: 'catalog:' + version: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 'catalog:' + version: 18.3.1 + react-dom: + specifier: 'catalog:' + version: 18.3.1(react@18.3.1) + remark: + specifier: ^15.0.1 + version: 15.0.1 + remark-html: + specifier: ^16.0.1 + version: 16.0.1 + devDependencies: + '@opennextjs/cloudflare': + specifier: workspace:* + version: link:../../packages/cloudflare + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/react': + specifier: 'catalog:' + version: 18.3.3 + '@types/react-dom': + specifier: 'catalog:' + version: 18.3.0 + autoprefixer: + specifier: ^10.4.19 + version: 10.4.20(postcss@8.4.47) + postcss: + specifier: ^8.4.38 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.4 + version: 3.4.11(ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3)) + typescript: + specifier: 'catalog:' + version: 5.7.3 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + + packages/cloudflare: + dependencies: + '@dotenvx/dotenvx': + specifier: 'catalog:' + version: 1.31.0 + '@opennextjs/aws': + specifier: 3.7.0 + version: 3.7.0 + cloudflare: + specifier: ^4.4.1 + version: 4.4.1 + enquirer: + specifier: ^2.4.1 + version: 2.4.1 + glob: + specifier: 'catalog:' + version: 11.0.0 + ts-tqdm: + specifier: ^0.8.6 + version: 0.8.6 + wrangler: + specifier: 'catalog:' + version: 4.24.4(@cloudflare/workers-types@4.20250224.0) + yargs: + specifier: 'catalog:' + version: 18.0.0 + devDependencies: + '@cloudflare/workers-types': + specifier: 'catalog:' + version: 4.20250224.0 + '@eslint/js': + specifier: 'catalog:' + version: 9.11.1 + '@tsconfig/strictest': + specifier: 'catalog:' + version: 2.0.5 + '@types/mock-fs': + specifier: 'catalog:' + version: 4.13.4 + '@types/node': + specifier: 'catalog:' + version: 22.2.0 + '@types/picomatch': + specifier: ^4.0.0 + version: 4.0.0 + '@types/yargs': + specifier: 'catalog:' + version: 17.0.33 + diff: + specifier: ^8.0.2 + version: 8.0.2 + esbuild: + specifier: 'catalog:' + version: 0.25.4 + eslint: + specifier: 'catalog:' + version: 9.11.1(jiti@1.21.6) + eslint-plugin-import: + specifier: 'catalog:' + version: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-simple-import-sort: + specifier: 'catalog:' + version: 12.1.1(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-unicorn: + specifier: 'catalog:' + version: 55.0.0(eslint@9.11.1(jiti@1.21.6)) + globals: + specifier: 'catalog:' + version: 15.9.0 + mock-fs: + specifier: 'catalog:' + version: 5.4.1 + next: + specifier: 'catalog:' + version: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + picomatch: + specifier: ^4.0.2 + version: 4.0.2 + rimraf: + specifier: 'catalog:' + version: 6.0.1 + typescript: + specifier: 'catalog:' + version: 5.7.3 + typescript-eslint: + specifier: 'catalog:' + version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + vitest: + specifier: 'catalog:' + version: 2.1.1(@edge-runtime/vm@3.2.0)(@types/node@22.2.0)(terser@5.16.9) + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ast-grep/napi-darwin-arm64@0.35.0': + resolution: {integrity: sha512-T+MN4Oinc+sXjXCIHzfxDDWY7r2pKgPxM6zVeVlkMTrJV2mJtyKYBIS+CABhRM6kflps2T2I6l4DGaKV/8Ym9w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@ast-grep/napi-darwin-x64@0.35.0': + resolution: {integrity: sha512-pEYiN6JI1HY2uWhMYJ9+3yIMyVYKuYdFzeD+dL7odA3qzK0o9N9AM3/NOt4ynU2EhufaWCJr0P5NoQ636qN6MQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@ast-grep/napi-linux-arm64-gnu@0.35.0': + resolution: {integrity: sha512-NBuzQngABGKz7lhG08IQb+7nPqUx81Ol37xmS3ZhVSdSgM0mtp93rCbgFTkJcAFE8IMfCHQSg7G4g0Iotz4ABQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@ast-grep/napi-linux-arm64-musl@0.35.0': + resolution: {integrity: sha512-1EcvHPwyWpCL/96LuItBYGfeI5FaMTRvL+dHbO/hL5q1npqbb5qn+ppJwtNOjTPz8tayvgggxVk9T4C2O7taYA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@ast-grep/napi-linux-x64-gnu@0.35.0': + resolution: {integrity: sha512-FDzNdlqmQnsiWXhnLxusw5AOfEcEM+5xtmrnAf3SBRFr86JyWD9qsynnFYC2pnP9hlMfifNH2TTmMpyGJW49Xw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@ast-grep/napi-linux-x64-musl@0.35.0': + resolution: {integrity: sha512-wlmndjfBafT8u5p4DBnoRQyoCSGNuVSz7rT3TqhvlHcPzUouRWMn95epU9B1LNLyjXvr9xHeRjSktyCN28w57Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@ast-grep/napi-win32-arm64-msvc@0.35.0': + resolution: {integrity: sha512-gkhJeYc4rrZLX2icLxalPikTLMR57DuIYLwLr9g+StHYXIsGHrbfrE6Nnbdd8Izfs34ArFCrcwdaMrGlvOPSeg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@ast-grep/napi-win32-ia32-msvc@0.35.0': + resolution: {integrity: sha512-OdUuRa3chHCZ65y+qALfkUjz0W0Eg21YZ9TyPquV5why07M6HAK38mmYGzLxFH6294SvRQhs+FA/rAfbKeH0jA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@ast-grep/napi-win32-x64-msvc@0.35.0': + resolution: {integrity: sha512-pcQRUHqbroTN1oQ56V982a7IZTUUySQYWa2KEyksiifHGuBuitlzcyzFGjT96ThcqD9XW0UVJMvpoF2Qjh006Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@ast-grep/napi@0.35.0': + resolution: {integrity: sha512-3ucaaSxV6fxXoqHrE/rxAvP1THnDdY5jNzGlnvx+JvnY9C/dSRKc0jlRMRz59N3El572+/yNRUUpAV1T9aBJug==} + engines: {node: '>= 10'} + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/ie11-detection@3.0.0': + resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + + '@aws-crypto/sha256-browser@3.0.0': + resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@3.0.0': + resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@3.0.0': + resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@3.0.0': + resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-cloudfront@3.398.0': + resolution: {integrity: sha512-kISKhqN1k48TaMPbLgq9jj7mO2jvbJdhirvfu4JW3jhFhENnkY0oCwTPvR4Q6Ne2as6GFAMo2XZDZq4rxC7YDw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/client-dynamodb@3.840.0': + resolution: {integrity: sha512-eLLKMwORBJ32YyKRo2LhWtYAYoWdnEPZSo6CyD4QUcsOosvPGdJgz4s13O3AmC60Sn43X5g3Zc4vgKvhZCfkUw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-lambda@3.840.0': + resolution: {integrity: sha512-aUKHKWW4Z1nxQ0q/shHkSA278oyv+lRJSvpin1GJXQumDdMKcOuXktmufOCZzjbl6UVw/Pqaw6V1Vo2gda6RdQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-s3@3.726.1': + resolution: {integrity: sha512-UpOGcob87DiuS2d3fW6vDZg94g57mNiOSkzvR/6GOdvBSlUgk8LLwVzGASB71FdKMl1EGEr4MeD5uKH9JsG+dw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sqs@3.840.0': + resolution: {integrity: sha512-e14G4W8hw9uFrKh4w9CNUrIUuAd6sETOuuTQFD7FYPMoZDlNvEcStE53yr0Egw0D0poqNzedKF4aZJH5MzyB9A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso-oidc@3.726.0': + resolution: {integrity: sha512-5JzTX9jwev7+y2Jkzjz0pd1wobB5JQfPOQF3N2DrJ5Pao0/k6uRYwE4NqB0p0HlGrMTDm7xNq7OSPPIPG575Jw==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.726.0 + + '@aws-sdk/client-sso@3.398.0': + resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/client-sso@3.726.0': + resolution: {integrity: sha512-NM5pjv2qglEc4XN3nnDqtqGsSGv1k5YTmzDo3W3pObItHmpS8grSeNfX9zSH+aVl0Q8hE4ZIgvTPNZ+GzwVlqg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso@3.840.0': + resolution: {integrity: sha512-3Zp+FWN2hhmKdpS0Ragi5V2ZPsZNScE3jlbgoJjzjI/roHZqO+e3/+XFN4TlM0DsPKYJNp+1TAjmhxN6rOnfYA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sts@3.398.0': + resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/client-sts@3.726.1': + resolution: {integrity: sha512-qh9Q9Vu1hrM/wMBOBIaskwnE4GTFaZu26Q6WHwyWNfj7J8a40vBxpW16c2vYXHLBtwRKM1be8uRLkmDwghpiNw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.723.0': + resolution: {integrity: sha512-UraXNmvqj3vScSsTkjMwQkhei30BhXlW5WxX6JacMKVtl95c7z0qOXquTWeTalYkFfulfdirUhvSZrl+hcyqTw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.734.0': + resolution: {integrity: sha512-SxnDqf3vobdm50OLyAKfqZetv6zzwnSqwIwd3jrbopxxHKqNIM/I0xcYjD6Tn+mPig+u7iRKb9q3QnEooFTlmg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.840.0': + resolution: {integrity: sha512-x3Zgb39tF1h2XpU+yA4OAAQlW6LVEfXNlSedSYJ7HGKXqA/E9h3rWQVpYfhXXVVsLdYXdNw5KBUkoAoruoZSZA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.398.0': + resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-env@3.723.0': + resolution: {integrity: sha512-OuH2yULYUHTVDUotBoP/9AEUIJPn81GQ/YBtZLoo2QyezRJ2QiO/1epVtbJlhNZRwXrToLEDmQGA2QfC8c7pbA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.840.0': + resolution: {integrity: sha512-EzF6VcJK7XvQ/G15AVEfJzN2mNXU8fcVpXo4bRyr1S6t2q5zx6UPH/XjDbn18xyUmOq01t+r8gG+TmHEVo18fA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.723.0': + resolution: {integrity: sha512-DTsKC6xo/kz/ZSs1IcdbQMTgiYbpGTGEd83kngFc1bzmw7AmK92DBZKNZpumf8R/UfSpTcj9zzUUmrWz1kD0eQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.840.0': + resolution: {integrity: sha512-wbnUiPGLVea6mXbUh04fu+VJmGkQvmToPeTYdHE8eRZq3NRDi3t3WltT+jArLBKD/4NppRpMjf2ju4coMCz91g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.398.0': + resolution: {integrity: sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-ini@3.726.0': + resolution: {integrity: sha512-seTtcKL2+gZX6yK1QRPr5mDJIBOatrpoyrO8D5b8plYtV/PDbDW3mtDJSWFHet29G61ZmlNElyXRqQCXn9WX+A==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.726.0 + + '@aws-sdk/credential-provider-ini@3.840.0': + resolution: {integrity: sha512-7F290BsWydShHb+7InXd+IjJc3mlEIm9I0R57F/Pjl1xZB69MdkhVGCnuETWoBt4g53ktJd6NEjzm/iAhFXFmw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.398.0': + resolution: {integrity: sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-node@3.726.0': + resolution: {integrity: sha512-jjsewBcw/uLi24x8JbnuDjJad4VA9ROCE94uVRbEnGmUEsds75FWOKp3fWZLQlmjLtzsIbJOZLALkZP86liPaw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.840.0': + resolution: {integrity: sha512-KufP8JnxA31wxklLm63evUPSFApGcH8X86z3mv9SRbpCm5ycgWIGVCTXpTOdgq6rPZrwT9pftzv2/b4mV/9clg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.398.0': + resolution: {integrity: sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-process@3.723.0': + resolution: {integrity: sha512-fgupvUjz1+jeoCBA7GMv0L6xEk92IN6VdF4YcFhsgRHlHvNgm7ayaoKQg7pz2JAAhG/3jPX6fp0ASNy+xOhmPA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.840.0': + resolution: {integrity: sha512-HkDQWHy8tCI4A0Ps2NVtuVYMv9cB4y/IuD/TdOsqeRIAT12h8jDb98BwQPNLAImAOwOWzZJ8Cu0xtSpX7CQhMw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.398.0': + resolution: {integrity: sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-sso@3.726.0': + resolution: {integrity: sha512-WxkN76WeB08j2yw7jUH9yCMPxmT9eBFd9ZA/aACG7yzOIlsz7gvG3P2FQ0tVg25GHM0E4PdU3p/ByTOawzcOAg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.840.0': + resolution: {integrity: sha512-2qgdtdd6R0Z1y0KL8gzzwFUGmhBHSUx4zy85L2XV1CXhpRNwV71SVWJqLDVV5RVWVf9mg50Pm3AWrUC0xb0pcA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.398.0': + resolution: {integrity: sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.723.0': + resolution: {integrity: sha512-tl7pojbFbr3qLcOE6xWaNCf1zEfZrIdSJtOPeSXfV/thFMMAvIjgf3YN6Zo1a6cxGee8zrV/C8PgOH33n+Ev/A==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@aws-sdk/client-sts': ^3.723.0 + + '@aws-sdk/credential-provider-web-identity@3.840.0': + resolution: {integrity: sha512-dpEeVXG8uNZSmVXReE4WP0lwoioX2gstk4RnUgrdUE3YaPq8A+hJiVAyc3h+cjDeIqfbsQbZm9qFetKC2LF9dQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/endpoint-cache@3.804.0': + resolution: {integrity: sha512-TQVDkA/lV6ua75ELZaichMzlp6x7tDa1bqdy/+0ZftmODPtKXuOOEcJxmdN7Ui/YRo1gkRz2D9txYy7IlNg1Og==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.726.0': + resolution: {integrity: sha512-vpaP80rZqwu0C3ELayIcRIW84/nd1tadeoqllT+N9TDshuEvq4UJ+w47OBHB7RkHFJoc79lXXNYle0fdQdaE/A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-endpoint-discovery@3.840.0': + resolution: {integrity: sha512-IJDShY5NOg9luTE8h4o2Bm+gsPnHIU0tVWCjMz8vZMLevYjKdIsatcXiu3huTOjKSnelzC9fBHfU6KKsHmjjBQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.723.0': + resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.723.0': + resolution: {integrity: sha512-JY76mrUCLa0FHeMZp8X9+KK6uEuZaRZaQrlgq6zkXX/3udukH0T3YdFC+Y9uw5ddbiwZ5+KwgmlhnPpiXKfP4g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.398.0': + resolution: {integrity: sha512-m+5laWdBaxIZK2ko0OwcCHJZJ5V1MgEIt8QVQ3k4/kOkN9ICjevOYmba751pHoTnbOYB7zQd6D2OT3EYEEsUcA==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-host-header@3.723.0': + resolution: {integrity: sha512-LLVzLvk299pd7v4jN9yOSaWDZDfH0SnBPb6q+FDPaOCMGBY8kuwQso7e/ozIKSmZHRMGO3IZrflasHM+rI+2YQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.840.0': + resolution: {integrity: sha512-ub+hXJAbAje94+Ya6c6eL7sYujoE8D4Bumu1NUI8TXjUhVVn0HzVWQjpRLshdLsUp1AW7XyeJaxyajRaJQ8+Xg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-location-constraint@3.723.0': + resolution: {integrity: sha512-inp9tyrdRWjGOMu1rzli8i2gTo0P4X6L7nNRXNTKfyPNZcBimZ4H0H1B671JofSI5isaklVy5r4pvv2VjjLSHw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.398.0': + resolution: {integrity: sha512-CiJjW+FL12elS6Pn7/UVjVK8HWHhXMfvHZvOwx/Qkpy340sIhkuzOO6fZEruECDTZhl2Wqn81XdJ1ZQ4pRKpCg==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-logger@3.723.0': + resolution: {integrity: sha512-chASQfDG5NJ8s5smydOEnNK7N0gDMyuPbx7dYYcm1t/PKtnVfvWF+DHCTrRC2Ej76gLJVCVizlAJKM8v8Kg3cg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.840.0': + resolution: {integrity: sha512-lSV8FvjpdllpGaRspywss4CtXV8M7NNNH+2/j86vMH+YCOZ6fu2T/TyFd/tHwZ92vDfHctWkRbQxg0bagqwovA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.398.0': + resolution: {integrity: sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.723.0': + resolution: {integrity: sha512-7usZMtoynT9/jxL/rkuDOFQ0C2mhXl4yCm67Rg7GNTstl67u7w5WN1aIRImMeztaKlw8ExjoTyo6WTs1Kceh7A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.840.0': + resolution: {integrity: sha512-Gu7lGDyfddyhIkj1Z1JtrY5NHb5+x/CRiB87GjaSrKxkDaydtX2CU977JIABtt69l9wLbcGDIQ+W0uJ5xPof7g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.723.0': + resolution: {integrity: sha512-wfjOvNJVp8LDWhq4wO5jtSMb8Vgf4tNlR7QTEQfoYc6AGU3WlK5xyUQcpfcpwytEhQTN9u0cJLQpSyXDO+qSCw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.740.0': + resolution: {integrity: sha512-VML9TzNoQdAs5lSPQSEgZiPgMUSz2H7SltaLb9g4tHwKK5xQoTq5WcDd6V1d2aPxSN5Q2Q63aiVUBby6MdUN/Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-sqs@3.840.0': + resolution: {integrity: sha512-NJVSWkidhfKvU8CTqK17mJnP2IPuJxgbjbSHm3gmvamuewTM291cdgU/xM8eKhHfiF8Us8P7rji3ZhoOzz797w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-sts@3.398.0': + resolution: {integrity: sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-signing@3.398.0': + resolution: {integrity: sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-ssec@3.723.0': + resolution: {integrity: sha512-Bs+8RAeSMik6ZYCGSDJzJieGsDDh2fRbh1HQG94T8kpwBXVxMYihm6e9Xp2cyl+w9fyyCnh0IdCKChP/DvrdhA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.398.0': + resolution: {integrity: sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/middleware-user-agent@3.726.0': + resolution: {integrity: sha512-hZvzuE5S0JmFie1r68K2wQvJbzyxJFdzltj9skgnnwdvLe8F/tz7MqLkm28uV0m4jeHk0LpiBo6eZaPkQiwsZQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.840.0': + resolution: {integrity: sha512-hiiMf7BP5ZkAFAvWRcK67Mw/g55ar7OCrvrynC92hunx/xhMkrgSLM0EXIZ1oTn3uql9kH/qqGF0nqsK6K555A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.840.0': + resolution: {integrity: sha512-LXYYo9+n4hRqnRSIMXLBb+BLz+cEmjMtTudwK1BF6Bn2RfdDv29KuyeDRrPCS3TwKl7ZKmXUmE9n5UuHAPfBpA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.723.0': + resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.840.0': + resolution: {integrity: sha512-Qjnxd/yDv9KpIMWr90ZDPtRj0v75AqGC92Lm9+oHXZ8p1MjG5JE2CW0HL8JRgK9iKzgKBL7pPQRXI8FkvEVfrA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/s3-request-presigner@3.741.0': + resolution: {integrity: sha512-qrYYS+XG6wRwNDt60tcFKDCkQoLiBHhNlHaUtsHwdmSnlwA4aIuxCGXMkuskX93FsoLUDpuxtA0MZth3JL36dw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.723.0': + resolution: {integrity: sha512-lJlVAa5Sl589qO8lwMLVUtnlF1Q7I+6k1Iomv2goY9d1bRl4q2N5Pit2qJVr2AMW0sceQXeh23i2a/CKOqVAdg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.740.0': + resolution: {integrity: sha512-w+psidN3i+kl51nQEV3V+fKjKUqcEbqUA1GtubruDBvBqrl5El/fU2NF3Lo53y8CfI9wCdf3V7KOEpHIqxHNng==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/token-providers@3.398.0': + resolution: {integrity: sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/token-providers@3.723.0': + resolution: {integrity: sha512-hniWi1x4JHVwKElANh9afKIMUhAutHVBRD8zo6usr0PAoj+Waf220+1ULS74GXtLXAPCiNXl5Og+PHA7xT8ElQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@aws-sdk/client-sso-oidc': ^3.723.0 + + '@aws-sdk/token-providers@3.840.0': + resolution: {integrity: sha512-6BuTOLTXvmgwjK7ve7aTg9JaWFdM5UoMolLVPMyh3wTv9Ufalh8oklxYHUBIxsKkBGO2WiHXytveuxH6tAgTYg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.398.0': + resolution: {integrity: sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/types@3.723.0': + resolution: {integrity: sha512-LmK3kwiMZG1y5g3LGihT9mNkeNOmwEyPk6HGcJqh0wOSV4QpWoKu2epyKE4MLQNUUlz2kOVbVbOrwmI6ZcteuA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.734.0': + resolution: {integrity: sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.775.0': + resolution: {integrity: sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.840.0': + resolution: {integrity: sha512-xliuHaUFZxEx1NSXeLLZ9Dyu6+EJVQKEoD+yM+zqUo3YDZ7medKJWY6fIOKiPX/N7XbLdBYwajb15Q7IL8KkeA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-arn-parser@3.723.0': + resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.398.0': + resolution: {integrity: sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/util-endpoints@3.726.0': + resolution: {integrity: sha512-sLd30ASsPMoPn3XBK50oe/bkpJ4N8Bpb7SbhoxcY3Lk+fSASaWxbbXE81nbvCnkxrZCvkPOiDHzJCp1E2im71A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.840.0': + resolution: {integrity: sha512-eqE9ROdg/Kk0rj3poutyRCFauPDXIf/WSvCqFiRDDVi6QOnCv/M0g2XW8/jSvkJlOyaXkNCptapIp6BeeFFGYw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-format-url@3.734.0': + resolution: {integrity: sha512-TxZMVm8V4aR/QkW9/NhujvYpPZjUYqzLwSge5imKZbWFR806NP7RMwc5ilVuHF/bMOln/cVHkl42kATElWBvNw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-locate-window@3.693.0': + resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} + engines: {node: '>=16.0.0'} + + '@aws-sdk/util-user-agent-browser@3.398.0': + resolution: {integrity: sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==} + + '@aws-sdk/util-user-agent-browser@3.723.0': + resolution: {integrity: sha512-Wh9I6j2jLhNFq6fmXydIpqD1WyQLyTfSxjW9B+PXSnPyk3jtQW8AKQur7p97rO8LAUzVI0bv8kb3ZzDEVbquIg==} + + '@aws-sdk/util-user-agent-browser@3.840.0': + resolution: {integrity: sha512-JdyZM3EhhL4PqwFpttZu1afDpPJCCc3eyZOLi+srpX11LsGj6sThf47TYQN75HT1CarZ7cCdQHGzP2uy3/xHfQ==} + + '@aws-sdk/util-user-agent-node@3.398.0': + resolution: {integrity: sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-user-agent-node@3.726.0': + resolution: {integrity: sha512-iEj6KX9o6IQf23oziorveRqyzyclWai95oZHDJtYav3fvLJKStwSjygO4xSF7ycHcTYeCHSLO1FFOHgGVs4Viw==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-user-agent-node@3.840.0': + resolution: {integrity: sha512-Fy5JUEDQU1tPm2Yw/YqRYYc27W5+QD/J4mYvQvdWjUGZLB5q3eLFMGD35Uc28ZFoGMufPr4OCxK/bRfWROBRHQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-utf8-browser@3.259.0': + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + + '@aws-sdk/xml-builder@3.310.0': + resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} + engines: {node: '>=14.0.0'} + + '@aws-sdk/xml-builder@3.723.0': + resolution: {integrity: sha512-5xK2SqGU1mzzsOeemy7cy3fGKxR1sEpUs4pEiIjaT0OIvU+fZaDVUEYWOqsgns6wI90XZEQJlXtI8uAHX/do5Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/xml-builder@3.821.0': + resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} + engines: {node: '>=18.0.0'} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + engines: {node: '>=6.9.0'} + + '@changesets/apply-release-plan@7.0.12': + resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} + + '@changesets/assemble-release-plan@6.0.6': + resolution: {integrity: sha512-Frkj8hWJ1FRZiY3kzVCKzS0N5mMwWKwmv9vpam7vt8rZjLL1JMthdh6pSDVSPumHPshTTkKZ0VtNbE0cJHZZUg==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/changelog-github@0.5.1': + resolution: {integrity: sha512-BVuHtF+hrhUScSoHnJwTELB4/INQxVFc+P/Qdt20BLiBFIHFJDDUaGsZw+8fQeJTRP5hJZrzpt3oZWh0G19rAQ==} + + '@changesets/cli@2.29.2': + resolution: {integrity: sha512-vwDemKjGYMOc0l6WUUTGqyAWH3AmueeyoJa1KmFRtCYiCoY5K3B68ErYpDB6H48T4lLI4czum4IEjh6ildxUeg==} + hasBin: true + + '@changesets/config@3.1.1': + resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.3': + resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + + '@changesets/get-github-info@0.6.0': + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + + '@changesets/get-release-plan@4.0.10': + resolution: {integrity: sha512-CCJ/f3edYaA3MqoEnWvGGuZm0uMEMzNJ97z9hdUR34AOvajSwySwsIzC/bBu3+kuGDsB+cny4FljG8UBWAa7jg==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.1': + resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.5': + resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + + '@clerk/backend@1.21.4': + resolution: {integrity: sha512-PHJzBJrTxBAvHwscXwUwpippT7nHhphgycVcFb3655Dq6q0nRdKfo5GlkDHscEKxLOdmppB/168nXsVwSWf86w==} + engines: {node: '>=18.17.0'} + + '@clerk/clerk-react@5.21.0': + resolution: {integrity: sha512-WGIYKeXA/cpvWj2NiMsWYJfRq4Npy6bM9ZrcTENXVox9jpk6iGggoX9zFJG9NBx5LDHBV2kgvpRdhnF/cnrJ+w==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + + '@clerk/nextjs@6.9.6': + resolution: {integrity: sha512-wmbQd2UYOnvGtidgEAqD6f2JZjvKMlmZqnT2HbR3GKwiGme3c1wLrkPye5tknaFLJHsA+Zfp7MJtL7mu07yCzw==} + engines: {node: '>=18.17.0'} + peerDependencies: + next: ^13.5.4 || ^14.0.3 || ^15.0.0 + react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + + '@clerk/shared@2.20.4': + resolution: {integrity: sha512-1ndGEO+NejIMFkl47DCeSpVv3nmKh9BHD6wt2Sl3X1wv7sj3eWzSVC14Exkag7D8Og2VcN4LXOFLErsCXHS+YQ==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + + '@clerk/types@4.40.0': + resolution: {integrity: sha512-9QdllXYujsjYLbvPg9Kq1rWOemX5FB0r6Ijy8HOxwjKN+TPlxUnGcs+t7IwU+M5gdmZ2KV6aA6d1a2q2FlSoiA==} + engines: {node: '>=18.17.0'} + + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} + engines: {node: '>=18.0.0'} + + '@cloudflare/unenv-preset@2.3.3': + resolution: {integrity: sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==} + peerDependencies: + unenv: 2.0.0-rc.17 + workerd: ^1.20250508.0 + peerDependenciesMeta: + workerd: + optional: true + + '@cloudflare/workerd-darwin-64@1.20250712.0': + resolution: {integrity: sha512-M6S6a/LQ0Jb0R+g0XhlYi1adGifvYmxA5mD/i9TuZZgjs2bIm5ELuka/n3SCnI98ltvlx3HahRaHagAtOilsFg==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20250712.0': + resolution: {integrity: sha512-7sFzn6rvAcnLy7MktFL42dYtzL0Idw/kiUmNf2P3TvsBRoShhLK5ZKhbw+NAhvU8e4pXWm5lkE0XmpieA0zNjw==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-linux-64@1.20250712.0': + resolution: {integrity: sha512-EFRrGe/bqK7NHtht7vNlbrDpfvH3eRvtJOgsTpEQEysDjVmlK6pVJxSnLy9Hg1zlLY15IfhfGC+K2qisseHGJQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20250712.0': + resolution: {integrity: sha512-rG8JUleddhUHQVwpXOYv0VbL0S9kOtR9PNKecgVhFpxEhC8aTeg2HNBBjo8st7IfcUvY8WaW3pD3qdAMZ05UwQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-windows-64@1.20250712.0': + resolution: {integrity: sha512-qS8H5RCYwE21Om9wo5/F807ClBJIfknhuLBj16eYxvJcj9JqgAKWi12BGgjyGxHuJJjeoQ63lr4wHAdbFntDDg==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@cloudflare/workers-types@4.20250109.0': + resolution: {integrity: sha512-Y1zgSaEOOevl9ORpzgMcm4j535p3nK2lrblHHvYM2yxR50SBKGh+wvkRFAIxWRfjUGZEU+Fp6923EGioDBbobA==} + + '@cloudflare/workers-types@4.20250214.0': + resolution: {integrity: sha512-+M8oOFVbyXT5GeJrYLWMUGyPf5wGB4+k59PPqdedtOig7NjZ5r4S79wMdaZ/EV5IV8JPtZBSNjTKpDnNmfxjaQ==} + + '@cloudflare/workers-types@4.20250224.0': + resolution: {integrity: sha512-j6ZwQ5G2moQRaEtGI2u5TBQhVXv/XwOS5jfBAheZHcpCM07zm8j0i8jZHHLq/6VA8e6VRjKohOyj5j6tZ1KHLQ==} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dinero.js/calculator-number@2.0.0-alpha.8': + resolution: {integrity: sha512-/L+N7g5DjcS6wlMb2hcOXWBKW2TGiG+vZDZr9ow0nsHUTdwtMarL1bmBH9fGldHhH2XsxcrjN9H+036yeNzh3Q==} + + '@dinero.js/core@2.0.0-alpha.8': + resolution: {integrity: sha512-3jaw2j6J/SshlCZz5KhHkh8zP47HRmt9RpnjR0BJs2awpweVuZIyyX9qzGVUEVpml9IwzQ1U+YdXevhOxtcDgg==} + + '@dinero.js/currencies@2.0.0-alpha.8': + resolution: {integrity: sha512-zApiqtuuPwjiM9LJA5/kNcT48VSHRiz2/mktkXjIpfxrJKzthXybUAgEenExIH6dYhLDgVmsLQZtZFOsdYl0Ag==} + + '@dotenvx/dotenvx@1.31.0': + resolution: {integrity: sha512-GeDxvtjiRuoyWVU9nQneId879zIyNdL05bS7RKiqMkfBSKpHMWHLoRyRqjYWLaXmX/llKO1hTlqHDmatkQAjPA==} + hasBin: true + + '@drizzle-team/brocli@0.10.2': + resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + + '@ecies/ciphers@0.2.3': + resolution: {integrity: sha512-tapn6XhOueMwht3E2UzY0ZZjYokdaw9XtL9kEyjhQ/Fb9vL9xTFbOaI+fV0AWvTpYu4BNloC6getKW6NtSg4mA==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + peerDependencies: + '@noble/ciphers': ^1.0.0 + + '@edge-runtime/format@2.2.1': + resolution: {integrity: sha512-JQTRVuiusQLNNLe2W9tnzBlV/GvSVcozLl4XZHk5swnRZ/v6jp8TqR8P7sqmJsQqblDZ3EztcWmLDbhRje/+8g==} + engines: {node: '>=16'} + + '@edge-runtime/node-utils@2.3.0': + resolution: {integrity: sha512-uUtx8BFoO1hNxtHjp3eqVPC/mWImGb2exOfGjMLUoipuWgjej+f4o/VP4bUI8U40gu7Teogd5VTeZUkGvJSPOQ==} + engines: {node: '>=16'} + + '@edge-runtime/ponyfill@2.4.2': + resolution: {integrity: sha512-oN17GjFr69chu6sDLvXxdhg0Qe8EZviGSuqzR9qOiKh4MhFYGdBBcqRNzdmYeAdeRzOW2mM9yil4RftUQ7sUOA==} + engines: {node: '>=16'} + + '@edge-runtime/primitives@4.1.0': + resolution: {integrity: sha512-Vw0lbJ2lvRUqc7/soqygUX216Xb8T3WBZ987oywz6aJqRxcwSVWwr9e+Nqo2m9bxobA9mdbWNNoRY6S9eko1EQ==} + engines: {node: '>=16'} + + '@edge-runtime/vm@3.2.0': + resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==} + engines: {node: '>=16'} + + '@emnapi/runtime@1.4.1': + resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==} + + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + + '@esbuild-kit/core-utils@3.3.2': + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild-kit/esm-loader@2.6.5': + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + 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} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.3.0': + resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@9.11.1': + resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.31.0': + resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.3': + resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@fastify/busboy@3.1.1': + resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} + + '@firebase/analytics-compat@0.2.17': + resolution: {integrity: sha512-SJNVOeTvzdqZQvXFzj7yAirXnYcLDxh57wBFROfeowq/kRN1AqOw1tG6U4OiFOEhqi7s3xLze/LMkZatk2IEww==} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/analytics-types@0.8.3': + resolution: {integrity: sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg==} + + '@firebase/analytics@0.10.11': + resolution: {integrity: sha512-zwuPiRE0+hgcS95JZbJ6DFQN4xYFO8IyGxpeePTV51YJMwCf3lkBa6FnZ/iXIqDKcBPMgMuuEZozI0BJWaLEYg==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/app-check-compat@0.3.18': + resolution: {integrity: sha512-qjozwnwYmAIdrsVGrJk+hnF1WBois54IhZR6gO0wtZQoTvWL/GtiA2F31TIgAhF0ayUiZhztOv1RfC7YyrZGDQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/app-check-interop-types@0.3.3': + resolution: {integrity: sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==} + + '@firebase/app-check-types@0.5.3': + resolution: {integrity: sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng==} + + '@firebase/app-check@0.8.11': + resolution: {integrity: sha512-42zIfRI08/7bQqczAy7sY2JqZYEv3a1eNa4fLFdtJ54vNevbBIRSEA3fZgRqWFNHalh5ohsBXdrYgFqaRIuCcQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/app-compat@0.2.48': + resolution: {integrity: sha512-wVNU1foBIaJncUmiALyRxhHHHC3ZPMLIETTAk+2PG87eP9B/IDBsYUiTpHyboDPEI8CgBPat/zN2v+Snkz6lBw==} + engines: {node: '>=18.0.0'} + + '@firebase/app-types@0.9.3': + resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} + + '@firebase/app@0.10.18': + resolution: {integrity: sha512-VuqEwD/QRisKd/zsFsqgvSAx34mZ3WEF47i97FD6Vw4GWAhdjepYf0Hmi6K0b4QMSgWcv/x0C30Slm5NjjERXg==} + engines: {node: '>=18.0.0'} + + '@firebase/auth-compat@0.5.17': + resolution: {integrity: sha512-Shi6rqLqzU9KLXnUCmlLvVByq1kiG3oe7Wpbf5m1CgS7NiRx2pSSn0HLaRRozdkaizNzMGGj+3oHmNYQ7kU6xA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/auth-interop-types@0.2.4': + resolution: {integrity: sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==} + + '@firebase/auth-types@0.12.3': + resolution: {integrity: sha512-Zq9zI0o5hqXDtKg6yDkSnvMCMuLU6qAVS51PANQx+ZZX5xnzyNLEBO3GZgBUPsV5qIMFhjhqmLDxUqCbnAYy2A==} + peerDependencies: + '@firebase/app-types': 0.x + '@firebase/util': 1.x + + '@firebase/auth@1.8.2': + resolution: {integrity: sha512-q+071y2LWe0bVnjqaX3BscqZwzdP0GKN2YBKapLq4bV88MPfCtWwGKmDhNDEDUmioOjudGXkUY5cvvKqk3mlUg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + '@react-native-async-storage/async-storage': ^1.18.1 + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true + + '@firebase/component@0.6.12': + resolution: {integrity: sha512-YnxqjtohLbnb7raXt2YuA44cC1wA9GiehM/cmxrsoxKlFxBLy2V0OkRSj9gpngAE0UoJ421Wlav9ycO7lTPAUw==} + engines: {node: '>=18.0.0'} + + '@firebase/data-connect@0.2.0': + resolution: {integrity: sha512-7OrZtQoLSk2fiGijhIdUnTSqEFti3h1EMhw9nNiSZ6jJGduw4Pz6jrVvxjpZJtGH/JiljbMkBnPBS2h8CTRKEw==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/database-compat@2.0.2': + resolution: {integrity: sha512-5zvdnMsfDHvrQAVM6jBS7CkBpu+z3YbpFdhxRsrK1FP45IEfxlzpeuEUb17D/tpM10vfq4Ok0x5akIBaCv7gfA==} + engines: {node: '>=18.0.0'} + + '@firebase/database-types@1.0.8': + resolution: {integrity: sha512-6lPWIGeufhUq1heofZULyVvWFhD01TUrkkB9vyhmksjZ4XF7NaivQp9rICMk7QNhqwa+uDCaj4j+Q8qqcSVZ9g==} + + '@firebase/database@1.0.11': + resolution: {integrity: sha512-gLrw/XeioswWUXgpVKCPAzzoOuvYNqK5fRUeiJTzO7Mlp9P6ylFEyPJlRBl1djqYye641r3MX6AmIeMXwjgwuQ==} + engines: {node: '>=18.0.0'} + + '@firebase/firestore-compat@0.3.41': + resolution: {integrity: sha512-J/PgWKEt0yugETOE7lOabT16hsV21cLzSxERD7ZhaiwBQkBTSf0Mx9RhjZRT0Ttqe4weM90HGZFyUBqYA73fVA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/firestore-types@3.0.3': + resolution: {integrity: sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q==} + peerDependencies: + '@firebase/app-types': 0.x + '@firebase/util': 1.x + + '@firebase/firestore@4.7.6': + resolution: {integrity: sha512-aVDboR+upR/44qZDLR4tnZ9pepSOFBbDJnwk7eWzmTyQq2nZAVG+HIhrqpQawmUVcDRkuJv2K2UT2+oqR8F8TA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/functions-compat@0.3.18': + resolution: {integrity: sha512-N7+RN5GVus2ORB8cqfSNhfSn4iaYws6F8uCCfn4mtjC7zYS/KH6muzNAhZUdUqlv5YazbVmvxlAoYYF39i8Qzg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/functions-types@0.6.3': + resolution: {integrity: sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg==} + + '@firebase/functions@0.12.1': + resolution: {integrity: sha512-QucRiFrvMMmIGTRhL7ZK2IeBnAWP7lAmfFREMpEtX47GjVqDqGxdFs+Mg7XBzxSc9UjDO4Rxf+aE9xJHU6bGwg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/installations-compat@0.2.12': + resolution: {integrity: sha512-RhcGknkxmFu92F6Jb3rXxv6a4sytPjJGifRZj8MSURPuv2Xu+/AispCXEfY1ZraobhEHTG5HLGsP6R4l9qB5aA==} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/installations-types@0.5.3': + resolution: {integrity: sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA==} + peerDependencies: + '@firebase/app-types': 0.x + + '@firebase/installations@0.6.12': + resolution: {integrity: sha512-ES/WpuAV2k2YtBTvdaknEo7IY8vaGjIjS3zhnHSAIvY9KwTR8XZFXOJoZ3nSkjN1A5R4MtEh+07drnzPDg9vaw==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/logger@0.4.4': + resolution: {integrity: sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g==} + engines: {node: '>=18.0.0'} + + '@firebase/messaging-compat@0.2.16': + resolution: {integrity: sha512-9HZZ88Ig3zQ0ok/Pwt4gQcNsOhoEy8hDHoGsV1am6ulgMuGuDVD2gl11Lere2ksL+msM12Lddi2x/7TCqmODZw==} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/messaging-interop-types@0.2.3': + resolution: {integrity: sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q==} + + '@firebase/messaging@0.12.16': + resolution: {integrity: sha512-VJ8sCEIeP3+XkfbJA7410WhYGHdloYFZXoHe/vt+vNVDGw8JQPTQSVTRvjrUprEf5I4Tbcnpr2H34lS6zhCHSA==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/performance-compat@0.2.12': + resolution: {integrity: sha512-DyCbDTIwtBTGsEiQxTz/TD23a0na2nrDozceQ5kVkszyFYvliB0YK/9el0wAGIG91SqgTG9pxHtYErzfZc0VWw==} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/performance-types@0.2.3': + resolution: {integrity: sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ==} + + '@firebase/performance@0.6.12': + resolution: {integrity: sha512-8mYL4z2jRlKXAi2hjk4G7o2sQLnJCCuTbyvti/xmHf5ZvOIGB01BZec0aDuBIXO+H1MLF62dbye/k91Fr+yc8g==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/remote-config-compat@0.2.12': + resolution: {integrity: sha512-91jLWPtubIuPBngg9SzwvNCWzhMLcyBccmt7TNZP+y1cuYFNOWWHKUXQ3IrxCLB7WwLqQaEu7fTDAjHsTyBsSw==} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/remote-config-types@0.4.0': + resolution: {integrity: sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg==} + + '@firebase/remote-config@0.5.0': + resolution: {integrity: sha512-weiEbpBp5PBJTHUWR4GwI7ZacaAg68BKha5QnZ8Go65W4oQjEWqCW/rfskABI/OkrGijlL3CUmCB/SA6mVo0qA==} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/storage-compat@0.3.15': + resolution: {integrity: sha512-Z9afjrK2O9o1ZHWCpprCGZ1BTc3BbvpZvi6tkSteC8H3W/fMM6x+RoSunlzD3hEVV5bkbwdJIqNClLMchvyoPA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app-compat': 0.x + + '@firebase/storage-types@0.8.3': + resolution: {integrity: sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg==} + peerDependencies: + '@firebase/app-types': 0.x + '@firebase/util': 1.x + + '@firebase/storage@0.13.5': + resolution: {integrity: sha512-sB/7HNuW0N9tITyD0RxVLNCROuCXkml5i/iPqjwOGKC0xiUfpCOjBE+bb0ABMoN1qYZfqk0y9IuI2TdomjmkNw==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + + '@firebase/util@1.10.3': + resolution: {integrity: sha512-wfoF5LTy0m2ufUapV0ZnpcGQvuavTbJ5Qr1Ze9OJGL70cSMvhDyjS4w2121XdA3lGZSTOsDOyGhpoDtYwck85A==} + engines: {node: '>=18.0.0'} + + '@firebase/vertexai@1.0.3': + resolution: {integrity: sha512-SQHg/RPb3LwQs/xiLcvAZYz9NXyDSZUIIwvgsKh6e4wdULAfyPCZIu6Y2ZYIhZLfk9Q44cKZ+++7RPTaqQJdYA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@firebase/app': 0.x + '@firebase/app-types': 0.x + + '@firebase/webchannel-wrapper@1.0.3': + resolution: {integrity: sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ==} + + '@google-cloud/firestore@7.11.0': + resolution: {integrity: sha512-88uZ+jLsp1aVMj7gh3EKYH1aulTAMFAp8sH/v5a9w8q8iqSG27RiWLoxSAFr/XocZ9hGiWH1kEnBw+zl3xAgNA==} + engines: {node: '>=14.0.0'} + + '@google-cloud/paginator@5.0.2': + resolution: {integrity: sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==} + engines: {node: '>=14.0.0'} + + '@google-cloud/projectify@4.0.0': + resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} + engines: {node: '>=14.0.0'} + + '@google-cloud/promisify@4.0.0': + resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} + engines: {node: '>=14'} + + '@google-cloud/storage@7.15.0': + resolution: {integrity: sha512-/j/+8DFuEOo33fbdX0V5wjooOoFahEaMEdImHBmM2tH9MPHJYNtmXOf2sGUmZmiufSukmBEvdlzYgDkkgeBiVQ==} + engines: {node: '>=14'} + + '@grpc/grpc-js@1.12.5': + resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} + engines: {node: '>=12.10.0'} + + '@grpc/grpc-js@1.9.15': + resolution: {integrity: sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==} + engines: {node: ^8.13.0 || >=10.10.0} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@heroicons/react@2.1.5': + resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==} + peerDependencies: + react: '>= 16' + + '@hookform/resolvers@3.10.0': + resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} + peerDependencies: + react-hook-form: ^7.0.0 + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@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-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + 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-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + 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-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + 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-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + 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-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + 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-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + 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-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + 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-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + 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-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + 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-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + 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-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + 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-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + 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-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + 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-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + 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-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + 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-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + 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-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + 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] + + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + 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'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + + '@libsql/client@0.14.0': + resolution: {integrity: sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==} + + '@libsql/core@0.14.0': + resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} + + '@libsql/darwin-arm64@0.4.7': + resolution: {integrity: sha512-yOL742IfWUlUevnI5PdnIT4fryY3LYTdLm56bnY0wXBw7dhFcnjuA7jrH3oSVz2mjZTHujxoITgAE7V6Z+eAbg==} + cpu: [arm64] + os: [darwin] + + '@libsql/darwin-x64@0.4.7': + resolution: {integrity: sha512-ezc7V75+eoyyH07BO9tIyJdqXXcRfZMbKcLCeF8+qWK5nP8wWuMcfOVywecsXGRbT99zc5eNra4NEx6z5PkSsA==} + cpu: [x64] + os: [darwin] + + '@libsql/hrana-client@0.7.0': + resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==} + + '@libsql/isomorphic-fetch@0.3.1': + resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==} + engines: {node: '>=18.0.0'} + + '@libsql/isomorphic-ws@0.1.5': + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + + '@libsql/linux-arm64-gnu@0.4.7': + resolution: {integrity: sha512-WlX2VYB5diM4kFfNaYcyhw5y+UJAI3xcMkEUJZPtRDEIu85SsSFrQ+gvoKfcVh76B//ztSeEX2wl9yrjF7BBCA==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-arm64-musl@0.4.7': + resolution: {integrity: sha512-6kK9xAArVRlTCpWeqnNMCoXW1pe7WITI378n4NpvU5EJ0Ok3aNTIC2nRPRjhro90QcnmLL1jPcrVwO4WD1U0xw==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-x64-gnu@0.4.7': + resolution: {integrity: sha512-CMnNRCmlWQqqzlTw6NeaZXzLWI8bydaXDke63JTUCvu8R+fj/ENsLrVBtPDlxQ0wGsYdXGlrUCH8Qi9gJep0yQ==} + cpu: [x64] + os: [linux] + + '@libsql/linux-x64-musl@0.4.7': + resolution: {integrity: sha512-nI6tpS1t6WzGAt1Kx1n1HsvtBbZ+jHn0m7ogNNT6pQHZQj7AFFTIMeDQw/i/Nt5H38np1GVRNsFe99eSIMs9XA==} + cpu: [x64] + os: [linux] + + '@libsql/win32-x64-msvc@0.4.7': + resolution: {integrity: sha512-7pJzOWzPm6oJUxml+PCDRzYQ4A1hTMHAciTAHfFK4fkbDZX33nWPVG7Y3vqdKtslcwAzwmrNDc6sXy2nwWnbiw==} + cpu: [x64] + os: [win32] + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@mapbox/node-pre-gyp@2.0.0': + resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} + engines: {node: '>=18'} + hasBin: true + + '@neon-rs/load@0.0.4': + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + + '@next/env@14.2.24': + resolution: {integrity: sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==} + + '@next/env@15.0.0-canary.174': + resolution: {integrity: sha512-2S0Jpc4yzsLq5xfIHknQob5k3ME9oI7syQH1fNJ3tv/HP1DVLmTWDRylPScLLUJGvOg7SEgnYK87P45cTNdfUQ==} + + '@next/env@15.0.4': + resolution: {integrity: sha512-WNRvtgnRVDD4oM8gbUcRc27IAhaL4eXQ/2ovGbgLnPGUvdyDr8UdXP4Q/IBDdAdojnD2eScryIDirv0YUCjUVw==} + + '@next/env@15.1.0': + resolution: {integrity: sha512-UcCO481cROsqJuszPPXJnb7GGuLq617ve4xuAyyNG4VSSocJNtMU5Fsx+Lp6mlN8c7W58aZLc5y6D/2xNmaK+w==} + + '@next/env@15.1.3': + resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==} + + '@next/env@15.1.7': + resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} + + '@next/env@15.3.5': + resolution: {integrity: sha512-7g06v8BUVtN2njAX/r8gheoVffhiKFVt4nx74Tt6G4Hqw9HCLYQVx/GkH2qHvPtAHZaUNZ0VXAa0pQP6v1wk7g==} + + '@next/env@15.4.0-canary.14': + resolution: {integrity: sha512-ynXM3n0AEcB1mwoOLgar27s/WoFyX0C8kpbfpc6bylq2rfS+q+KNla1WAVX3QdHyV82KyrqdMQAFOIyTZg4K9A==} + + '@next/eslint-plugin-next@14.2.14': + resolution: {integrity: sha512-kV+OsZ56xhj0rnTn6HegyTGkoa16Mxjrpk7pjWumyB2P8JVQb8S9qtkjy/ye0GnTr4JWtWG4x/2qN40lKZ3iVQ==} + + '@next/eslint-plugin-next@15.0.4': + resolution: {integrity: sha512-rbsF17XGzHtR7SDWzWpavSfum3/UdnF8bAaisnKwP//si3KWPTedVUsflAdjyK1zW3rweBjbALfKcavFneLGvg==} + + '@next/eslint-plugin-next@15.1.0': + resolution: {integrity: sha512-+jPT0h+nelBT6HC9ZCHGc7DgGVy04cv4shYdAe6tKlEbjQUtwU3LzQhzbDHQyY2m6g39m6B0kOFVuLGBrxxbGg==} + + '@next/eslint-plugin-next@15.1.3': + resolution: {integrity: sha512-oeP1vnc5Cq9UoOb8SYHAEPbCXMzOgG70l+Zfd+Ie00R25FOm+CCVNrcIubJvB1tvBgakXE37MmqSycksXVPRqg==} + + '@next/swc-darwin-arm64@14.2.24': + resolution: {integrity: sha512-7Tdi13aojnAZGpapVU6meVSpNzgrFwZ8joDcNS8cJVNuP3zqqrLqeory9Xec5TJZR/stsGJdfwo8KeyloT3+rQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.0.0-canary.174': + resolution: {integrity: sha512-SrMhGOT4LUDhsM6VNMIp7ZziVPegQqAPlz1ft6C7XcNR7OODmLaYAL5NI4XA+rJTLma1XFTf2yhAb3psvoav6w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.0.4': + resolution: {integrity: sha512-QecQXPD0yRHxSXWL5Ff80nD+A56sUXZG9koUsjWJwA2Z0ZgVQfuy7gd0/otjxoOovPVHR2eVEvPMHbtZP+pf9w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.1.0': + resolution: {integrity: sha512-ZU8d7xxpX14uIaFC3nsr4L++5ZS/AkWDm1PzPO6gD9xWhFkOj2hzSbSIxoncsnlJXB1CbLOfGVN4Zk9tg83PUw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.1.3': + resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.1.7': + resolution: {integrity: sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.3.5': + resolution: {integrity: sha512-lM/8tilIsqBq+2nq9kbTW19vfwFve0NR7MxfkuSUbRSgXlMQoJYg+31+++XwKVSXk4uT23G2eF/7BRIKdn8t8w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-arm64@15.4.0-canary.14': + resolution: {integrity: sha512-p62YaNcigaJlZ6IIubZPT+S4N0CXXkjqdIbC2Otr6LLxWsvdkHRgWaPLHauCxWw0zS7jczKY1w4ZfyX9l26sIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.2.24': + resolution: {integrity: sha512-lXR2WQqUtu69l5JMdTwSvQUkdqAhEWOqJEYUQ21QczQsAlNOW2kWZCucA6b3EXmPbcvmHB1kSZDua/713d52xg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.0.0-canary.174': + resolution: {integrity: sha512-ktmNJgLvXztYeec38Nr53pM5NSoDvdwX6j5tISnylNHdubg9hDQ7sqdLn9Xw+QLie8yZVp1A0STPECVDDVUjyA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.0.4': + resolution: {integrity: sha512-pb7Bye3y1Og3PlCtnz2oO4z+/b3pH2/HSYkLbL0hbVuTGil7fPen8/3pyyLjdiTLcFJ+ymeU3bck5hd4IPFFCA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.1.0': + resolution: {integrity: sha512-DQ3RiUoW2XC9FcSM4ffpfndq1EsLV0fj0/UY33i7eklW5akPUCo6OX2qkcLXZ3jyPdo4sf2flwAED3AAq3Om2Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.1.3': + resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.1.7': + resolution: {integrity: sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.3.5': + resolution: {integrity: sha512-WhwegPQJ5IfoUNZUVsI9TRAlKpjGVK0tpJTL6KeiC4cux9774NYE9Wu/iCfIkL/5J8rPAkqZpG7n+EfiAfidXA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.4.0-canary.14': + resolution: {integrity: sha512-PQ4z01gYCeYzP4NpFKBvg0slDu/CZ+vrpin6+O5XfzGOOdBCUqlJWK78ZTlfs8eTjVWnvVEi2FsTnbW5BZ0yiA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.2.24': + resolution: {integrity: sha512-nxvJgWOpSNmzidYvvGDfXwxkijb6hL9+cjZx1PVG6urr2h2jUqBALkKjT7kpfurRWicK6hFOvarmaWsINT1hnA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.0.0-canary.174': + resolution: {integrity: sha512-kVEibHYyQ12zzFPY+YHbYX9z81HhLVK5pQgt1NlFet2M0iBj1PxvOJuu6In1EEV7f3jNEr4r3gf5ieyY3ywnLw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.0.4': + resolution: {integrity: sha512-12oSaBFjGpB227VHzoXF3gJoK2SlVGmFJMaBJSu5rbpaoT5OjP5OuCLuR9/jnyBF1BAWMs/boa6mLMoJPRriMA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.1.0': + resolution: {integrity: sha512-M+vhTovRS2F//LMx9KtxbkWk627l5Q7AqXWWWrfIzNIaUFiz2/NkOFkxCFyNyGACi5YbA8aekzCLtbDyfF/v5Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.1.3': + resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.1.7': + resolution: {integrity: sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.3.5': + resolution: {integrity: sha512-LVD6uMOZ7XePg3KWYdGuzuvVboxujGjbcuP2jsPAN3MnLdLoZUXKRc6ixxfs03RH7qBdEHCZjyLP/jBdCJVRJQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-gnu@15.4.0-canary.14': + resolution: {integrity: sha512-u/eeGK9okYiJ24aLcrq2jOCyOnjhzOM/MkcOOMkzE4/Rp7EKIepnGUhnIcLeLmcQw4RCDAjh3QZBqt5rQEm4fA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.2.24': + resolution: {integrity: sha512-PaBgOPhqa4Abxa3y/P92F3kklNPsiFjcjldQGT7kFmiY5nuFn8ClBEoX8GIpqU1ODP2y8P6hio6vTomx2Vy0UQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.0.0-canary.174': + resolution: {integrity: sha512-NzfcraJW3jpWDx3dJHzMxLFUAJxdq9GROpO49SIWXu9HKmdZszrInTfnYK98v2C73FNnpFoCGEvBYi/GTnvECw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.0.4': + resolution: {integrity: sha512-QARO88fR/a+wg+OFC3dGytJVVviiYFEyjc/Zzkjn/HevUuJ7qGUUAUYy5PGVWY1YgTzeRYz78akQrVQ8r+sMjw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.1.0': + resolution: {integrity: sha512-Qn6vOuwaTCx3pNwygpSGtdIu0TfS1KiaYLYXLH5zq1scoTXdwYfdZtwvJTpB1WrLgiQE2Ne2kt8MZok3HlFqmg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.1.3': + resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.1.7': + resolution: {integrity: sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.3.5': + resolution: {integrity: sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.4.0-canary.14': + resolution: {integrity: sha512-6eODbSA592cYMYtBU9Vm2D8ApXn6dBh/cN7GQlsTiDBIlCId9Z8DlkGCDj/9thr0JEluUlkt379+B19BGxsCEg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.2.24': + resolution: {integrity: sha512-vEbyadiRI7GOr94hd2AB15LFVgcJZQWu7Cdi9cWjCMeCiUsHWA0U5BkGPuoYRnTxTn0HacuMb9NeAmStfBCLoQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.0.0-canary.174': + resolution: {integrity: sha512-fJ5W8PrbZZkxCrtX9lmlqn43zvUrQQ5wF/GxcQDFdcwT9l3lx8IhdMZH7Q5rWuikWpI0pU+jqqRdhTpODqpuHA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.0.4': + resolution: {integrity: sha512-Z50b0gvYiUU1vLzfAMiChV8Y+6u/T2mdfpXPHraqpypP7yIT2UV9YBBhcwYkxujmCvGEcRTVWOj3EP7XW/wUnw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.1.0': + resolution: {integrity: sha512-yeNh9ofMqzOZ5yTOk+2rwncBzucc6a1lyqtg8xZv0rH5znyjxHOWsoUtSq4cUTeeBIiXXX51QOOe+VoCjdXJRw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.1.3': + resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.1.7': + resolution: {integrity: sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.3.5': + resolution: {integrity: sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.4.0-canary.14': + resolution: {integrity: sha512-FwOtQDbMLJmGPCg8p1ZilCBjfjBZGBRwXnWmxLmpO4lcWTWMFTCfAxkqCUi62zXBZUJztqT8TgXQ9VBk4BKukQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.2.24': + resolution: {integrity: sha512-df0FC9ptaYsd8nQCINCzFtDWtko8PNRTAU0/+d7hy47E0oC17tI54U/0NdGk7l/76jz1J377dvRjmt6IUdkpzQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.0.0-canary.174': + resolution: {integrity: sha512-OMSzmdZxrh5c7X46ILiK3GvTPgSZghpSFF4wrnXloBpW1LrbbjSYGVSGer5IoVqXR18lpnMscsV9N35FX0MIVw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.0.4': + resolution: {integrity: sha512-7H9C4FAsrTAbA/ENzvFWsVytqRYhaJYKa2B3fyQcv96TkOGVMcvyS6s+sj4jZlacxxTcn7ygaMXUPkEk7b78zw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.1.0': + resolution: {integrity: sha512-t9IfNkHQs/uKgPoyEtU912MG6a1j7Had37cSUyLTKx9MnUpjj+ZDKw9OyqTI9OwIIv0wmkr1pkZy+3T5pxhJPg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.1.3': + resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.1.7': + resolution: {integrity: sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.3.5': + resolution: {integrity: sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.4.0-canary.14': + resolution: {integrity: sha512-0k8lkaryoYsB4wksRm/5SlWWtJjuq6vOzQ/zqKRlNdpNvsvzZ61sEaCLZn1zdcFcUVH6wSzK/GMclcpn2w0VAg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.2.24': + resolution: {integrity: sha512-ZEntbLjeYAJ286eAqbxpZHhDFYpYjArotQ+/TW9j7UROh0DUmX7wYDGtsTPpfCV8V+UoqHBPU7q9D4nDNH014Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.0.0-canary.174': + resolution: {integrity: sha512-pjqvXOMBKbsG5u8I/vBeyxLN31p5dYIF1bP2zoIhjpsLU9eWx5ikKrQ7/qMpJDpWzTHgpzWGujPtEfvi1kd97w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.0.4': + resolution: {integrity: sha512-Z/v3WV5xRaeWlgJzN9r4PydWD8sXV35ywc28W63i37G2jnUgScA4OOgS8hQdiXLxE3gqfSuHTicUhr7931OXPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.1.0': + resolution: {integrity: sha512-WEAoHyG14t5sTavZa1c6BnOIEukll9iqFRTavqRVPfYmfegOAd5MaZfXgOGG6kGo1RduyGdTHD4+YZQSdsNZXg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.1.3': + resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.1.7': + resolution: {integrity: sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.3.5': + resolution: {integrity: sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-arm64-msvc@15.4.0-canary.14': + resolution: {integrity: sha512-Kih/2CNMpegubEJT8xoigF+hMihetcFEwWXINfPoO534GQax4o1HU56aai6YgFYCvcrb9fAmW2vVagCQx3GS2g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.2.24': + resolution: {integrity: sha512-9KuS+XUXM3T6v7leeWU0erpJ6NsFIwiTFD5nzNg8J5uo/DMIPvCp3L1Ao5HjbHX0gkWPB1VrKoo/Il4F0cGK2Q==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-ia32-msvc@15.0.0-canary.174': + resolution: {integrity: sha512-fFkaeKq1/FXElupODSiBW8eA+644BbwxW3Eu/ACNvoxm5Z5s4YENCO4PcrdmGKvdG2k71DzcjpmtnToV+S7qiQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.24': + resolution: {integrity: sha512-cXcJ2+x0fXQ2CntaE00d7uUH+u1Bfp/E0HsNQH79YiLaZE5Rbm7dZzyAYccn3uICM7mw+DxoMqEfGXZtF4Fgaw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.0.0-canary.174': + resolution: {integrity: sha512-oHP+8a72t8K6LFwEXOy/Tb6nSOE3u/hUTN2fwXNUx5hJde59yeZaGIG2kQenWYLQxJHeoT90rI1DerOcfjwzQQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.0.4': + resolution: {integrity: sha512-NGLchGruagh8lQpDr98bHLyWJXOBSmkEAfK980OiNBa7vNm6PsNoPvzTfstT78WyOeMRQphEQ455rggd7Eo+Dw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.1.0': + resolution: {integrity: sha512-J1YdKuJv9xcixzXR24Dv+4SaDKc2jj31IVUEMdO5xJivMTXuE6MAdIi4qPjSymHuFG8O5wbfWKnhJUcHHpj5CA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.1.3': + resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.1.7': + resolution: {integrity: sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.3.5': + resolution: {integrity: sha512-5fhH6fccXxnX2KhllnGhkYMndhOiLOLEiVGYjP2nizqeGWkN10sA9taATlXwake2E2XMvYZjjz0Uj7T0y+z1yw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.4.0-canary.14': + resolution: {integrity: sha512-iOTIfyhrUDDIFH0BA0ZAek8XEK2Wgtbg1QOiqzTU7QPasn28lK/b2bHI+stFrGfz6u1NZw9V/B+/D+o9lzSWKQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.0': + resolution: {integrity: sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@node-minify/core@8.0.6': + resolution: {integrity: sha512-/vxN46ieWDLU67CmgbArEvOb41zlYFOkOtr9QW9CnTrBLuTyGgkyNWC2y5+khvRw3Br58p2B5ZVSx/PxCTru6g==} + engines: {node: '>=16.0.0'} + + '@node-minify/terser@8.0.6': + resolution: {integrity: sha512-grQ1ipham743ch2c3++C8Isk6toJnxJSyDiwUI/IWUCh4CZFD6aYVw6UAY40IpCnjrq5aXGwiv5OZJn6Pr0hvg==} + engines: {node: '>=16.0.0'} + + '@node-minify/utils@8.0.6': + resolution: {integrity: sha512-csY4qcR7jUwiZmkreNTJhcypQfts2aY2CK+a+rXgXUImZiZiySh0FvwHjRnlqWKvg+y6ae9lHFzDRjBTmqlTIQ==} + engines: {node: '>=16.0.0'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@octokit/action@6.1.0': + resolution: {integrity: sha512-lo+nHx8kAV86bxvOVOI3vFjX3gXPd/L7guAUbvs3pUvnR2KC+R7yjBkA1uACt4gYhs4LcWP3AXSGQzsbeN2XXw==} + engines: {node: '>= 18'} + + '@octokit/auth-action@4.1.0': + resolution: {integrity: sha512-m+3t7K46IYyMk7Bl6/lF4Rv09GqDZjYmNg8IWycJ2Fa3YE3DE7vQcV6G2hUPmR9NDqenefNJwVtlisMjzymPiQ==} + engines: {node: '>= 18'} + + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/core@5.2.1': + resolution: {integrity: sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==} + engines: {node: '>= 18'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.1': + resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + + '@octokit/openapi-types@24.2.0': + resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + + '@octokit/plugin-paginate-rest@9.2.2': + resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-rest-endpoint-methods@10.4.1': + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + + '@octokit/types@13.10.0': + resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + + '@opennextjs/aws@3.7.0': + resolution: {integrity: sha512-JXUZice+CedEQW20hnBVqzBEj+jfr4Oe2LVYSE4RNKdfHVIeYG+WJAop14TxRJ+NugKWGcJx6opf944l+ZG7XQ==} + hasBin: true + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@panva/hkdf@1.2.1': + resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@playwright/test@1.51.1': + resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} + engines: {node: '>=18'} + hasBin: true + + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + + '@prisma/adapter-d1@6.7.0': + resolution: {integrity: sha512-xV6gbzAc/uMEPmw6xwP98ScgR3CaoYPJD3BER/8QGTTHbXfgLhTgxhIEAuOoEkPQ22yifsug9h/YunDYt4JBqA==} + + '@prisma/client@6.7.0': + resolution: {integrity: sha512-+k61zZn1XHjbZul8q6TdQLpuI/cvyfil87zqK2zpreNIXyXtpUv3+H/oM69hcsFcZXaokHJIzPAt5Z8C8eK2QA==} + engines: {node: '>=18.18'} + peerDependencies: + prisma: '*' + typescript: '>=5.1.0' + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true + + '@prisma/config@6.7.0': + resolution: {integrity: sha512-di8QDdvSz7DLUi3OOcCHSwxRNeW7jtGRUD2+Z3SdNE3A+pPiNT8WgUJoUyOwJmUr5t+JA2W15P78C/N+8RXrOA==} + + '@prisma/debug@6.7.0': + resolution: {integrity: sha512-RabHn9emKoYFsv99RLxvfG2GHzWk2ZI1BuVzqYtmMSIcuGboHY5uFt3Q3boOREM9de6z5s3bQoyKeWnq8Fz22w==} + + '@prisma/driver-adapter-utils@6.7.0': + resolution: {integrity: sha512-xYcXALWz1GsCRqwcDw0kP0R27chn99Co/HMX0nyOvIjAOo+41Tl/qcCOce/Ik1wNMGTI68N64kt3iccJ4EJoCQ==} + + '@prisma/engines-version@6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed': + resolution: {integrity: sha512-EvpOFEWf1KkJpDsBCrih0kg3HdHuaCnXmMn7XFPObpFTzagK1N0Q0FMnYPsEhvARfANP5Ok11QyoTIRA2hgJTA==} + + '@prisma/engines@6.7.0': + resolution: {integrity: sha512-3wDMesnOxPrOsq++e5oKV9LmIiEazFTRFZrlULDQ8fxdub5w4NgRBoxtWbvXmj2nJVCnzuz6eFix3OhIqsZ1jw==} + + '@prisma/fetch-engine@6.7.0': + resolution: {integrity: sha512-zLlAGnrkmioPKJR4Yf7NfW3hftcvqeNNEHleMZK9yX7RZSkhmxacAYyfGsCcqRt47jiZ7RKdgE0Wh2fWnm7WsQ==} + + '@prisma/get-platform@6.7.0': + resolution: {integrity: sha512-i9IH5lO4fQwnMLvQLYNdgVh9TK3PuWBfQd7QLk/YurnAIg+VeADcZDbmhAi4XBBDD+hDif9hrKyASu0hbjwabw==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.40.1': + resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.40.1': + resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.40.1': + resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.40.1': + resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.40.1': + resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.40.1': + resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': + resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.40.1': + resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.40.1': + resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.40.1': + resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': + resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': + resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.40.1': + resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.40.1': + resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.40.1': + resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.40.1': + resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.40.1': + resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.40.1': + resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.40.1': + resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.40.1': + resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==} + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@sinclair/typebox@0.25.24': + resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} + + '@sindresorhus/is@7.0.2': + resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==} + engines: {node: '>=18'} + + '@smithy/abort-controller@2.2.0': + resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==} + engines: {node: '>=14.0.0'} + + '@smithy/abort-controller@4.0.1': + resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} + engines: {node: '>=18.0.0'} + + '@smithy/abort-controller@4.0.2': + resolution: {integrity: sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==} + engines: {node: '>=18.0.0'} + + '@smithy/abort-controller@4.0.4': + resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.0.0': + resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.0.0': + resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@2.2.0': + resolution: {integrity: sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==} + engines: {node: '>=14.0.0'} + + '@smithy/config-resolver@4.0.1': + resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.1.0': + resolution: {integrity: sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.1.4': + resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.1.0': + resolution: {integrity: sha512-swFv0wQiK7TGHeuAp6lfF5Kw1dHWsTrCuc+yh4Kh05gEShjsE2RUxHucEerR9ih9JITNtaHcSpUThn5Y/vDw0A==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.1.2': + resolution: {integrity: sha512-htwQXkbdF13uwwDevz9BEzL5ABK+1sJpVQXywwGSH973AVOvisHNfpcB8A8761G6XgHoS2kHPqc9DqHJ2gp+/Q==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.3.0': + resolution: {integrity: sha512-r6gvs5OfRq/w+9unPm7B3po4rmWaGh0CIL/OwHntGGux7+RhOOZLGuurbeMgWV6W55ZuyMTypJLeH0vn/ZRaWQ==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.6.0': + resolution: {integrity: sha512-Pgvfb+TQ4wUNLyHzvgCP4aYZMh16y7GcfF59oirRHcgGgkH1e/s9C0nv/v3WP+Quymyr5je71HeFQCwh+44XLg==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@2.3.0': + resolution: {integrity: sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==} + engines: {node: '>=14.0.0'} + + '@smithy/credential-provider-imds@4.0.1': + resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.0.2': + resolution: {integrity: sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.0.6': + resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.0.1': + resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.0.4': + resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.0.1': + resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.0.4': + resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.0.1': + resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.1.2': + resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.0.1': + resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.0.4': + resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.0.1': + resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.0.4': + resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@2.5.0': + resolution: {integrity: sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==} + + '@smithy/fetch-http-handler@5.0.1': + resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.0.2': + resolution: {integrity: sha512-+9Dz8sakS9pe7f2cBocpJXdeVjMopUDLgZs1yWeu7h++WqSbjUYv/JAJwKwXw1HV6gq1jyWjxuyn24E2GhoEcQ==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.0.4': + resolution: {integrity: sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.0.1': + resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@2.2.0': + resolution: {integrity: sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==} + engines: {node: '>=14.0.0'} + + '@smithy/hash-node@4.0.1': + resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.2': + resolution: {integrity: sha512-VnTpYPnRUE7yVhWozFdlxcYknv9UN7CeOqSrMH+V877v4oqtVYuoqhIhtSjmGPvYrYnAkaM61sLMKHvxL138yg==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.4': + resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.0.1': + resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@2.2.0': + resolution: {integrity: sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==} + + '@smithy/invalid-dependency@4.0.1': + resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.0.2': + resolution: {integrity: sha512-GatB4+2DTpgWPday+mnUkoumP54u/MDM/5u44KF9hIu8jF0uafZtQLcdfIKkIcUNuF/fBojpLEHZS/56JqPeXQ==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.0.4': + resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@4.0.0': + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.0.1': + resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.0.4': + resolution: {integrity: sha512-uGLBVqcOwrLvGh/v/jw423yWHq/ofUGK1W31M2TNspLQbUV1Va0F5kTxtirkoHawODAZcjXTSGi7JwbnPcDPJg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@2.2.0': + resolution: {integrity: sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-content-length@4.0.1': + resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.2': + resolution: {integrity: sha512-hAfEXm1zU+ELvucxqQ7I8SszwQ4znWMbNv6PLMndN83JJN41EPuS93AIyh2N+gJ6x8QFhzSO6b7q2e6oClDI8A==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.4': + resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@2.5.1': + resolution: {integrity: sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-endpoint@4.0.1': + resolution: {integrity: sha512-hCCOPu9+sRI7Wj0rZKKnGylKXBEd9cQJetzjQqe8cT4PWvtQAbvNVa6cgAONiZg9m8LaXtP9/waxm3C3eO4hiw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.0.3': + resolution: {integrity: sha512-YdbmWhQF5kIxZjWqPIgboVfi8i5XgiYMM7GGKFMTvBei4XjNQfNv8sukT50ITvgnWKKKpOtp0C0h7qixLgb77Q==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.1.1': + resolution: {integrity: sha512-z5RmcHxjvScL+LwEDU2mTNCOhgUs4lu5PGdF1K36IPRmUHhNFxNxgenSB7smyDiYD4vdKQ7CAZtG5cUErqib9w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.1.13': + resolution: {integrity: sha512-xg3EHV/Q5ZdAO5b0UiIMj3RIOCobuS40pBBODguUDVdko6YK6QIzCVRrHTogVuEKglBWqWenRnZ71iZnLL3ZAQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@2.3.1': + resolution: {integrity: sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-retry@4.0.1': + resolution: {integrity: sha512-n3g2zZFgOWaz2ZYCy8+4wxSmq+HSTD8QKkRhFDv+nkxY1o7gzyp4PDz/+tOdcNPMPZ/A6Mt4aVECYNjQNiaHJw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.1.14': + resolution: {integrity: sha512-eoXaLlDGpKvdmvt+YBfRXE7HmIEtFF+DJCbTPwuLunP0YUnrydl+C4tS+vEM0+nyxXrX3PSUFqC+lP1+EHB1Tw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.1.2': + resolution: {integrity: sha512-qN/Mmxm8JWtFAjozJ8VSTM83KOX4cIks8UjDqqNkKIegzPrE5ZKPNCQ/DqUSIF90pue5a/NycNXnBod2NwvZZQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@2.3.0': + resolution: {integrity: sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-serde@4.0.1': + resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.2': + resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.3': + resolution: {integrity: sha512-rfgDVrgLEVMmMn0BI8O+8OVr6vXzjV7HZj57l0QxslhzbvVfikZbVfBVthjLHqib4BW44QhcIgJpvebHlRaC9A==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.8': + resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@2.2.0': + resolution: {integrity: sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-stack@4.0.1': + resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.0.2': + resolution: {integrity: sha512-eSPVcuJJGVYrFYu2hEq8g8WWdJav3sdrI4o2c6z/rjnYDd3xH9j9E7deZQCzFn4QvGPouLngH3dQ+QVTxv5bOQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.0.4': + resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@2.3.0': + resolution: {integrity: sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==} + engines: {node: '>=14.0.0'} + + '@smithy/node-config-provider@4.0.1': + resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.0.2': + resolution: {integrity: sha512-WgCkILRZfJwJ4Da92a6t3ozN/zcvYyJGUTmfGbgS/FkCcoCjl7G4FJaCDN1ySdvLvemnQeo25FdkyMSTSwulsw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.1.3': + resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@2.5.0': + resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==} + engines: {node: '>=14.0.0'} + + '@smithy/node-http-handler@4.0.1': + resolution: {integrity: sha512-ddQc7tvXiVLC5c3QKraGWde761KSk+mboCheZoWtuqnXh5l0WKyFy3NfDIM/dsKrI9HlLVH/21pi9wWK2gUFFA==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.0.2': + resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.0.4': + resolution: {integrity: sha512-/mdqabuAT3o/ihBGjL94PUbTSPSRJ0eeVTdgADzow0wRJ0rN4A27EOrtlK56MYiO1fDvlO3jVTCxQtQmK9dZ1g==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.0.6': + resolution: {integrity: sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@2.2.0': + resolution: {integrity: sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==} + engines: {node: '>=14.0.0'} + + '@smithy/property-provider@4.0.1': + resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.0.2': + resolution: {integrity: sha512-wNRoQC1uISOuNc2s4hkOYwYllmiyrvVXWMtq+TysNRVQaHm4yoafYQyjN/goYZS+QbYlPIbb/QRjaUZMuzwQ7A==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.0.4': + resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@2.0.5': + resolution: {integrity: sha512-d2hhHj34mA2V86doiDfrsy2fNTnUOowGaf9hKb0hIPHqvcnShU4/OSc4Uf1FwHkAdYF3cFXTrj5VGUYbEuvMdw==} + engines: {node: '>=14.0.0'} + + '@smithy/protocol-http@3.3.0': + resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==} + engines: {node: '>=14.0.0'} + + '@smithy/protocol-http@5.0.1': + resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.1.0': + resolution: {integrity: sha512-KxAOL1nUNw2JTYrtviRRjEnykIDhxc84qMBzxvu1MUfQfHTuBlCG7PA6EdVwqpJjH7glw7FqQoFxUJSyBQgu7g==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.1.2': + resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@2.2.0': + resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==} + engines: {node: '>=14.0.0'} + + '@smithy/querystring-builder@4.0.1': + resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.0.2': + resolution: {integrity: sha512-NTOs0FwHw1vimmQM4ebh+wFQvOwkEf/kQL6bSM1Lock+Bv4I89B3hGYoUEPkmvYPkDKyp5UdXJYu+PoTQ3T31Q==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.0.4': + resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@2.2.0': + resolution: {integrity: sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==} + engines: {node: '>=14.0.0'} + + '@smithy/querystring-parser@4.0.1': + resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.0.2': + resolution: {integrity: sha512-v6w8wnmZcVXjfVLjxw8qF7OwESD9wnpjp0Dqry/Pod0/5vcEA3qxCr+BhbOHlxS8O+29eLpT3aagxXGwIoEk7Q==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.0.4': + resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@2.1.5': + resolution: {integrity: sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==} + engines: {node: '>=14.0.0'} + + '@smithy/service-error-classification@4.0.1': + resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.0.3': + resolution: {integrity: sha512-FTbcajmltovWMjj3tksDQdD23b2w6gH+A0DYA1Yz3iSpjDj8fmkwy62UnXcWMy4d5YoMoSyLFHMfkEVEzbiN8Q==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.0.6': + resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@2.4.0': + resolution: {integrity: sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==} + engines: {node: '>=14.0.0'} + + '@smithy/shared-ini-file-loader@4.0.1': + resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.2': + resolution: {integrity: sha512-J9/gTWBGVuFZ01oVA6vdb4DAjf1XbDhK6sLsu3OS9qmLrS6KB5ygpeHiM3miIbj1qgSJ96GYszXFWv6ErJ8QEw==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.4': + resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@2.3.0': + resolution: {integrity: sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==} + engines: {node: '>=14.0.0'} + + '@smithy/signature-v4@5.0.1': + resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.1.0': + resolution: {integrity: sha512-4t5WX60sL3zGJF/CtZsUQTs3UrZEDO2P7pEaElrekbLqkWPYkgqNW1oeiNYC6xXifBnT9dVBOnNQRvOE9riU9w==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.1.2': + resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@2.5.1': + resolution: {integrity: sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==} + engines: {node: '>=14.0.0'} + + '@smithy/smithy-client@4.1.0': + resolution: {integrity: sha512-NiboZnrsrZY+Cy5hQNbYi+nVNssXVi2I+yL4CIKNIanOhH8kpC5PKQ2jx/MQpwVr21a3XcVoQBArlpRF36OeEQ==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.1.3': + resolution: {integrity: sha512-A2Hz85pu8BJJaYFdX8yb1yocqigyqBzn+OVaVgm+Kwi/DkN8vhN2kbDVEfADo6jXf5hPKquMLGA3UINA64UZ7A==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.2.1': + resolution: {integrity: sha512-fbniZef60QdsBc4ZY0iyI8xbFHIiC/QRtPi66iE4ufjiE/aaz7AfUXzcWMkpO8r+QhLeNRIfmPchIG+3/QDZ6g==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.4.5': + resolution: {integrity: sha512-+lynZjGuUFJaMdDYSTMnP/uPBBXXukVfrJlP+1U/Dp5SFTEI++w6NMga8DjOENxecOF71V9Z2DllaVDYRnGlkg==} + engines: {node: '>=18.0.0'} + + '@smithy/types@2.12.0': + resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} + engines: {node: '>=14.0.0'} + + '@smithy/types@4.1.0': + resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.2.0': + resolution: {integrity: sha512-7eMk09zQKCO+E/ivsjQv+fDlOupcFUCSC/L2YUPgwhvowVGWbPQHjEFcmjt7QQ4ra5lyowS92SV53Zc6XD4+fg==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.3.1': + resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@2.2.0': + resolution: {integrity: sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==} + + '@smithy/url-parser@4.0.1': + resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.0.2': + resolution: {integrity: sha512-Bm8n3j2ScqnT+kJaClSVCMeiSenK6jVAzZCNewsYWuZtnBehEz4r2qP0riZySZVfzB+03XZHJeqfmJDkeeSLiQ==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.0.4': + resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@2.3.0': + resolution: {integrity: sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-base64@4.0.0': + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@2.2.0': + resolution: {integrity: sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==} + + '@smithy/util-body-length-browser@4.0.0': + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@2.3.0': + resolution: {integrity: sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-body-length-node@4.0.0': + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.0.0': + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@2.3.0': + resolution: {integrity: sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==} + engines: {node: '>=14.0.0'} + + '@smithy/util-config-provider@4.0.0': + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@2.2.1': + resolution: {integrity: sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-defaults-mode-browser@4.0.1': + resolution: {integrity: sha512-nkQifWzWUHw/D0aLPgyKut+QnJ5X+5E8wBvGfvrYLLZ86xPfVO6MoqfQo/9s4bF3Xscefua1M6KLZtobHMWrBg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.0.21': + resolution: {integrity: sha512-wM0jhTytgXu3wzJoIqpbBAG5U6BwiubZ6QKzSbP7/VbmF1v96xlAbX2Am/mz0Zep0NLvLh84JT0tuZnk3wmYQA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.0.9': + resolution: {integrity: sha512-B8j0XsElvyhv6+5hlFf6vFV/uCSyLKcInpeXOGnOImX2mGXshE01RvPoGipTlRpIk53e6UfYj7WdDdgbVfXDZw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@2.3.1': + resolution: {integrity: sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-defaults-mode-node@4.0.1': + resolution: {integrity: sha512-LeAx2faB83litC9vaOdwFaldtto2gczUHxfFf8yoRwDU3cwL4/pDm7i0hxsuBCRk5mzHsrVGw+3EVCj32UZMdw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.0.21': + resolution: {integrity: sha512-/F34zkoU0GzpUgLJydHY8Rxu9lBn8xQC/s/0M0U9lLBkYbA1htaAFjWYJzpzsbXPuri5D1H8gjp2jBum05qBrA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.0.9': + resolution: {integrity: sha512-wTDU8P/zdIf9DOpV5qm64HVgGRXvqjqB/fJZTEQbrz3s79JHM/E7XkMm/876Oq+ZLHJQgnXM9QHDo29dlM62eA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.1': + resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.2': + resolution: {integrity: sha512-6QSutU5ZyrpNbnd51zRTL7goojlcnuOB55+F9VBD+j8JpRY50IGamsjlycrmpn8PQkmJucFW8A0LSfXj7jjtLQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.6': + resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@2.2.0': + resolution: {integrity: sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==} + engines: {node: '>=14.0.0'} + + '@smithy/util-hex-encoding@4.0.0': + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@2.2.0': + resolution: {integrity: sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-middleware@4.0.1': + resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.0.2': + resolution: {integrity: sha512-6GDamTGLuBQVAEuQ4yDQ+ti/YINf/MEmIegrEeg7DdB/sld8BX1lqt9RRuIcABOhAGTA50bRbPzErez7SlDtDQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.0.4': + resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@2.2.0': + resolution: {integrity: sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==} + engines: {node: '>= 14.0.0'} + + '@smithy/util-retry@4.0.1': + resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.0.3': + resolution: {integrity: sha512-DPuYjZQDXmKr/sNvy9Spu8R/ESa2e22wXZzSAY6NkjOLj6spbIje/Aq8rT97iUMdDj0qHMRIe+bTxvlU74d9Ng==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.0.6': + resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@2.2.0': + resolution: {integrity: sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-stream@4.0.1': + resolution: {integrity: sha512-Js16gOgU6Qht6qTPfuJgb+1YD4AEO+5Y1UPGWKSp3BNo8ONl/qhXSYDhFKJtwybRJynlCqvP5IeiaBsUmkSPTQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.0.2': + resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.2.0': + resolution: {integrity: sha512-Vj1TtwWnuWqdgQI6YTUF5hQ/0jmFiOYsc51CSMgj7QfyO+RF4EnT2HNjoviNlOOmgzgvf3f5yno+EiC4vrnaWQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.2.2': + resolution: {integrity: sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@2.2.0': + resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-uri-escape@4.0.0': + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.0.0': + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@2.2.0': + resolution: {integrity: sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-waiter@4.0.2': + resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.0.6': + resolution: {integrity: sha512-slcr1wdRbX7NFphXZOxtxRNA7hXAAtJAXJDE/wdoMAos27SIquVCKiSqfB6/28YzQ8FCsB5NKkhdM5gMADbqxg==} + engines: {node: '>=18.0.0'} + + '@speed-highlight/core@1.2.7': + resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.13': + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + + '@t3-oss/env-core@0.11.1': + resolution: {integrity: sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==} + peerDependencies: + typescript: '>=5.0.0' + zod: ^3.0.0 + peerDependenciesMeta: + typescript: + optional: true + + '@t3-oss/env-nextjs@0.11.1': + resolution: {integrity: sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==} + peerDependencies: + typescript: '>=5.0.0' + zod: ^3.0.0 + peerDependenciesMeta: + typescript: + optional: true + + '@tailwindcss/forms@0.5.7': + resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + + '@tailwindcss/typography@0.5.13': + resolution: {integrity: sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + '@tanstack/react-table@8.20.6': + resolution: {integrity: sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@tanstack/table-core@8.20.5': + resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + engines: {node: '>=12'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@ts-morph/common@0.11.1': + resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tsconfig/node18@1.0.3': + resolution: {integrity: sha512-RbwvSJQsuN9TB04AQbGULYfOGE/RnSFk/FLQ5b0NmDf5Kx2q/lABZbHQPKCO1vZ6Fiwkplu+yb9pGdLy1iGseQ==} + + '@tsconfig/strictest@2.0.5': + resolution: {integrity: sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==} + + '@types/better-sqlite3@7.6.12': + resolution: {integrity: sha512-fnQmj8lELIj7BSrZQAdBMHEHX8OZLYIHXqAKT1O7tDfLxaINzf00PMjw22r3N/xXh0w/sGHlO6SVaCQ2mj78lg==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/caseless@0.12.5': + resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/jsonwebtoken@9.0.8': + resolution: {integrity: sha512-7fx54m60nLFUVYlxAB1xpe9CBWX2vSrk50Y6ogRJ1v5xxtba7qXTg5BgYDN5dq+yuQQ9HaVlHJyAAt1/mxryFg==} + + '@types/long@4.0.2': + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/mock-fs@4.13.4': + resolution: {integrity: sha512-mXmM0o6lULPI8z3XNnQCpL0BGxPwx1Ul1wXYEPBGl4efShyxW2Rln0JOPEWGyZaYZMM6OVXM/15zUuFMY52ljg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@16.18.11': + resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==} + + '@types/node@18.19.112': + resolution: {integrity: sha512-i+Vukt9POdS/MBI7YrrkkI5fMfwFtOjphSmt4WXYLfwqsfr6z/HdCx7LqT9M7JktGob8WNgj8nFB4TbGNE4Cog==} + + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + + '@types/node@22.12.0': + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + + '@types/node@22.2.0': + resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/picomatch@4.0.0': + resolution: {integrity: sha512-J1Bng+wlyEERWSgJQU1Pi0HObCLVcr994xT/M+1wcl/yNRTGBupsCxthgkdYG+GCOMaQH7iSVUY3LJVBBqG7MQ==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.18': + resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react-dom@19.0.0': + resolution: {integrity: sha512-1KfiQKsH1o00p9m5ag12axHQSb3FOU9H20UTrujVSkNhuCrRHiQWFqgEnTNK5ZNfnzZv8UWrnXVqCmCF9fgY3w==} + + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 + + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + + '@types/react@19.0.0': + resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==} + + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + + '@types/request@2.48.12': + resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/ws@8.5.14': + resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@typescript-eslint/eslint-plugin@8.37.0': + resolution: {integrity: sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.37.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.37.0': + resolution: {integrity: sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/project-service@8.37.0': + resolution: {integrity: sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.37.0': + resolution: {integrity: sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.37.0': + resolution: {integrity: sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.37.0': + resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.37.0': + resolution: {integrity: sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.37.0': + resolution: {integrity: sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.37.0': + resolution: {integrity: sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.37.0': + resolution: {integrity: sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vercel/build-utils@9.1.0': + resolution: {integrity: sha512-ccknvdKH6LDB9ZzZaX8a8cOvFbI441APLHvKrunJE/wezY0skmfuEUK1qnfPApXMs4FMWzZQj2LO9qpzfgBPsQ==} + + '@vercel/error-utils@2.0.3': + resolution: {integrity: sha512-CqC01WZxbLUxoiVdh9B/poPbNpY9U+tO1N9oWHwTl5YAZxcqXmmWJ8KNMFItJCUUWdY3J3xv8LvAuQv2KZ5YdQ==} + + '@vercel/fun@1.1.2': + resolution: {integrity: sha512-n13RO1BUy8u6+kzDQ2++BRj4Y5EAiQPt+aV+Tb2HNTmToNr4Mu3dE1kFlaTVTxQzAT3hvIRlVEU/OMvF8LCFJw==} + engines: {node: '>= 16'} + + '@vercel/gatsby-plugin-vercel-analytics@1.0.11': + resolution: {integrity: sha512-iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==} + + '@vercel/gatsby-plugin-vercel-builder@2.0.65': + resolution: {integrity: sha512-MQX56fuL4WHDhT/fvKy9FMJigOymTAcCqw8rteF1wpRBAGhapSJkhT34I4mkfRRMFk1kIV7ijwuX+w1mpRrLjA==} + + '@vercel/go@3.2.1': + resolution: {integrity: sha512-ezjmuUvLigH9V4egEaX0SZ+phILx8lb+Zkp1iTqKI+yl/ibPAtVo5o+dLSRAXU9U01LBmaLu3O8Oxd/JpWYCOw==} + + '@vercel/hydrogen@1.0.11': + resolution: {integrity: sha512-nkSQ0LC7rFRdfkTUGm9pIbAfRb2Aat05u8ouN0FoUl7/I/YVgd0G6iRBN9bOMFUIiBiaKB4KqaZEFzVfUHpwYw==} + + '@vercel/next@4.4.4': + resolution: {integrity: sha512-/xMzlOMY8UHzCehRZzx8TIdzVRCu3O2O+Gb7R8uRX0/ci9cLIjJvi0WfLyR06Ny4fMqMzzUuRADp5ezfJjaO1Q==} + + '@vercel/nft@0.27.10': + resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} + engines: {node: '>=16'} + hasBin: true + + '@vercel/node@5.0.4': + resolution: {integrity: sha512-AXpTFDzomabvi/FmxDDTwmnuqRBDfy2i0nzjKwVPM3ch94EucPbiAk3+18iZOX/A+o2mBO4jKc1DmB0ifQF2Rw==} + + '@vercel/python@4.7.1': + resolution: {integrity: sha512-H4g/5e8unII4oQ+KN5IUvTZSzHmj+lLYDkAK15QGYgAxBtE/mHUvEZpPPo7DPUDIyfq8ybWB1bmk7H5kEahubQ==} + + '@vercel/redwood@2.1.13': + resolution: {integrity: sha512-e+4odfP2akWQq3WQ8mBkjqqwUcOvjhYmAhfg66IqTdIG15tIY6EOTMx/DhqXlvSDCyBbZPcqHb4/Xe662yPiEw==} + + '@vercel/remix-builder@5.1.1': + resolution: {integrity: sha512-OP1f6GI8MdylL4aUrX6n7OkN93jqmkWyLzQMeQMapVOXKvRFj05STZ4SQ/kNJkXdh3rEzjJWuCsJ6bklTHkJ7Q==} + + '@vercel/routing-utils@5.0.1': + resolution: {integrity: sha512-CH8sulzI8VNySWyJP+536fEX+oBnRuIVpw79jrn/0JwgCl7xb6E2JkKrMBT/mUCkZXh4vZZIOt23/QiIRK9Dyw==} + + '@vercel/ruby@2.2.0': + resolution: {integrity: sha512-FJF9gKVNHAljGOgV6zS5ou2N7ZgjOqMMtcPA5lsJEUI5/AZzVDWCmtcowTP80wEtHuupkd7d7M399FA082kXYQ==} + + '@vercel/static-build@2.5.43': + resolution: {integrity: sha512-r6Pi/yC1nUCuq6V7xDxfMKDkwla4qnqpJVohd7cTsWRDKlRzHJJX/YaDp/6yKrDaNH9UY6cBhj9ryL8QJWY63w==} + + '@vercel/static-config@3.0.0': + resolution: {integrity: sha512-2qtvcBJ1bGY0dYGYh3iM7yGKkk971FujLEDXzuW5wcZsPr1GSEjO/w2iSr3qve6nDDtBImsGoDEnus5FI4+fIw==} + + '@vitest/expect@2.1.1': + resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} + + '@vitest/mocker@2.1.1': + resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + peerDependencies: + '@vitest/spy': 2.1.1 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.1': + resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} + + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + + '@vitest/runner@2.1.1': + resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} + + '@vitest/snapshot@2.1.1': + resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} + + '@vitest/spy@2.1.1': + resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} + + '@vitest/utils@2.1.1': + resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + + abbrev@3.0.0: + resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} + engines: {node: ^18.17.0 || >=20.5.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + 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'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.6.3: + resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.0: + resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + 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.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + 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.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async-listen@1.2.0: + resolution: {integrity: sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA==} + + async-listen@3.0.0: + resolution: {integrity: sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==} + engines: {node: '>= 14'} + + async-listen@3.0.1: + resolution: {integrity: sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==} + engines: {node: '>= 14'} + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.15: + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws4fetch@1.0.20: + resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} + + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + better-sqlite3@11.8.1: + resolution: {integrity: sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + browserslist@4.24.5: + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.1.0: + resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} + engines: {node: '>= 0.8'} + + 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'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001664: + resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + + caniuse-lite@1.0.30001717: + resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.2.0: + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} + engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + 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==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.0: + resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==} + engines: {node: '>= 14.16.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + + cloudflare@4.4.1: + resolution: {integrity: sha512-wrtQ9WMflnfRcmdQZf/XfVVkeucgwzzYeqFDfgbNdADTaexsPwrtt3etzUvPGvVUeEk9kOPfNkl8MSzObxrIsg==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + code-block-writer@10.1.1: + resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + 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'} + + colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + 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@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + + content-type@1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-hrtime@3.0.0: + resolution: {integrity: sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==} + engines: {node: '>=8'} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.0: + resolution: {integrity: sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==} + engines: {node: '>= 0.6'} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + + core-js-compat@3.42.0: + resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + 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@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + + date-fns@3.6.0: + resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + 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==} + + decode-uri-component@0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} + engines: {node: '>=14.16'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + 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'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + + dinero.js@2.0.0-alpha.8: + resolution: {integrity: sha512-6bl+g6oh6iQ6vPR5Pd4qr7D+P5e51GYRUT3jl8HYqYeejYC5sd9OVTTbXC3WU7L25mAIbOm+diiTVz1rL4QLwg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dotenv@16.5.0: + resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + engines: {node: '>=12'} + + dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + + drizzle-kit@0.30.4: + resolution: {integrity: sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==} + hasBin: true + + drizzle-orm@0.38.4: + resolution: {integrity: sha512-s7/5BpLKO+WJRHspvpqTydxFob8i1vo2rEx4pY6TGY7QSMuUfWUuzaY0DIpXCkgHOo37BaFC+SJQb99dDUXT3Q==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=4' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.10.0' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/react': '>=18' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=14.0.0' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + prisma: '*' + react: '>=18' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/react': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + react: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + eciesjs@0.4.14: + resolution: {integrity: sha512-eJAgf9pdv214Hn98FlUzclRMYWF7WfoLlkS9nWMTm1qcCwn6Ad4EGD9lr9HXMBfSrZhYQujRE+p0adPRkctC6A==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + + edge-runtime@2.5.9: + resolution: {integrity: sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==} + engines: {node: '>=16'} + hasBin: true + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.149: + resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==} + + electron-to-chromium@1.5.29: + resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.1.0: + resolution: {integrity: sha512-EoulkdKF/1xa92q25PbjuDcgJ9RDHYU2Rs3SCIvs2/dSQ3BpmxneNHmA/M7fe60M3PrV7nNGTTNbkK62l6vXiQ==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + 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'} + + 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-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esbuild-android-64@0.14.47: + resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.14.47: + resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.14.47: + resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.14.47: + resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.14.47: + resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.14.47: + resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.14.47: + resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.14.47: + resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.14.47: + resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.47: + resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.47: + resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.47: + resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.47: + resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.47: + resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.47: + resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.47: + resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' + + esbuild-sunos-64@0.14.47: + resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.47: + resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.47: + resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.47: + resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.14.47: + resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + 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'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-next@14.2.14: + resolution: {integrity: sha512-TXwyjGICAlWC9O0OufS3koTsBKQH8l1xt3SY/aDuvtKHIwjTHplJKWVb1WOEX0OsDaxGbFXmfD2EY1sNfG0Y/w==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-next@15.0.4: + resolution: {integrity: sha512-97mLaAhbJKVQYXUBBrenRtEUAA6bNDPxWfaFEd6mEhKfpajP4wJrW4l7BUlHuYWxR8oQa9W014qBJpumpJQwWA==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-next@15.1.0: + resolution: {integrity: sha512-gADO+nKVseGso3DtOrYX9H7TxB/MuX7AUYhMlvQMqLYvUWu4HrOQuU7cC1HW74tHIqkAvXdwgAz3TCbczzSEXw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-next@15.1.3: + resolution: {integrity: sha512-wGYlNuWnh4ujuKtZvH+7B2Z2vy9nONZE6ztd+DKF7hAsIabkrxmD4TzYHzASHENo42lmz2tnT2B+zN2sOHvpJg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.11.0: + resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} + 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-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + 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-import@2.30.0: + resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + 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-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.0: + resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + 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-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.36.1: + resolution: {integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-simple-import-sort@12.1.1: + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} + peerDependencies: + eslint: '>=5.0.0' + + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + eslint@9.11.1: + resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + eslint@9.31.0: + resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/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'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events-intercept@2.0.0: + resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==} + + execa@3.2.0: + resolution: {integrity: sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==} + engines: {node: ^8.12.0 || >=9.7.0} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + express@5.0.1: + resolution: {integrity: sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==} + engines: {node: '>= 18'} + + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + farmhash-modern@1.1.0: + resolution: {integrity: sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==} + engines: {node: '>=18.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true + + fast-xml-parser@4.4.1: + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + hasBin: true + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + filter-obj@5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} + engines: {node: '>=14.16'} + + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + firebase-admin@13.0.2: + resolution: {integrity: sha512-YWVpoN+tZVSRXF0qC0gojoF5bSqvBRbnBk8+xUtFiguM2L4vB7f0moAwV1VVWDDHvTnvQ68OyTMpdp6wKo/clw==} + engines: {node: '>=18'} + + firebase@11.2.0: + resolution: {integrity: sha512-ztwPhBLAZMVNZjBeQzzTM4rk2rsRXmdFYcnvjAXh+StbiFVshHKaPO9VRGMUzF48du4Mkz6jN1wkmYCuUJPxLA==} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@2.5.2: + resolution: {integrity: sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==} + engines: {node: '>= 0.12'} + + form-data@4.0.3: + resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + 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@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-minipass@1.2.7: + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + + gcp-metadata@6.1.0: + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + engines: {node: '>=14'} + + geist@1.3.1: + resolution: {integrity: sha512-Q4gC1pBVPN+D579pBaz0TRRnGA4p9UK6elDY/xizXdFk/g4EKR5g0I+4p/Kj6gM0SajDBZ/0FvDV9ey9ud7BWw==} + peerDependencies: + next: '>=13.2.0' + + generic-pool@3.4.2: + resolution: {integrity: sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==} + engines: {node: '>= 4'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.8.0: + resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} + + getopts@2.3.0: + resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + google-auth-library@9.15.1: + resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} + engines: {node: '>=14'} + + google-gax@4.4.1: + resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==} + engines: {node: '>=14'} + + 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==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gtoken@7.1.0: + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + engines: {node: '>=14.0.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + 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'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-sanitize@5.0.1: + resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} + + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-errors@1.4.0: + resolution: {integrity: sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==} + engines: {node: '>= 0.6'} + + http-errors@1.7.3: + resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.9: + resolution: {integrity: sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + hasBin: true + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + 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. + + inherits@2.0.1: + resolution: {integrity: sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + 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'} + + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + 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-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + 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'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + jose@4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-to-ts@1.6.4: + resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + 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 + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + + jwa@2.0.0: + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} + + jwks-rsa@3.1.0: + resolution: {integrity: sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==} + engines: {node: '>=14'} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + jws@4.0.0: + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + knex@3.1.0: + resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==} + engines: {node: '>=16'} + hasBin: true + peerDependencies: + better-sqlite3: '*' + mysql: '*' + mysql2: '*' + pg: '*' + pg-native: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + better-sqlite3: + optional: true + mysql: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-native: + optional: true + sqlite3: + optional: true + tedious: + optional: true + + ky@1.7.5: + resolution: {integrity: sha512-HzhziW6sc5m0pwi5M196+7cEBtbt0lCYi67wNsiwMUmz833wloE0gbzJPWKs1gliFKQb34huItDQX97LyOdPdA==} + engines: {node: '>=18'} + + 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'} + + libsql@0.4.7: + resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} + cpu: [x64, arm64, wasm32] + os: [darwin, linux, win32] + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + limiter@1.1.5: + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + 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.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + long@5.2.4: + resolution: {integrity: sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==} + + 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 + + loupe@3.1.3: + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-memoizer@2.3.0: + resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} + + lucide-react@0.469.0: + resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + 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'} + + micro@9.3.5-canary.3: + resolution: {integrity: sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g==} + engines: {node: '>= 8.0.0'} + hasBin: true + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + 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-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + + miniflare@4.20250712.0: + resolution: {integrity: sha512-o7zYqG4pMi3gQTjiGhgZ82bQfexNwK+bzAaNlu8f7m3Kra4DcU5LC9nznfq2rfIBnUnMgwtU2VUfMlN1TuI8Og==} + engines: {node: '>=18.0.0'} + hasBin: true + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@1.3.3: + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} + + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + mnemonist@0.38.3: + resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} + + mock-fs@5.4.1: + resolution: {integrity: sha512-sz/Q8K1gXXXHR+qr0GZg2ysxCRr323kuN10O7CtQjraJsFDJ4SJ+0I5MzALz7aRp9lHk8Cc/YdsT95h9Ka1aFw==} + engines: {node: '>=12.0.0'} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.1: + resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + next-auth@4.24.11: + resolution: {integrity: sha512-pCFXzIDQX7xmHFs4KVH4luCjaCbuPRtZ9oBUjUhOk84mZ9WVPf94n87TxYI4rSRf9HmfHEF8Yep3JrYDVOo3Cw==} + peerDependencies: + '@auth/core': 0.34.2 + next: ^12.2.5 || ^13 || ^14 || ^15 + nodemailer: ^6.6.5 + react: ^17.0.2 || ^18 || ^19 + react-dom: ^17.0.2 || ^18 || ^19 + peerDependenciesMeta: + '@auth/core': + optional: true + nodemailer: + optional: true + + next-themes@0.4.4: + resolution: {integrity: sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@14.2.24: + resolution: {integrity: sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + + next@15.0.0-canary.174: + resolution: {integrity: sha512-lFZs5orI6COBYDYdveGoQq5/LlNx5L3n2j8B2/iYf8mG70MFxknBZT3R1S9bO71K+hUpZ9BTaU9O2OvYPxWH5w==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-2d16326d-20240930 + react-dom: ^18.2.0 || 19.0.0-rc-2d16326d-20240930 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.0.4: + resolution: {integrity: sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.1.0: + resolution: {integrity: sha512-QKhzt6Y8rgLNlj30izdMbxAwjHMFANnLwDwZ+WQh5sMhyt4lEBqDK9QpvWHtIM4rINKPoJ8aiRZKg5ULSybVHw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.1.3: + resolution: {integrity: sha512-5igmb8N8AEhWDYzogcJvtcRDU6n4cMGtBklxKD4biYv4LXN8+awc/bbQ2IM2NQHdVPgJ6XumYXfo3hBtErg1DA==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.1.7: + resolution: {integrity: sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.3.5: + resolution: {integrity: sha512-RkazLBMMDJSJ4XZQ81kolSpwiCt907l0xcgcpF4xC2Vml6QVcPNXW0NQRwQ80FFtSn7UM52XN0anaw8TEJXaiw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + next@15.4.0-canary.14: + resolution: {integrity: sha512-4/WNK9Uw/Js1QruZhZfUJWTLrXtL7cvVWLDi1PoCcGdVY91b/1U5jNDOt/Vebr/aJ6Xr5aF+PNHUTtcvBFPInw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-abi@3.73.0: + resolution: {integrity: sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==} + engines: {node: '>=10'} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + oauth@0.9.15: + resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + 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'} + + object-treeify@1.1.33: + resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} + engines: {node: '>= 10'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + obliterator@1.6.1: + resolution: {integrity: sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + oidc-token-hash@5.0.3: + resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} + engines: {node: ^10.13.0 || >=12.0.0} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.3.3: + resolution: {integrity: sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==} + + 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@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + openid-client@5.7.1: + resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@8.1.0: + resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} + engines: {node: '>=18'} + + os-paths@4.4.0: + resolution: {integrity: sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==} + engines: {node: '>= 6.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-finally@2.0.1: + resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-match@1.2.4: + resolution: {integrity: sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@1.9.0: + resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} + + path-to-regexp@6.1.0: + resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + pg-cloudflare@1.2.5: + resolution: {integrity: sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==} + + pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + + pg-connection-string@2.9.0: + resolution: {integrity: sha512-P2DEBKuvh5RClafLngkAuGe9OUlFV7ebu8w1kmaaOgPcpJd1RIFh7otETfI6hAR8YupOLFTY7nuvvIn7PLciUQ==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.10.0: + resolution: {integrity: sha512-DzZ26On4sQ0KmqnO34muPcmKbhrjmyiO4lCCR0VwEd7MjmiKf5NTg/6+apUEu0NF7ESa37CGzFxH513CoUmWnA==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.10.0: + resolution: {integrity: sha512-IpdytjudNuLv8nhlHs/UrVBhU0e78J0oIS/0AVdTbWxSOkFUVdsHC/NrorO6nXsQNDTT1kzDSOMJubBQviX18Q==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.16.0: + resolution: {integrity: sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-pr-new@0.0.51: + resolution: {integrity: sha512-jilf8dCTUE/iXaJSaNw5iPrNcSWd0s1b2deVXaTJVY3r610TBiio3uWjkmFIs2okThyPq8O+H55KcBcc+baBIQ==} + hasBin: true + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} + engines: {node: '>=18'} + hasBin: true + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + preact-render-to-string@5.2.6: + resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} + peerDependencies: + preact: '>=10' + + preact@10.25.4: + resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} + + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@3.8.0: + resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + + prisma@6.7.0: + resolution: {integrity: sha512-vArg+4UqnQ13CVhc2WUosemwh6hr6cr6FY2uzDvCIFwH8pu8BXVv38PktoMLVjtX7sbYThxbnZF5YiR8sN2clw==} + engines: {node: '>=18.18'} + hasBin: true + peerDependencies: + typescript: '>=5.1.0' + peerDependenciesMeta: + typescript: + optional: true + + promise-limit@2.7.0: + resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} + + promisepipe@3.0.0: + resolution: {integrity: sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA==} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qrcode.react@4.2.0: + resolution: {integrity: sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + query-registry@3.0.1: + resolution: {integrity: sha512-M9RxRITi2mHMVPU5zysNjctUT8bAPx6ltEXo/ir9+qmiM47Y7f0Ir3+OxUO5OjYAWdicBQRew7RtHtqUXydqlg==} + engines: {node: '>=20'} + + query-string@9.1.2: + resolution: {integrity: sha512-s3UlTyjxRux4KjwWaJsjh1Mp8zoCkSGKirbD9H89pEM9UOZsfpRZpdfzvsy2/mGlLfC3NnYVpy2gk7jXITHEtA==} + engines: {node: '>=18'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@7.0.1: + resolution: {integrity: sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==} + engines: {node: '>=18'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.4.1: + resolution: {integrity: sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==} + engines: {node: '>= 0.8'} + + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + + react-dom@19.0.0-rc-8b08e99e-20240713: + resolution: {integrity: sha512-nTbNXc5LVuFh+CwsmwogdYzHumZb9LVtWr1pE3DFHjY3y2VM/bYg8d00Vn6WWqQ8js3PY1w150NEEax4CrtsTA==} + peerDependencies: + react: 19.0.0-rc-8b08e99e-20240713 + + react-hook-form@7.54.2: + resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-icons@5.4.0: + resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==} + peerDependencies: + react: '*' + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + + react@19.0.0-rc-8b08e99e-20240713: + resolution: {integrity: sha512-j56t3i/sMNftehdO/cA0kFeKDh9Pi1FxKba6u0sRgzZ73HVWii64oUbFxkUmf6I/C9uCmovY3HnFpT7/0UTIaw==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + 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==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + remark-html@16.0.1: + resolution: {integrity: sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retry-request@7.0.2: + resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} + engines: {node: '>=14'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rollup@4.40.1: + resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.0.3: + 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==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + scheduler@0.25.0-rc-8b08e99e-20240713: + resolution: {integrity: sha512-vPAQ9hTVeh54O7K7nTH5rIr060XI2E5xXSLOeiDpZVjtZW9DhZMjq4L82aI8J5EZPwYlWH69SdKBwFMIleNkUQ==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + + server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.1: + resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + engines: {node: '>=14'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + 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==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + snakecase-keys@5.4.4: + resolution: {integrity: sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==} + engines: {node: '>=12'} + + sonner@1.7.3: + resolution: {integrity: sha512-KXLWQfyR6AHpYZuQk8eO8fCbZSJY3JOpgsu/tbGc++jgPjj8JsR1ZpO8vFhqR/OxvWMQCSAmnSShY0gr4FPqHg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + split-on-first@3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} + engines: {node: '>=12'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + stat-mode@0.3.0: + resolution: {integrity: sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + 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'} + + stream-events@1.0.5: + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + stream-to-array@2.3.0: + resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==} + + stream-to-promise@2.2.0: + resolution: {integrity: sha512-HAGUASw8NT0k8JvIVutB2Y/9iBk7gpgEyAudXwNJmZERdMITGdajOa4VJfD/kNiA3TppQpTP4J+CtcHwdzKBAw==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + 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.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + 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.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + 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'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + 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-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + stubs@3.0.0: + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@10.0.0: + resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} + engines: {node: '>=18'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swr@2.2.5: + resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + + tailwind-merge@2.6.0: + resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@3.4.11: + resolution: {integrity: sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@3.4.5: + resolution: {integrity: sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@4.4.18: + resolution: {integrity: sha512-ZuOtqqmkV9RE1+4odd+MhBpibmCxNP6PJhH/h2OqNuotTX7/XHPZQJv2pKvWMplFH9SIZZhitehh6vBH6LO8Pg==} + engines: {node: '>=4.5'} + + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + + tarn@3.0.2: + resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} + engines: {node: '>=8.0.0'} + + teeny-request@9.0.0: + resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} + engines: {node: '>=14'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + terser@5.16.9: + resolution: {integrity: sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==} + engines: {node: '>=10'} + hasBin: true + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tildify@2.0.0: + resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} + engines: {node: '>=8'} + + time-span@4.0.0: + resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} + engines: {node: '>=10'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.0: + resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} + engines: {node: '>=0.6'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-kill@1.2.2: + 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-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-morph@12.0.0: + resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==} + + ts-node@10.9.1: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + ts-toolbelt@6.15.5: + resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} + + ts-tqdm@0.8.6: + resolution: {integrity: sha512-3X3M1PZcHtgQbnwizL+xU8CAgbYbeLHrrDwL9xxcZZrV5J+e7loJm1XrXozHjSkl44J0Zg0SgA8rXbh83kCkcQ==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript-eslint@8.37.0: + resolution: {integrity: sha512-TnbEjzkE9EmcO0Q2zM+GE8NQLItNAJpMmED1BdgoBMYNdqMhzlbqfdSwiRlAzEK2pA9UzVW0gzaaIzXWg2BjfA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + uid-promise@1.0.0: + resolution: {integrity: sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + + undici@6.21.2: + resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} + engines: {node: '>=18.17'} + + undici@7.11.0: + resolution: {integrity: sha512-heTSIac3iLhsmZhUCjyS3JQEkZELateufzZuBaVM5RHXdSBMb1LPMQf5x+FH7qjsZYDP0ttAc3nnVpUB+wYbOg==} + engines: {node: '>=20.18.1'} + + unenv@2.0.0-rc.17: + resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + 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.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + urlpattern-polyfill@10.1.0: + resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} + + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@11.0.5: + resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==} + hasBin: true + + uuid@3.3.2: + resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@5.0.1: + 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'} + + vercel@39.4.2: + resolution: {integrity: sha512-A3ilkwJ83xLwAYAI733hHthJ4DO0zXjQOvCWS9QYklWQTBEj0RllyRkrfGd2jypgNDZuAbDS/iFMsV+GuuaTHw==} + engines: {node: '>= 16'} + hasBin: true + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-node@2.1.1: + resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.4.19: + resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@2.1.1: + resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.1 + '@vitest/ui': 2.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + web-vitals@0.2.4: + resolution: {integrity: sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + workerd@1.20250712.0: + resolution: {integrity: sha512-7h+k1OxREpiZW0849g0uQNexRWMcs5i5gUGhJzCY8nIx6Tv4D/ndlXJ47lEFj7/LQdp165IL9dM2D5uDiedZrg==} + engines: {node: '>=16'} + hasBin: true + + wrangler@4.24.4: + resolution: {integrity: sha512-qjDdZWt/aiK19YrQbjFjJoa9+y+arsXcUpRomwMdmbccZw/w5QgDsEeXMxoPSisUDQlW9ZX5A68ZPWY1/im54w==} + engines: {node: '>=18.0.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20250712.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-app-paths@5.1.0: + resolution: {integrity: sha512-RAQ3WkPf4KTU1A8RtFx3gWywzVKe00tfOPFfl2NDGqbIFENQO4kqAJp7mhQjNj/33W5x5hiWWUdyfPq/5SU3QA==} + engines: {node: '>=6'} + + xdg-portable@7.3.0: + resolution: {integrity: sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw==} + engines: {node: '>= 6.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yauzl-clone@1.0.4: + resolution: {integrity: sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==} + engines: {node: '>=6'} + + yauzl-promise@2.1.3: + resolution: {integrity: sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA==} + engines: {node: '>=6'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + + zod-package-json@1.1.0: + resolution: {integrity: sha512-RvEsa3W/NCqEBMtnoE09GRVelA3IqRcKaijEiM6CEGsD19qLurf0HjrYMHwOqImOszlLL0ja63DPJeeU4pm7oQ==} + engines: {node: '>=20'} + + zod@3.22.3: + resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@ast-grep/napi-darwin-arm64@0.35.0': + optional: true + + '@ast-grep/napi-darwin-x64@0.35.0': + optional: true + + '@ast-grep/napi-linux-arm64-gnu@0.35.0': + optional: true + + '@ast-grep/napi-linux-arm64-musl@0.35.0': + optional: true + + '@ast-grep/napi-linux-x64-gnu@0.35.0': + optional: true + + '@ast-grep/napi-linux-x64-musl@0.35.0': + optional: true + + '@ast-grep/napi-win32-arm64-msvc@0.35.0': + optional: true + + '@ast-grep/napi-win32-ia32-msvc@0.35.0': + optional: true + + '@ast-grep/napi-win32-x64-msvc@0.35.0': + optional: true + + '@ast-grep/napi@0.35.0': + optionalDependencies: + '@ast-grep/napi-darwin-arm64': 0.35.0 + '@ast-grep/napi-darwin-x64': 0.35.0 + '@ast-grep/napi-linux-arm64-gnu': 0.35.0 + '@ast-grep/napi-linux-arm64-musl': 0.35.0 + '@ast-grep/napi-linux-x64-gnu': 0.35.0 + '@ast-grep/napi-linux-x64-musl': 0.35.0 + '@ast-grep/napi-win32-arm64-msvc': 0.35.0 + '@ast-grep/napi-win32-ia32-msvc': 0.35.0 + '@ast-grep/napi-win32-x64-msvc': 0.35.0 + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.775.0 + tslib: 2.8.1 + + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.775.0 + tslib: 2.8.1 + + '@aws-crypto/ie11-detection@3.0.0': + dependencies: + tslib: 1.14.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-locate-window': 3.693.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@3.0.0': + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-locate-window': 3.693.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-locate-window': 3.693.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.775.0 + tslib: 1.14.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.734.0 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@3.0.0': + dependencies: + tslib: 1.14.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@3.0.0': + dependencies: + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.775.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-sdk/client-cloudfront@3.398.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.398.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@aws-sdk/xml-builder': 3.310.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-retry': 2.2.0 + '@smithy/util-stream': 2.2.0 + '@smithy/util-utf8': 2.3.0 + '@smithy/util-waiter': 2.2.0 + fast-xml-parser: 4.2.5 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-dynamodb@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-endpoint-discovery': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.6.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-retry': 4.1.14 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.21 + '@smithy/util-defaults-mode-node': 4.0.21 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-lambda@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.6.0 + '@smithy/eventstream-serde-browser': 4.0.4 + '@smithy/eventstream-serde-config-resolver': 4.1.2 + '@smithy/eventstream-serde-node': 4.0.4 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-retry': 4.1.14 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.21 + '@smithy/util-defaults-mode-node': 4.0.21 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-stream': 4.2.2 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-s3@3.726.1': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/client-sts': 3.726.1 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/middleware-bucket-endpoint': 3.726.0 + '@aws-sdk/middleware-expect-continue': 3.723.0 + '@aws-sdk/middleware-flexible-checksums': 3.723.0 + '@aws-sdk/middleware-host-header': 3.723.0 + '@aws-sdk/middleware-location-constraint': 3.723.0 + '@aws-sdk/middleware-logger': 3.723.0 + '@aws-sdk/middleware-recursion-detection': 3.723.0 + '@aws-sdk/middleware-sdk-s3': 3.723.0 + '@aws-sdk/middleware-ssec': 3.723.0 + '@aws-sdk/middleware-user-agent': 3.726.0 + '@aws-sdk/region-config-resolver': 3.723.0 + '@aws-sdk/signature-v4-multi-region': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-endpoints': 3.726.0 + '@aws-sdk/util-user-agent-browser': 3.723.0 + '@aws-sdk/util-user-agent-node': 3.726.0 + '@aws-sdk/xml-builder': 3.723.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.0 + '@smithy/eventstream-serde-browser': 4.0.1 + '@smithy/eventstream-serde-config-resolver': 4.0.1 + '@smithy/eventstream-serde-node': 4.0.1 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-blob-browser': 4.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/hash-stream-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/md5-js': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.1 + '@smithy/middleware-retry': 4.0.1 + '@smithy/middleware-serde': 4.0.1 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.0 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.1 + '@smithy/util-defaults-mode-node': 4.0.1 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + '@smithy/util-stream': 4.0.1 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sqs@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-node': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-sdk-sqs': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.6.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/md5-js': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-retry': 4.1.14 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.21 + '@smithy/util-defaults-mode-node': 4.0.21 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sts': 3.726.1 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/middleware-host-header': 3.723.0 + '@aws-sdk/middleware-logger': 3.723.0 + '@aws-sdk/middleware-recursion-detection': 3.723.0 + '@aws-sdk/middleware-user-agent': 3.726.0 + '@aws-sdk/region-config-resolver': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-endpoints': 3.726.0 + '@aws-sdk/util-user-agent-browser': 3.723.0 + '@aws-sdk/util-user-agent-node': 3.726.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.2 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.3 + '@smithy/middleware-retry': 4.0.1 + '@smithy/middleware-serde': 4.0.2 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.2 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.1 + '@smithy/util-defaults-mode-node': 4.0.1 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.398.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.726.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/middleware-host-header': 3.723.0 + '@aws-sdk/middleware-logger': 3.723.0 + '@aws-sdk/middleware-recursion-detection': 3.723.0 + '@aws-sdk/middleware-user-agent': 3.726.0 + '@aws-sdk/region-config-resolver': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-endpoints': 3.726.0 + '@aws-sdk/util-user-agent-browser': 3.723.0 + '@aws-sdk/util-user-agent-node': 3.726.0 + '@smithy/config-resolver': 4.1.0 + '@smithy/core': 3.3.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/hash-node': 4.0.2 + '@smithy/invalid-dependency': 4.0.2 + '@smithy/middleware-content-length': 4.0.2 + '@smithy/middleware-endpoint': 4.1.1 + '@smithy/middleware-retry': 4.1.2 + '@smithy/middleware-serde': 4.0.3 + '@smithy/middleware-stack': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.9 + '@smithy/util-defaults-mode-node': 4.0.9 + '@smithy/util-endpoints': 3.0.2 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.3 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.6.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-retry': 4.1.14 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.21 + '@smithy/util-defaults-mode-node': 4.0.21 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.398.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-sdk-sts': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + fast-xml-parser: 4.2.5 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.726.1': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/core': 3.723.0 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/middleware-host-header': 3.723.0 + '@aws-sdk/middleware-logger': 3.723.0 + '@aws-sdk/middleware-recursion-detection': 3.723.0 + '@aws-sdk/middleware-user-agent': 3.726.0 + '@aws-sdk/region-config-resolver': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-endpoints': 3.726.0 + '@aws-sdk/util-user-agent-browser': 3.723.0 + '@aws-sdk/util-user-agent-node': 3.726.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.2 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.3 + '@smithy/middleware-retry': 4.0.1 + '@smithy/middleware-serde': 4.0.2 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.2 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.1 + '@smithy/util-defaults-mode-node': 4.0.1 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/core': 3.1.2 + '@smithy/node-config-provider': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 + + '@aws-sdk/core@3.734.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/core': 3.3.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.1.0 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 + + '@aws-sdk/core@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/core': 3.6.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-utf8': 4.0.0 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.723.0': + dependencies: + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.723.0': + dependencies: + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/property-provider': 4.0.1 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + '@smithy/util-stream': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/node-http-handler': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.398.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.398.0 + '@aws-sdk/credential-provider-process': 3.398.0 + '@aws-sdk/credential-provider-sso': 3.398.0 + '@aws-sdk/credential-provider-web-identity': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)': + dependencies: + '@aws-sdk/client-sts': 3.726.1 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/credential-provider-env': 3.723.0 + '@aws-sdk/credential-provider-http': 3.723.0 + '@aws-sdk/credential-provider-process': 3.723.0 + '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) + '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/types': 3.723.0 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-ini@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/credential-provider-env': 3.840.0 + '@aws-sdk/credential-provider-http': 3.840.0 + '@aws-sdk/credential-provider-process': 3.840.0 + '@aws-sdk/credential-provider-sso': 3.840.0 + '@aws-sdk/credential-provider-web-identity': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.398.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.398.0 + '@aws-sdk/credential-provider-ini': 3.398.0 + '@aws-sdk/credential-provider-process': 3.398.0 + '@aws-sdk/credential-provider-sso': 3.398.0 + '@aws-sdk/credential-provider-web-identity': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)': + dependencies: + '@aws-sdk/credential-provider-env': 3.723.0 + '@aws-sdk/credential-provider-http': 3.723.0 + '@aws-sdk/credential-provider-ini': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/credential-provider-process': 3.723.0 + '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) + '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/types': 3.723.0 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' + - aws-crt + + '@aws-sdk/credential-provider-node@3.840.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.840.0 + '@aws-sdk/credential-provider-http': 3.840.0 + '@aws-sdk/credential-provider-ini': 3.840.0 + '@aws-sdk/credential-provider-process': 3.840.0 + '@aws-sdk/credential-provider-sso': 3.840.0 + '@aws-sdk/credential-provider-web-identity': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-process@3.723.0': + dependencies: + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-process@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.398.0': + dependencies: + '@aws-sdk/client-sso': 3.398.0 + '@aws-sdk/token-providers': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-sso@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))': + dependencies: + '@aws-sdk/client-sso': 3.726.0 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) + '@aws-sdk/types': 3.723.0 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + + '@aws-sdk/credential-provider-sso@3.840.0': + dependencies: + '@aws-sdk/client-sso': 3.840.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/token-providers': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.726.1)': + dependencies: + '@aws-sdk/client-sts': 3.726.1 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-web-identity@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/endpoint-cache@3.804.0': + dependencies: + mnemonist: 0.38.3 + tslib: 2.8.1 + + '@aws-sdk/middleware-bucket-endpoint@3.726.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-arn-parser': 3.723.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-endpoint-discovery@3.840.0': + dependencies: + '@aws-sdk/endpoint-cache': 3.804.0 + '@aws-sdk/types': 3.840.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.723.0': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/is-array-buffer': 4.0.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.0.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-location-constraint@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.723.0': + dependencies: + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-arn-parser': 3.723.0 + '@smithy/core': 3.1.2 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.0.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.740.0': + dependencies: + '@aws-sdk/core': 3.734.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-arn-parser': 3.723.0 + '@smithy/core': 3.3.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.0.1 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-stream': 4.2.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-sqs@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-sts@3.398.0': + dependencies: + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-signing@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/signature-v4': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.726.0': + dependencies: + '@aws-sdk/core': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@aws-sdk/util-endpoints': 3.726.0 + '@smithy/core': 3.1.2 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@smithy/core': 3.6.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.840.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.840.0 + '@aws-sdk/middleware-host-header': 3.840.0 + '@aws-sdk/middleware-logger': 3.840.0 + '@aws-sdk/middleware-recursion-detection': 3.840.0 + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/region-config-resolver': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@aws-sdk/util-endpoints': 3.840.0 + '@aws-sdk/util-user-agent-browser': 3.840.0 + '@aws-sdk/util-user-agent-node': 3.840.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.6.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-retry': 4.1.14 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.21 + '@smithy/util-defaults-mode-node': 4.0.21 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 + + '@aws-sdk/region-config-resolver@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 + + '@aws-sdk/s3-request-presigner@3.741.0': + dependencies: + '@aws-sdk/signature-v4-multi-region': 3.740.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-format-url': 3.734.0 + '@smithy/middleware-endpoint': 4.0.3 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.723.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.723.0 + '@aws-sdk/types': 3.723.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.740.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.740.0 + '@aws-sdk/types': 3.734.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.398.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))': + dependencies: + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) + '@aws-sdk/types': 3.723.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.840.0': + dependencies: + '@aws-sdk/core': 3.840.0 + '@aws-sdk/nested-clients': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.398.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/types@3.723.0': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/types@3.734.0': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/types@3.775.0': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/types@3.840.0': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.723.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.726.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/types': 4.1.0 + '@smithy/util-endpoints': 3.0.1 + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + '@smithy/util-endpoints': 3.0.6 + tslib: 2.8.1 + + '@aws-sdk/util-format-url@3.734.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.693.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.12.0 + bowser: 2.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.723.0': + dependencies: + '@aws-sdk/types': 3.723.0 + '@smithy/types': 4.1.0 + bowser: 2.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.840.0': + dependencies: + '@aws-sdk/types': 3.840.0 + '@smithy/types': 4.3.1 + bowser: 2.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.398.0': + dependencies: + '@aws-sdk/types': 3.398.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.726.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.726.0 + '@aws-sdk/types': 3.723.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.840.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.840.0 + '@aws-sdk/types': 3.840.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@aws-sdk/util-utf8-browser@3.259.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.310.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.723.0': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.821.0': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/runtime@7.25.7': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.27.1': {} + + '@changesets/apply-release-plan@7.0.12': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.1 + + '@changesets/assemble-release-plan@6.0.6': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.1 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/changelog-github@0.5.1': + dependencies: + '@changesets/get-github-info': 0.6.0 + '@changesets/types': 6.1.0 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + + '@changesets/cli@2.29.2': + dependencies: + '@changesets/apply-release-plan': 7.0.12 + '@changesets/assemble-release-plan': 6.0.6 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-release-plan': 4.0.10 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.1 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.1.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.3': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.1 + + '@changesets/get-github-info@0.6.0': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@changesets/get-release-plan@4.0.10': + dependencies: + '@changesets/assemble-release-plan': 6.0.6 + '@changesets/config': 3.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.1': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.5': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.1 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.1 + prettier: 2.8.8 + + '@clerk/backend@1.21.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@clerk/shared': 2.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@clerk/types': 4.40.0 + cookie: 0.7.0 + snakecase-keys: 5.4.4 + tslib: 2.4.1 + transitivePeerDependencies: + - react + - react-dom + + '@clerk/clerk-react@5.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@clerk/shared': 2.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@clerk/types': 4.40.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.4.1 + + '@clerk/nextjs@6.9.6(next@14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@clerk/backend': 1.21.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@clerk/clerk-react': 5.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@clerk/shared': 2.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@clerk/types': 4.40.0 + crypto-js: 4.2.0 + next: 14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + server-only: 0.0.1 + tslib: 2.4.1 + + '@clerk/shared@2.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@clerk/types': 4.40.0 + dequal: 2.0.3 + glob-to-regexp: 0.4.1 + js-cookie: 3.0.5 + std-env: 3.9.0 + swr: 2.2.5(react@18.3.1) + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@clerk/types@4.40.0': + dependencies: + csstype: 3.1.1 + + '@cloudflare/kv-asset-handler@0.4.0': + dependencies: + mime: 3.0.0 + + '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250712.0)': + dependencies: + unenv: 2.0.0-rc.17 + optionalDependencies: + workerd: 1.20250712.0 + + '@cloudflare/workerd-darwin-64@1.20250712.0': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20250712.0': + optional: true + + '@cloudflare/workerd-linux-64@1.20250712.0': + optional: true + + '@cloudflare/workerd-linux-arm64@1.20250712.0': + optional: true + + '@cloudflare/workerd-windows-64@1.20250712.0': + optional: true + + '@cloudflare/workers-types@4.20250109.0': {} + + '@cloudflare/workers-types@4.20250214.0': {} + + '@cloudflare/workers-types@4.20250224.0': {} + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@dinero.js/calculator-number@2.0.0-alpha.8': + dependencies: + '@dinero.js/core': 2.0.0-alpha.8 + + '@dinero.js/core@2.0.0-alpha.8': + dependencies: + '@dinero.js/currencies': 2.0.0-alpha.8 + + '@dinero.js/currencies@2.0.0-alpha.8': {} + + '@dotenvx/dotenvx@1.31.0': + dependencies: + commander: 11.1.0 + dotenv: 16.5.0 + eciesjs: 0.4.14 + execa: 5.1.1 + fdir: 6.4.4(picomatch@4.0.2) + ignore: 5.3.2 + object-treeify: 1.1.33 + picomatch: 4.0.2 + which: 4.0.0 + + '@drizzle-team/brocli@0.10.2': {} + + '@ecies/ciphers@0.2.3(@noble/ciphers@1.3.0)': + dependencies: + '@noble/ciphers': 1.3.0 + + '@edge-runtime/format@2.2.1': {} + + '@edge-runtime/node-utils@2.3.0': {} + + '@edge-runtime/ponyfill@2.4.2': {} + + '@edge-runtime/primitives@4.1.0': {} + + '@edge-runtime/vm@3.2.0': + dependencies: + '@edge-runtime/primitives': 4.1.0 + + '@emnapi/runtime@1.4.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild-kit/core-utils@3.3.2': + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 + + '@esbuild-kit/esm-loader@2.6.5': + dependencies: + '@esbuild-kit/core-utils': 3.3.2 + get-tsconfig: 4.8.0 + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/aix-ppc64@0.25.4': + optional: true + + '@esbuild/android-arm64@0.18.20': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.25.4': + optional: true + + '@esbuild/android-arm@0.18.20': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-arm@0.25.4': + optional: true + + '@esbuild/android-x64@0.18.20': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/android-x64@0.25.4': + optional: true + + '@esbuild/darwin-arm64@0.18.20': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.25.4': + optional: true + + '@esbuild/darwin-x64@0.18.20': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.25.4': + optional: true + + '@esbuild/freebsd-arm64@0.18.20': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.25.4': + optional: true + + '@esbuild/freebsd-x64@0.18.20': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.25.4': + optional: true + + '@esbuild/linux-arm64@0.18.20': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.25.4': + optional: true + + '@esbuild/linux-arm@0.18.20': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-arm@0.25.4': + optional: true + + '@esbuild/linux-ia32@0.18.20': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.25.4': + optional: true + + '@esbuild/linux-loong64@0.18.20': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.25.4': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.25.4': + optional: true + + '@esbuild/linux-ppc64@0.18.20': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.25.4': + optional: true + + '@esbuild/linux-riscv64@0.18.20': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.25.4': + optional: true + + '@esbuild/linux-s390x@0.18.20': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.25.4': + optional: true + + '@esbuild/linux-x64@0.18.20': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/linux-x64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.4': + optional: true + + '@esbuild/netbsd-x64@0.18.20': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.25.4': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.25.4': + optional: true + + '@esbuild/openbsd-x64@0.18.20': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.25.4': + optional: true + + '@esbuild/sunos-x64@0.18.20': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.25.4': + optional: true + + '@esbuild/win32-arm64@0.18.20': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.25.4': + optional: true + + '@esbuild/win32-ia32@0.18.20': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.25.4': + optional: true + + '@esbuild/win32-x64@0.18.20': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@esbuild/win32-x64@0.25.4': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.4.0(eslint@9.19.0(jiti@1.21.6))': + dependencies: + eslint: 9.19.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.11.1(jiti@1.21.6))': + dependencies: + eslint: 9.11.1(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.19.0(jiti@1.21.6))': + dependencies: + eslint: 9.19.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@1.21.6))': + dependencies: + eslint: 9.31.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-array@0.19.2': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-array@0.21.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.3.0': {} + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.13.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.15.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.6.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@eslint/js@9.11.1': {} + + '@eslint/js@9.19.0': {} + + '@eslint/js@9.31.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.5': + dependencies: + '@eslint/core': 0.10.0 + levn: 0.4.1 + + '@eslint/plugin-kit@0.2.8': + dependencies: + '@eslint/core': 0.13.0 + levn: 0.4.1 + + '@eslint/plugin-kit@0.3.3': + dependencies: + '@eslint/core': 0.15.1 + levn: 0.4.1 + + '@fastify/busboy@2.1.1': {} + + '@fastify/busboy@3.1.1': {} + + '@firebase/analytics-compat@0.2.17(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/analytics': 0.10.11(@firebase/app@0.10.18) + '@firebase/analytics-types': 0.8.3 + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/analytics-types@0.8.3': {} + + '@firebase/analytics@0.10.11(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/app-check-compat@0.3.18(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-check': 0.8.11(@firebase/app@0.10.18) + '@firebase/app-check-types': 0.5.3 + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/app-check-interop-types@0.3.3': {} + + '@firebase/app-check-types@0.5.3': {} + + '@firebase/app-check@0.8.11(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/app-compat@0.2.48': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/app-types@0.9.3': {} + + '@firebase/app@0.10.18': + dependencies: + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + idb: 7.1.1 + tslib: 2.8.1 + + '@firebase/auth-compat@0.5.17(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/auth': 1.8.2(@firebase/app@0.10.18) + '@firebase/auth-types': 0.12.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3) + '@firebase/component': 0.6.12 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + - '@react-native-async-storage/async-storage' + + '@firebase/auth-interop-types@0.2.4': {} + + '@firebase/auth-types@0.12.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)': + dependencies: + '@firebase/app-types': 0.9.3 + '@firebase/util': 1.10.3 + + '@firebase/auth@1.8.2(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/component@0.6.12': + dependencies: + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/data-connect@0.2.0(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/auth-interop-types': 0.2.4 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/database-compat@2.0.2': + dependencies: + '@firebase/component': 0.6.12 + '@firebase/database': 1.0.11 + '@firebase/database-types': 1.0.8 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/database-types@1.0.8': + dependencies: + '@firebase/app-types': 0.9.3 + '@firebase/util': 1.10.3 + + '@firebase/database@1.0.11': + dependencies: + '@firebase/app-check-interop-types': 0.3.3 + '@firebase/auth-interop-types': 0.2.4 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + faye-websocket: 0.11.4 + tslib: 2.8.1 + + '@firebase/firestore-compat@0.3.41(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/firestore': 4.7.6(@firebase/app@0.10.18) + '@firebase/firestore-types': 3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3) + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + + '@firebase/firestore-types@3.0.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)': + dependencies: + '@firebase/app-types': 0.9.3 + '@firebase/util': 1.10.3 + + '@firebase/firestore@4.7.6(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + '@firebase/webchannel-wrapper': 1.0.3 + '@grpc/grpc-js': 1.9.15 + '@grpc/proto-loader': 0.7.13 + tslib: 2.8.1 + + '@firebase/functions-compat@0.3.18(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/functions': 0.12.1(@firebase/app@0.10.18) + '@firebase/functions-types': 0.6.3 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/functions-types@0.6.3': {} + + '@firebase/functions@0.12.1(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/app-check-interop-types': 0.3.3 + '@firebase/auth-interop-types': 0.2.4 + '@firebase/component': 0.6.12 + '@firebase/messaging-interop-types': 0.2.3 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/installations-compat@0.2.12(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/installations-types': 0.5.3(@firebase/app-types@0.9.3) + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + + '@firebase/installations-types@0.5.3(@firebase/app-types@0.9.3)': + dependencies: + '@firebase/app-types': 0.9.3 + + '@firebase/installations@0.6.12(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/util': 1.10.3 + idb: 7.1.1 + tslib: 2.8.1 + + '@firebase/logger@0.4.4': + dependencies: + tslib: 2.8.1 + + '@firebase/messaging-compat@0.2.16(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/messaging': 0.12.16(@firebase/app@0.10.18) + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/messaging-interop-types@0.2.3': {} + + '@firebase/messaging@0.12.16(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/messaging-interop-types': 0.2.3 + '@firebase/util': 1.10.3 + idb: 7.1.1 + tslib: 2.8.1 + + '@firebase/performance-compat@0.2.12(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/performance': 0.6.12(@firebase/app@0.10.18) + '@firebase/performance-types': 0.2.3 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/performance-types@0.2.3': {} + + '@firebase/performance@0.6.12(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/remote-config-compat@0.2.12(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/remote-config': 0.5.0(@firebase/app@0.10.18) + '@firebase/remote-config-types': 0.4.0 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + + '@firebase/remote-config-types@0.4.0': {} + + '@firebase/remote-config@0.5.0(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/storage-compat@0.3.15(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app-compat': 0.2.48 + '@firebase/component': 0.6.12 + '@firebase/storage': 0.13.5(@firebase/app@0.10.18) + '@firebase/storage-types': 0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3) + '@firebase/util': 1.10.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + + '@firebase/storage-types@0.8.3(@firebase/app-types@0.9.3)(@firebase/util@1.10.3)': + dependencies: + '@firebase/app-types': 0.9.3 + '@firebase/util': 1.10.3 + + '@firebase/storage@0.13.5(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/component': 0.6.12 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/util@1.10.3': + dependencies: + tslib: 2.8.1 + + '@firebase/vertexai@1.0.3(@firebase/app-types@0.9.3)(@firebase/app@0.10.18)': + dependencies: + '@firebase/app': 0.10.18 + '@firebase/app-check-interop-types': 0.3.3 + '@firebase/app-types': 0.9.3 + '@firebase/component': 0.6.12 + '@firebase/logger': 0.4.4 + '@firebase/util': 1.10.3 + tslib: 2.8.1 + + '@firebase/webchannel-wrapper@1.0.3': {} + + '@google-cloud/firestore@7.11.0': + dependencies: + '@opentelemetry/api': 1.9.0 + fast-deep-equal: 3.1.3 + functional-red-black-tree: 1.0.1 + google-gax: 4.4.1 + protobufjs: 7.4.0 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + '@google-cloud/paginator@5.0.2': + dependencies: + arrify: 2.0.1 + extend: 3.0.2 + optional: true + + '@google-cloud/projectify@4.0.0': + optional: true + + '@google-cloud/promisify@4.0.0': + optional: true + + '@google-cloud/storage@7.15.0': + dependencies: + '@google-cloud/paginator': 5.0.2 + '@google-cloud/projectify': 4.0.0 + '@google-cloud/promisify': 4.0.0 + abort-controller: 3.0.0 + async-retry: 1.3.3 + duplexify: 4.1.3 + fast-xml-parser: 4.4.1 + gaxios: 6.7.1 + google-auth-library: 9.15.1 + html-entities: 2.5.2 + mime: 3.0.0 + p-limit: 3.1.0 + retry-request: 7.0.2 + teeny-request: 9.0.0 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + '@grpc/grpc-js@1.12.5': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + optional: true + + '@grpc/grpc-js@1.9.15': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@types/node': 20.14.10 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.4 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@heroicons/react@2.1.5(react@19.0.0-rc-8b08e99e-20240713)': + dependencies: + react: 19.0.0-rc-8b08e99e-20240713 + + '@hookform/resolvers@3.10.0(react-hook-form@7.54.2(react@19.0.0))': + dependencies: + react-hook-form: 7.54.2(react@19.0.0) + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-arm@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-s390x@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-wasm32@0.34.1': + dependencies: + '@emnapi/runtime': 1.4.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-ia32@0.34.1': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.34.1': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': + optional: true + + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.6 + string-argv: 0.3.2 + type-detect: 4.1.0 + + '@libsql/client@0.14.0': + dependencies: + '@libsql/core': 0.14.0 + '@libsql/hrana-client': 0.7.0 + js-base64: 3.7.7 + libsql: 0.4.7 + promise-limit: 2.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/core@0.14.0': + dependencies: + js-base64: 3.7.7 + + '@libsql/darwin-arm64@0.4.7': + optional: true + + '@libsql/darwin-x64@0.4.7': + optional: true + + '@libsql/hrana-client@0.7.0': + dependencies: + '@libsql/isomorphic-fetch': 0.3.1 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.7 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/isomorphic-fetch@0.3.1': {} + + '@libsql/isomorphic-ws@0.1.5': + dependencies: + '@types/ws': 8.5.14 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/linux-arm64-gnu@0.4.7': + optional: true + + '@libsql/linux-arm64-musl@0.4.7': + optional: true + + '@libsql/linux-x64-gnu@0.4.7': + optional: true + + '@libsql/linux-x64-musl@0.4.7': + optional: true + + '@libsql/win32-x64-msvc@0.4.7': + optional: true + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.27.1 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.27.1 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@mapbox/node-pre-gyp@2.0.0': + dependencies: + consola: 3.4.0 + detect-libc: 2.0.4 + https-proxy-agent: 7.0.6 + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.7.1 + tar: 7.4.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@neon-rs/load@0.0.4': {} + + '@next/env@14.2.24': {} + + '@next/env@15.0.0-canary.174': {} + + '@next/env@15.0.4': {} + + '@next/env@15.1.0': {} + + '@next/env@15.1.3': {} + + '@next/env@15.1.7': {} + + '@next/env@15.3.5': {} + + '@next/env@15.4.0-canary.14': {} + + '@next/eslint-plugin-next@14.2.14': + dependencies: + glob: 10.3.10 + + '@next/eslint-plugin-next@15.0.4': + dependencies: + fast-glob: 3.3.1 + + '@next/eslint-plugin-next@15.1.0': + dependencies: + fast-glob: 3.3.1 + + '@next/eslint-plugin-next@15.1.3': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@14.2.24': + optional: true + + '@next/swc-darwin-arm64@15.0.0-canary.174': + optional: true + + '@next/swc-darwin-arm64@15.0.4': + optional: true + + '@next/swc-darwin-arm64@15.1.0': + optional: true + + '@next/swc-darwin-arm64@15.1.3': + optional: true + + '@next/swc-darwin-arm64@15.1.7': + optional: true + + '@next/swc-darwin-arm64@15.3.5': + optional: true + + '@next/swc-darwin-arm64@15.4.0-canary.14': + optional: true + + '@next/swc-darwin-x64@14.2.24': + optional: true + + '@next/swc-darwin-x64@15.0.0-canary.174': + optional: true + + '@next/swc-darwin-x64@15.0.4': + optional: true + + '@next/swc-darwin-x64@15.1.0': + optional: true + + '@next/swc-darwin-x64@15.1.3': + optional: true + + '@next/swc-darwin-x64@15.1.7': + optional: true + + '@next/swc-darwin-x64@15.3.5': + optional: true + + '@next/swc-darwin-x64@15.4.0-canary.14': + optional: true + + '@next/swc-linux-arm64-gnu@14.2.24': + optional: true + + '@next/swc-linux-arm64-gnu@15.0.0-canary.174': + optional: true + + '@next/swc-linux-arm64-gnu@15.0.4': + optional: true + + '@next/swc-linux-arm64-gnu@15.1.0': + optional: true + + '@next/swc-linux-arm64-gnu@15.1.3': + optional: true + + '@next/swc-linux-arm64-gnu@15.1.7': + optional: true + + '@next/swc-linux-arm64-gnu@15.3.5': + optional: true + + '@next/swc-linux-arm64-gnu@15.4.0-canary.14': + optional: true + + '@next/swc-linux-arm64-musl@14.2.24': + optional: true + + '@next/swc-linux-arm64-musl@15.0.0-canary.174': + optional: true + + '@next/swc-linux-arm64-musl@15.0.4': + optional: true + + '@next/swc-linux-arm64-musl@15.1.0': + optional: true + + '@next/swc-linux-arm64-musl@15.1.3': + optional: true + + '@next/swc-linux-arm64-musl@15.1.7': + optional: true + + '@next/swc-linux-arm64-musl@15.3.5': + optional: true + + '@next/swc-linux-arm64-musl@15.4.0-canary.14': + optional: true + + '@next/swc-linux-x64-gnu@14.2.24': + optional: true + + '@next/swc-linux-x64-gnu@15.0.0-canary.174': + optional: true + + '@next/swc-linux-x64-gnu@15.0.4': + optional: true + + '@next/swc-linux-x64-gnu@15.1.0': + optional: true + + '@next/swc-linux-x64-gnu@15.1.3': + optional: true + + '@next/swc-linux-x64-gnu@15.1.7': + optional: true + + '@next/swc-linux-x64-gnu@15.3.5': + optional: true + + '@next/swc-linux-x64-gnu@15.4.0-canary.14': + optional: true + + '@next/swc-linux-x64-musl@14.2.24': + optional: true + + '@next/swc-linux-x64-musl@15.0.0-canary.174': + optional: true + + '@next/swc-linux-x64-musl@15.0.4': + optional: true + + '@next/swc-linux-x64-musl@15.1.0': + optional: true + + '@next/swc-linux-x64-musl@15.1.3': + optional: true + + '@next/swc-linux-x64-musl@15.1.7': + optional: true + + '@next/swc-linux-x64-musl@15.3.5': + optional: true + + '@next/swc-linux-x64-musl@15.4.0-canary.14': + optional: true + + '@next/swc-win32-arm64-msvc@14.2.24': + optional: true + + '@next/swc-win32-arm64-msvc@15.0.0-canary.174': + optional: true + + '@next/swc-win32-arm64-msvc@15.0.4': + optional: true + + '@next/swc-win32-arm64-msvc@15.1.0': + optional: true + + '@next/swc-win32-arm64-msvc@15.1.3': + optional: true + + '@next/swc-win32-arm64-msvc@15.1.7': + optional: true + + '@next/swc-win32-arm64-msvc@15.3.5': + optional: true + + '@next/swc-win32-arm64-msvc@15.4.0-canary.14': + optional: true + + '@next/swc-win32-ia32-msvc@14.2.24': + optional: true + + '@next/swc-win32-ia32-msvc@15.0.0-canary.174': + optional: true + + '@next/swc-win32-x64-msvc@14.2.24': + optional: true + + '@next/swc-win32-x64-msvc@15.0.0-canary.174': + optional: true + + '@next/swc-win32-x64-msvc@15.0.4': + optional: true + + '@next/swc-win32-x64-msvc@15.1.0': + optional: true + + '@next/swc-win32-x64-msvc@15.1.3': + optional: true + + '@next/swc-win32-x64-msvc@15.1.7': + optional: true + + '@next/swc-win32-x64-msvc@15.3.5': + optional: true + + '@next/swc-win32-x64-msvc@15.4.0-canary.14': + optional: true + + '@noble/ciphers@1.3.0': {} + + '@noble/curves@1.9.0': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + + '@node-minify/core@8.0.6': + dependencies: + '@node-minify/utils': 8.0.6 + glob: 9.3.5 + mkdirp: 1.0.4 + + '@node-minify/terser@8.0.6': + dependencies: + '@node-minify/utils': 8.0.6 + terser: 5.16.9 + + '@node-minify/utils@8.0.6': + dependencies: + gzip-size: 6.0.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@octokit/action@6.1.0': + dependencies: + '@octokit/auth-action': 4.1.0 + '@octokit/core': 5.2.1 + '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.1) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.1) + '@octokit/types': 12.6.0 + undici: 6.21.2 + + '@octokit/auth-action@4.1.0': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/types': 13.10.0 + + '@octokit/auth-token@4.0.0': {} + + '@octokit/core@5.2.1': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.6': + dependencies: + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.1.1': + dependencies: + '@octokit/request': 8.4.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/openapi-types@20.0.0': {} + + '@octokit/openapi-types@24.2.0': {} + + '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.1)': + dependencies: + '@octokit/core': 5.2.1 + '@octokit/types': 12.6.0 + + '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.1)': + dependencies: + '@octokit/core': 5.2.1 + '@octokit/types': 12.6.0 + + '@octokit/request-error@5.1.1': + dependencies: + '@octokit/types': 13.10.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@8.4.1': + dependencies: + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.10.0': + dependencies: + '@octokit/openapi-types': 24.2.0 + + '@opennextjs/aws@3.7.0': + dependencies: + '@ast-grep/napi': 0.35.0 + '@aws-sdk/client-cloudfront': 3.398.0 + '@aws-sdk/client-dynamodb': 3.840.0 + '@aws-sdk/client-lambda': 3.840.0 + '@aws-sdk/client-s3': 3.726.1 + '@aws-sdk/client-sqs': 3.840.0 + '@node-minify/core': 8.0.6 + '@node-minify/terser': 8.0.6 + '@tsconfig/node18': 1.0.3 + aws4fetch: 1.0.20 + chalk: 5.3.0 + cookie: 1.0.2 + esbuild: 0.25.4 + express: 5.0.1 + path-to-regexp: 6.3.0 + urlpattern-polyfill: 10.1.0 + yaml: 2.7.1 + transitivePeerDependencies: + - aws-crt + - supports-color + + '@opentelemetry/api@1.9.0': + optional: true + + '@panva/hkdf@1.2.1': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@playwright/test@1.51.1': + dependencies: + playwright: 1.51.1 + + '@poppinss/colors@4.1.5': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.6.4': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.0.2 + supports-color: 10.0.0 + + '@poppinss/exception@1.2.2': {} + + '@prisma/adapter-d1@6.7.0': + dependencies: + '@cloudflare/workers-types': 4.20250214.0 + '@prisma/driver-adapter-utils': 6.7.0 + ky: 1.7.5 + + '@prisma/client@6.7.0(prisma@6.7.0(typescript@5.7.3))(typescript@5.7.3)': + optionalDependencies: + prisma: 6.7.0(typescript@5.7.3) + typescript: 5.7.3 + + '@prisma/config@6.7.0': + dependencies: + esbuild: 0.25.4 + esbuild-register: 3.6.0(esbuild@0.25.4) + transitivePeerDependencies: + - supports-color + + '@prisma/debug@6.7.0': {} + + '@prisma/driver-adapter-utils@6.7.0': + dependencies: + '@prisma/debug': 6.7.0 + + '@prisma/engines-version@6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed': {} + + '@prisma/engines@6.7.0': + dependencies: + '@prisma/debug': 6.7.0 + '@prisma/engines-version': 6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed + '@prisma/fetch-engine': 6.7.0 + '@prisma/get-platform': 6.7.0 + + '@prisma/fetch-engine@6.7.0': + dependencies: + '@prisma/debug': 6.7.0 + '@prisma/engines-version': 6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed + '@prisma/get-platform': 6.7.0 + + '@prisma/get-platform@6.7.0': + dependencies: + '@prisma/debug': 6.7.0 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@rollup/pluginutils@5.1.4(rollup@4.40.1)': + dependencies: + '@types/estree': 1.0.7 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.40.1 + + '@rollup/rollup-android-arm-eabi@4.40.1': + optional: true + + '@rollup/rollup-android-arm64@4.40.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.40.1': + optional: true + + '@rollup/rollup-darwin-x64@4.40.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.40.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.40.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.40.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.40.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.40.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.40.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.40.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.40.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.40.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.40.1': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.4': {} + + '@sinclair/typebox@0.25.24': {} + + '@sindresorhus/is@7.0.2': {} + + '@smithy/abort-controller@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/abort-controller@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/abort-controller@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/abort-controller@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.0.0': + dependencies: + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@2.2.0': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.8.1 + + '@smithy/config-resolver@4.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 + + '@smithy/config-resolver@4.1.0': + dependencies: + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.2 + tslib: 2.8.1 + + '@smithy/config-resolver@4.1.4': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 + + '@smithy/core@3.1.0': + dependencies: + '@smithy/middleware-serde': 4.0.2 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.0.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/core@3.1.2': + dependencies: + '@smithy/middleware-serde': 4.0.3 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.2.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/core@3.3.0': + dependencies: + '@smithy/middleware-serde': 4.0.3 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-stream': 4.2.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/core@3.6.0': + dependencies: + '@smithy/middleware-serde': 4.0.8 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@2.3.0': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.0.2': + dependencies: + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.0.6': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.0.1': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-hex-encoding': 4.0.0 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.0.4': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.0.1': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.0.1': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.0.4': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.0.1': + dependencies: + '@smithy/eventstream-codec': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.0.4': + dependencies: + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@2.5.0': + dependencies: + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.0.1': + dependencies: + '@smithy/protocol-http': 5.0.1 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.0.2': + dependencies: + '@smithy/protocol-http': 5.1.0 + '@smithy/querystring-builder': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.0.4': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.0.1': + dependencies: + '@smithy/chunked-blob-reader': 5.0.0 + '@smithy/chunked-blob-reader-native': 4.0.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/hash-node@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/md5-js@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@2.2.0': + dependencies: + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.1': + dependencies: + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.2': + dependencies: + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.4': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@2.5.1': + dependencies: + '@smithy/middleware-serde': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-middleware': 2.2.0 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.0.1': + dependencies: + '@smithy/core': 3.1.2 + '@smithy/middleware-serde': 4.0.2 + '@smithy/node-config-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.0.3': + dependencies: + '@smithy/core': 3.1.2 + '@smithy/middleware-serde': 4.0.2 + '@smithy/node-config-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.1.1': + dependencies: + '@smithy/core': 3.3.0 + '@smithy/middleware-serde': 4.0.3 + '@smithy/node-config-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + '@smithy/url-parser': 4.0.2 + '@smithy/util-middleware': 4.0.2 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.1.13': + dependencies: + '@smithy/core': 3.6.0 + '@smithy/middleware-serde': 4.0.8 + '@smithy/node-config-provider': 4.1.3 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-middleware': 4.0.4 + tslib: 2.8.1 + + '@smithy/middleware-retry@2.3.1': + dependencies: + '@smithy/node-config-provider': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/service-error-classification': 2.1.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-retry@4.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/service-error-classification': 4.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-retry@4.1.14': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/service-error-classification': 4.0.6 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.6 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-retry@4.1.2': + dependencies: + '@smithy/node-config-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/service-error-classification': 4.0.3 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-retry': 4.0.3 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-serde@2.3.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.0.3': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.0.8': + dependencies: + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/middleware-stack@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/node-config-provider@2.3.0': + dependencies: + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.0.1': + dependencies: + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.0.2': + dependencies: + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.1.3': + dependencies: + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/node-http-handler@2.5.0': + dependencies: + '@smithy/abort-controller': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.0.1': + dependencies: + '@smithy/abort-controller': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.0.2': + dependencies: + '@smithy/abort-controller': 4.0.1 + '@smithy/protocol-http': 5.1.0 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.0.4': + dependencies: + '@smithy/abort-controller': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/querystring-builder': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.0.6': + dependencies: + '@smithy/abort-controller': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/property-provider@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/protocol-http@2.0.5': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/protocol-http@3.3.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.0': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.2': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/querystring-builder@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + '@smithy/util-uri-escape': 2.2.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/service-error-classification@2.1.5': + dependencies: + '@smithy/types': 2.12.0 + + '@smithy/service-error-classification@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + + '@smithy/service-error-classification@4.0.3': + dependencies: + '@smithy/types': 4.2.0 + + '@smithy/service-error-classification@4.0.6': + dependencies: + '@smithy/types': 4.3.1 + + '@smithy/shared-ini-file-loader@2.4.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/shared-ini-file-loader@4.0.1': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/shared-ini-file-loader@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/shared-ini-file-loader@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/signature-v4@2.3.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-uri-escape': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.0.1': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.1.0': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.2 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.1.2': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/smithy-client@2.5.1': + dependencies: + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-stack': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-stream': 2.2.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.1.0': + dependencies: + '@smithy/core': 3.1.2 + '@smithy/middleware-endpoint': 4.0.3 + '@smithy/middleware-stack': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-stream': 4.0.2 + tslib: 2.8.1 + + '@smithy/smithy-client@4.1.3': + dependencies: + '@smithy/core': 3.1.2 + '@smithy/middleware-endpoint': 4.0.3 + '@smithy/middleware-stack': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-stream': 4.0.2 + tslib: 2.8.1 + + '@smithy/smithy-client@4.2.1': + dependencies: + '@smithy/core': 3.3.0 + '@smithy/middleware-endpoint': 4.1.1 + '@smithy/middleware-stack': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/types': 4.2.0 + '@smithy/util-stream': 4.2.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.4.5': + dependencies: + '@smithy/core': 3.6.0 + '@smithy/middleware-endpoint': 4.1.13 + '@smithy/middleware-stack': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.2 + tslib: 2.8.1 + + '@smithy/types@2.12.0': + dependencies: + tslib: 2.8.1 + + '@smithy/types@4.1.0': + dependencies: + tslib: 2.8.1 + + '@smithy/types@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/types@4.3.1': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@2.2.0': + dependencies: + '@smithy/querystring-parser': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/url-parser@4.0.1': + dependencies: + '@smithy/querystring-parser': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/url-parser@4.0.2': + dependencies: + '@smithy/querystring-parser': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/url-parser@4.0.4': + dependencies: + '@smithy/querystring-parser': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-base64@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@smithy/util-base64@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@2.3.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.0.0': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@2.3.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-config-provider@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@2.2.1': + dependencies: + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.1': + dependencies: + '@smithy/property-provider': 4.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.21': + dependencies: + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.9': + dependencies: + '@smithy/property-provider': 4.0.2 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@2.3.1': + dependencies: + '@smithy/config-resolver': 2.2.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.0.1': + dependencies: + '@smithy/config-resolver': 4.0.1 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/smithy-client': 4.1.3 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.0.21': + dependencies: + '@smithy/config-resolver': 4.1.4 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.5 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.0.9': + dependencies: + '@smithy/config-resolver': 4.1.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/smithy-client': 4.2.1 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.2': + dependencies: + '@smithy/node-config-provider': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.6': + dependencies: + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@2.2.0': + dependencies: + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/util-middleware@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-middleware@4.0.2': + dependencies: + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-middleware@4.0.4': + dependencies: + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-retry@2.2.0': + dependencies: + '@smithy/service-error-classification': 2.1.5 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.0.1': + dependencies: + '@smithy/service-error-classification': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.0.3': + dependencies: + '@smithy/service-error-classification': 4.0.3 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.0.6': + dependencies: + '@smithy/service-error-classification': 4.0.6 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@smithy/util-stream@2.2.0': + dependencies: + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.0.1': + dependencies: + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/node-http-handler': 4.0.2 + '@smithy/types': 4.1.0 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.0.2': + dependencies: + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/types': 4.2.0 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.2.0': + dependencies: + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/types': 4.2.0 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.2.2': + dependencies: + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/node-http-handler': 4.0.6 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-uri-escape@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-uri-escape@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-waiter@2.2.0': + dependencies: + '@smithy/abort-controller': 2.2.0 + '@smithy/types': 2.12.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.0.2': + dependencies: + '@smithy/abort-controller': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.0.6': + dependencies: + '@smithy/abort-controller': 4.0.4 + '@smithy/types': 4.3.1 + tslib: 2.8.1 + + '@speed-highlight/core@1.2.7': {} + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.13': + dependencies: + tslib: 2.8.1 + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@swc/helpers@0.5.5': + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.8.1 + + '@t3-oss/env-core@0.11.1(typescript@5.7.3)(zod@3.24.1)': + dependencies: + zod: 3.24.1 + optionalDependencies: + typescript: 5.7.3 + + '@t3-oss/env-nextjs@0.11.1(typescript@5.7.3)(zod@3.24.1)': + dependencies: + '@t3-oss/env-core': 0.11.1(typescript@5.7.3)(zod@3.24.1) + zod: 3.24.1 + optionalDependencies: + typescript: 5.7.3 + + '@tailwindcss/forms@0.5.7(tailwindcss@3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)))': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)) + + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)))': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)) + + '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@tanstack/table-core': 8.20.5 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@tanstack/table-core@8.20.5': {} + + '@tootallnate/once@2.0.0': {} + + '@ts-morph/common@0.11.1': + dependencies: + fast-glob: 3.3.3 + minimatch: 3.1.2 + mkdirp: 1.0.4 + path-browserify: 1.0.1 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@tsconfig/node18@1.0.3': {} + + '@tsconfig/strictest@2.0.5': {} + + '@types/better-sqlite3@7.6.12': + dependencies: + '@types/node': 20.14.10 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.14.10 + + '@types/caseless@0.12.5': + optional: true + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.14.10 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree@1.0.6': {} + + '@types/estree@1.0.7': {} + + '@types/express-serve-static-core@4.19.6': + dependencies: + '@types/node': 20.14.10 + '@types/qs': 6.9.18 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.18 + '@types/serve-static': 1.15.7 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/http-errors@2.0.4': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/jsonwebtoken@9.0.8': + dependencies: + '@types/ms': 0.7.34 + '@types/node': 20.14.10 + + '@types/long@4.0.2': + optional: true + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mime@1.3.5': {} + + '@types/mock-fs@4.13.4': + dependencies: + '@types/node': 22.2.0 + + '@types/ms@0.7.34': {} + + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 20.14.10 + form-data: 4.0.3 + + '@types/node@12.20.55': {} + + '@types/node@16.18.11': {} + + '@types/node@18.19.112': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.14.10': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.17.6': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.12.0': + dependencies: + undici-types: 6.20.0 + + '@types/node@22.2.0': + dependencies: + undici-types: 6.13.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/picomatch@4.0.0': {} + + '@types/prop-types@15.7.12': {} + + '@types/qs@6.9.18': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 19.0.8 + + '@types/react-dom@19.0.0': + dependencies: + '@types/react': 19.0.8 + + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + + '@types/react@18.3.3': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + '@types/react@19.0.0': + dependencies: + csstype: 3.1.3 + + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + + '@types/request@2.48.12': + dependencies: + '@types/caseless': 0.12.5 + '@types/node': 20.14.10 + '@types/tough-cookie': 4.0.5 + form-data: 2.5.2 + optional: true + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.14.10 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.14.10 + '@types/send': 0.17.4 + + '@types/tough-cookie@4.0.5': + optional: true + + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + + '@types/ws@8.5.14': + dependencies: + '@types/node': 20.14.10 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3))(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.37.0 + '@typescript-eslint/type-utils': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.37.0 + eslint: 9.31.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + eslint: 9.11.1(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + eslint: 9.19.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.37.0 + '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.37.0 + debug: 4.4.0 + eslint: 9.31.0(jiti@1.21.6) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.4.0 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.4.0 + eslint: 9.11.1(jiti@1.21.6) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.4.0 + eslint: 9.19.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.37.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.7.3) + '@typescript-eslint/types': 8.37.0 + debug: 4.4.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.37.0': + dependencies: + '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/visitor-keys': 8.37.0 + + '@typescript-eslint/scope-manager@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + + '@typescript-eslint/tsconfig-utils@8.37.0(typescript@5.7.3)': + dependencies: + typescript: 5.7.3 + + '@typescript-eslint/type-utils@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.31.0(jiti@1.21.6) + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.7.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + debug: 4.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + debug: 4.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/type-utils@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + debug: 4.4.0 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.37.0': {} + + '@typescript-eslint/types@8.7.0': {} + + '@typescript-eslint/typescript-estree@8.37.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/project-service': 8.37.0(typescript@5.7.3) + '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.7.3) + '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/visitor-keys': 8.37.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.37.0 + '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.7.3) + eslint: 9.31.0(jiti@1.21.6) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.7.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.11.1(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + eslint: 9.11.1(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.19.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.7.3) + eslint: 9.19.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.37.0': + dependencies: + '@typescript-eslint/types': 8.37.0 + eslint-visitor-keys: 4.2.1 + + '@typescript-eslint/visitor-keys@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@vercel/build-utils@9.1.0': {} + + '@vercel/error-utils@2.0.3': {} + + '@vercel/fun@1.1.2': + dependencies: + '@tootallnate/once': 2.0.0 + async-listen: 1.2.0 + debug: 4.3.4 + execa: 3.2.0 + fs-extra: 8.1.0 + generic-pool: 3.4.2 + micro: 9.3.5-canary.3 + ms: 2.1.1 + node-fetch: 2.6.7 + path-match: 1.2.4 + promisepipe: 3.0.0 + semver: 7.5.4 + stat-mode: 0.3.0 + stream-to-promise: 2.2.0 + tar: 4.4.18 + tree-kill: 1.2.2 + uid-promise: 1.0.0 + uuid: 3.3.2 + xdg-app-paths: 5.1.0 + yauzl-promise: 2.1.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@vercel/gatsby-plugin-vercel-analytics@1.0.11': + dependencies: + web-vitals: 0.2.4 + + '@vercel/gatsby-plugin-vercel-builder@2.0.65': + dependencies: + '@sinclair/typebox': 0.25.24 + '@vercel/build-utils': 9.1.0 + '@vercel/routing-utils': 5.0.1 + esbuild: 0.14.47 + etag: 1.8.1 + fs-extra: 11.1.0 + + '@vercel/go@3.2.1': {} + + '@vercel/hydrogen@1.0.11': + dependencies: + '@vercel/static-config': 3.0.0 + ts-morph: 12.0.0 + + '@vercel/next@4.4.4(rollup@4.40.1)': + dependencies: + '@vercel/nft': 0.27.10(rollup@4.40.1) + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/nft@0.27.10(rollup@4.40.1)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0 + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) + acorn: 8.14.1 + acorn-import-attributes: 1.9.5(acorn@8.14.1) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.2 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/node@5.0.4(rollup@4.40.1)': + dependencies: + '@edge-runtime/node-utils': 2.3.0 + '@edge-runtime/primitives': 4.1.0 + '@edge-runtime/vm': 3.2.0 + '@types/node': 16.18.11 + '@vercel/build-utils': 9.1.0 + '@vercel/error-utils': 2.0.3 + '@vercel/nft': 0.27.10(rollup@4.40.1) + '@vercel/static-config': 3.0.0 + async-listen: 3.0.0 + cjs-module-lexer: 1.2.3 + edge-runtime: 2.5.9 + es-module-lexer: 1.4.1 + esbuild: 0.14.47 + etag: 1.8.1 + node-fetch: 2.6.9 + path-to-regexp: 6.2.1 + path-to-regexp-updated: path-to-regexp@6.3.0 + ts-morph: 12.0.0 + ts-node: 10.9.1(@types/node@16.18.11)(typescript@4.9.5) + typescript: 4.9.5 + undici: 5.28.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - encoding + - rollup + - supports-color + + '@vercel/python@4.7.1': {} + + '@vercel/redwood@2.1.13(rollup@4.40.1)': + dependencies: + '@vercel/nft': 0.27.10(rollup@4.40.1) + '@vercel/routing-utils': 5.0.1 + '@vercel/static-config': 3.0.0 + semver: 6.3.1 + ts-morph: 12.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/remix-builder@5.1.1(rollup@4.40.1)': + dependencies: + '@vercel/error-utils': 2.0.3 + '@vercel/nft': 0.27.10(rollup@4.40.1) + '@vercel/static-config': 3.0.0 + ts-morph: 12.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/routing-utils@5.0.1': + dependencies: + path-to-regexp: 6.1.0 + path-to-regexp-updated: path-to-regexp@6.3.0 + optionalDependencies: + ajv: 6.12.6 + + '@vercel/ruby@2.2.0': {} + + '@vercel/static-build@2.5.43': + dependencies: + '@vercel/gatsby-plugin-vercel-analytics': 1.0.11 + '@vercel/gatsby-plugin-vercel-builder': 2.0.65 + '@vercel/static-config': 3.0.0 + ts-morph: 12.0.0 + + '@vercel/static-config@3.0.0': + dependencies: + ajv: 8.6.3 + json-schema-to-ts: 1.6.4 + ts-morph: 12.0.0 + + '@vitest/expect@2.1.1': + dependencies: + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 + chai: 5.2.0 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.19(@types/node@22.2.0)(terser@5.16.9))': + dependencies: + '@vitest/spy': 2.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 5.4.19(@types/node@22.2.0)(terser@5.16.9) + + '@vitest/pretty-format@2.1.1': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.9': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.1': + dependencies: + '@vitest/utils': 2.1.1 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + magic-string: 0.30.17 + pathe: 1.1.2 + + '@vitest/spy@2.1.1': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + loupe: 3.1.3 + tinyrainbow: 1.2.0 + + abbrev@3.0.0: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + + acorn-import-attributes@1.9.5(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-walk@8.3.2: {} + + acorn-walk@8.3.3: + dependencies: + acorn: 8.14.1 + + acorn@8.12.1: {} + + acorn@8.14.0: {} + + acorn@8.14.1: {} + + acorn@8.15.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + optional: true + + agent-base@7.1.3: {} + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.6.3: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.0: {} + + arg@4.1.3: {} + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-query@5.1.3: + dependencies: + deep-equal: 2.2.3 + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + + array-union@2.1.0: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + arrify@2.0.1: + optional: true + + assertion-error@2.0.1: {} + + ast-types-flow@0.0.8: {} + + async-function@1.0.0: {} + + async-listen@1.2.0: {} + + async-listen@3.0.0: {} + + async-listen@3.0.1: {} + + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + optional: true + + async-sema@3.1.1: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.15(postcss@8.4.27): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001664 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.27 + postcss-value-parser: 4.2.0 + + autoprefixer@10.4.19(postcss@8.4.39): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001664 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.39 + postcss-value-parser: 4.2.0 + + autoprefixer@10.4.20(postcss@8.4.47): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001664 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + aws4fetch@1.0.20: {} + + axe-core@4.10.0: {} + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + before-after-hook@2.2.3: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + better-sqlite3@11.8.1: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.3 + + bignumber.js@9.1.2: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + blake3-wasm@2.1.5: {} + + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.0 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.0 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + + bowser@2.11.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001717 + electron-to-chromium: 1.5.29 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + browserslist@4.24.5: + dependencies: + caniuse-lite: 1.0.30001717 + electron-to-chromium: 1.5.149 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.5) + + buffer-crc32@0.2.13: {} + + buffer-equal-constant-time@1.0.1: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + builtin-modules@3.3.0: {} + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + bytes@3.1.0: {} + + bytes@3.1.2: {} + + cac@6.7.14: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + call-me-maybe@1.0.2: {} + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001664: {} + + caniuse-lite@1.0.30001717: {} + + ccount@2.0.1: {} + + chai@5.2.0: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.3 + pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chardet@0.7.0: {} + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.0: + dependencies: + readdirp: 4.1.1 + + chownr@1.1.4: {} + + chownr@3.0.0: {} + + ci-info@3.9.0: {} + + ci-info@4.2.0: {} + + cjs-module-lexer@1.2.3: {} + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + classnames@2.5.1: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + client-only@0.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + cloudflare@4.4.1: + dependencies: + '@types/node': 18.19.112 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + clsx@2.1.1: {} + + code-block-writer@10.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + colorette@2.0.19: + optional: true + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@10.0.1: + optional: true + + commander@11.1.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.4.0: {} + + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.4: {} + + content-type@1.0.5: {} + + convert-hrtime@3.0.0: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.0: {} + + cookie@0.7.1: {} + + cookie@1.0.2: {} + + core-js-compat@3.42.0: + dependencies: + browserslist: 4.24.5 + + create-require@1.1.1: {} + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.3 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.1: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-uri-to-buffer@4.0.1: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dataloader@1.4.0: {} + + date-fns@3.6.0: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + debug@4.3.6: + 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 + + decode-uri-component@0.4.1: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-eql@5.0.2: {} + + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + es-get-iterator: 1.1.3 + get-intrinsic: 1.3.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.5 + is-date-object: 1.0.5 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.4 + side-channel: 1.1.0 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + deprecation@2.3.1: {} + + dequal@2.0.3: {} + + detect-indent@6.1.0: {} + + detect-libc@2.0.2: {} + + detect-libc@2.0.3: {} + + detect-libc@2.0.4: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff@4.0.2: {} + + diff@8.0.2: {} + + dinero.js@2.0.0-alpha.8: + dependencies: + '@dinero.js/calculator-number': 2.0.0-alpha.8 + '@dinero.js/core': 2.0.0-alpha.8 + '@dinero.js/currencies': 2.0.0-alpha.8 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dotenv@16.5.0: {} + + dotenv@8.6.0: {} + + drizzle-kit@0.30.4: + dependencies: + '@drizzle-team/brocli': 0.10.2 + '@esbuild-kit/esm-loader': 2.6.5 + esbuild: 0.19.12 + esbuild-register: 3.6.0(esbuild@0.19.12) + transitivePeerDependencies: + - supports-color + + drizzle-orm@0.38.4(@cloudflare/workers-types@4.20250109.0)(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@prisma/client@6.7.0(prisma@6.7.0(typescript@5.7.3))(typescript@5.7.3))(@types/better-sqlite3@7.6.12)(@types/react@19.0.0)(better-sqlite3@11.8.1)(knex@3.1.0(better-sqlite3@11.8.1)(pg@8.16.0))(pg@8.16.0)(prisma@6.7.0(typescript@5.7.3))(react@19.0.0): + optionalDependencies: + '@cloudflare/workers-types': 4.20250109.0 + '@libsql/client': 0.14.0 + '@opentelemetry/api': 1.9.0 + '@prisma/client': 6.7.0(prisma@6.7.0(typescript@5.7.3))(typescript@5.7.3) + '@types/better-sqlite3': 7.6.12 + '@types/react': 19.0.0 + better-sqlite3: 11.8.1 + knex: 3.1.0(better-sqlite3@11.8.1)(pg@8.16.0) + pg: 8.16.0 + prisma: 6.7.0(typescript@5.7.3) + react: 19.0.0 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + optional: true + + eastasianwidth@0.2.0: {} + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + eciesjs@0.4.14: + dependencies: + '@ecies/ciphers': 0.2.3(@noble/ciphers@1.3.0) + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.0 + '@noble/hashes': 1.8.0 + + edge-runtime@2.5.9: + dependencies: + '@edge-runtime/format': 2.2.1 + '@edge-runtime/ponyfill': 2.4.2 + '@edge-runtime/vm': 3.2.0 + async-listen: 3.0.1 + mri: 1.2.0 + picocolors: 1.0.0 + pretty-ms: 7.0.1 + signal-exit: 4.0.2 + time-span: 4.0.0 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.149: {} + + electron-to-chromium@1.5.29: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.1.0: + dependencies: + once: 1.3.3 + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser-es@1.0.5: {} + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.1.1 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + + es-iterator-helpers@1.0.19: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.1.0 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-module-lexer@1.4.1: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esbuild-android-64@0.14.47: + optional: true + + esbuild-android-arm64@0.14.47: + optional: true + + esbuild-darwin-64@0.14.47: + optional: true + + esbuild-darwin-arm64@0.14.47: + optional: true + + esbuild-freebsd-64@0.14.47: + optional: true + + esbuild-freebsd-arm64@0.14.47: + optional: true + + esbuild-linux-32@0.14.47: + optional: true + + esbuild-linux-64@0.14.47: + optional: true + + esbuild-linux-arm64@0.14.47: + optional: true + + esbuild-linux-arm@0.14.47: + optional: true + + esbuild-linux-mips64le@0.14.47: + optional: true + + esbuild-linux-ppc64le@0.14.47: + optional: true + + esbuild-linux-riscv64@0.14.47: + optional: true + + esbuild-linux-s390x@0.14.47: + optional: true + + esbuild-netbsd-64@0.14.47: + optional: true + + esbuild-openbsd-64@0.14.47: + optional: true + + esbuild-register@3.6.0(esbuild@0.19.12): + dependencies: + debug: 4.4.0 + esbuild: 0.19.12 + transitivePeerDependencies: + - supports-color + + esbuild-register@3.6.0(esbuild@0.25.4): + dependencies: + debug: 4.4.0 + esbuild: 0.25.4 + transitivePeerDependencies: + - supports-color + + esbuild-sunos-64@0.14.47: + optional: true + + esbuild-windows-32@0.14.47: + optional: true + + esbuild-windows-64@0.14.47: + optional: true + + esbuild-windows-arm64@0.14.47: + optional: true + + esbuild@0.14.47: + optionalDependencies: + esbuild-android-64: 0.14.47 + esbuild-android-arm64: 0.14.47 + esbuild-darwin-64: 0.14.47 + esbuild-darwin-arm64: 0.14.47 + esbuild-freebsd-64: 0.14.47 + esbuild-freebsd-arm64: 0.14.47 + esbuild-linux-32: 0.14.47 + esbuild-linux-64: 0.14.47 + esbuild-linux-arm: 0.14.47 + esbuild-linux-arm64: 0.14.47 + esbuild-linux-mips64le: 0.14.47 + esbuild-linux-ppc64le: 0.14.47 + esbuild-linux-riscv64: 0.14.47 + esbuild-linux-s390x: 0.14.47 + esbuild-netbsd-64: 0.14.47 + esbuild-openbsd-64: 0.14.47 + esbuild-sunos-64: 0.14.47 + esbuild-windows-32: 0.14.47 + esbuild-windows-64: 0.14.47 + esbuild-windows-arm64: 0.14.47 + + 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.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + 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 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esbuild@0.25.4: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-next@14.2.14(eslint@8.57.1)(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 14.2.14 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) + eslint-plugin-react: 7.36.1(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-next@15.0.4(eslint@8.57.1)(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 15.0.4 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) + eslint-plugin-react: 7.36.1(eslint@8.57.1) + eslint-plugin-react-hooks: 5.1.0(eslint@8.57.1) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-next@15.1.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 15.1.0 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.11.1(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-react: 7.37.4(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.11.1(jiti@1.21.6)) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-next@15.1.3(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 15.1.3 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/parser': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.19.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.19.0(jiti@1.21.6)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.19.0(jiti@1.21.6)) + eslint-plugin-react: 7.37.4(eslint@9.19.0(jiti@1.21.6)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.19.0(jiti@1.21.6)) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.17.1 + eslint: 8.57.1 + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + fast-glob: 3.3.2 + get-tsconfig: 4.8.0 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.17.1 + eslint: 8.57.1 + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + fast-glob: 3.3.2 + get-tsconfig: 4.8.0 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@1.21.6)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.17.1 + eslint: 9.11.1(jiti@1.21.6) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)) + fast-glob: 3.3.2 + get-tsconfig: 4.8.0 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.19.0(jiti@1.21.6)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.17.1 + eslint: 9.19.0(jiti@1.21.6) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)) + fast-glob: 3.3.2 + get-tsconfig: 4.8.0 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.11.1(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@1.21.6)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.19.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.19.0(jiti@1.21.6)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@1.21.6)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.31.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.11.1(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@1.21.6)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + eslint: 9.19.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.19.0(jiti@1.21.6)) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3))(eslint@9.31.0(jiti@1.21.6)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.31.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@1.21.6)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@1.21.6))(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.11.1(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@1.21.6)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.19.0(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.19.0(jiti@1.21.6)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@9.19.0(jiti@1.21.6))(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1): + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.57.1 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + + eslint-plugin-jsx-a11y@6.10.0(eslint@9.11.1(jiti@1.21.6)): + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 9.11.1(jiti@1.21.6) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + + eslint-plugin-jsx-a11y@6.10.0(eslint@9.19.0(jiti@1.21.6)): + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 9.19.0(jiti@1.21.6) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react-hooks@5.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react-hooks@5.1.0(eslint@9.11.1(jiti@1.21.6)): + dependencies: + eslint: 9.11.1(jiti@1.21.6) + + eslint-plugin-react-hooks@5.1.0(eslint@9.19.0(jiti@1.21.6)): + dependencies: + eslint: 9.19.0(jiti@1.21.6) + + eslint-plugin-react@7.36.1(eslint@8.57.1): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.1 + 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.1 + 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.37.4(eslint@9.11.1(jiti@1.21.6)): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.11.1(jiti@1.21.6) + 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.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-plugin-react@7.37.4(eslint@9.19.0(jiti@1.21.6)): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.19.0(jiti@1.21.6) + 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.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-plugin-simple-import-sort@12.1.1(eslint@9.11.1(jiti@1.21.6)): + dependencies: + eslint: 9.11.1(jiti@1.21.6) + + eslint-plugin-unicorn@55.0.0(eslint@9.11.1(jiti@1.21.6)): + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.11.1(jiti@1.21.6)) + ci-info: 4.2.0 + clean-regexp: 1.0.0 + core-js-compat: 3.42.0 + eslint: 9.11.1(jiti@1.21.6) + esquery: 1.6.0 + globals: 15.9.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.1.0 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.7.1 + strip-indent: 3.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.3.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + eslint@9.11.1(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.11.1(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.11.1 + '@eslint/plugin-kit': 0.2.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@nodelib/fs.walk': 1.2.8 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + eslint@9.19.0(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.19.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + eslint@9.31.0(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.3.0 + '@eslint/core': 0.15.1 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.31.0 + '@eslint/plugin-kit': 0.3.3 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + esm@3.2.25: + optional: true + + espree@10.1.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + + espree@10.3.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.7 + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + events-intercept@2.0.0: {} + + execa@3.2.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + p-finally: 2.0.1 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + 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 + + exit-hook@2.2.1: {} + + expand-template@2.0.3: {} + + express@5.0.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.4 + cookie: 0.7.1 + cookie-signature: 1.2.2 + debug: 4.3.6 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + methods: 1.1.2 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + router: 2.2.0 + safe-buffer: 5.2.1 + send: 1.2.0 + serve-static: 2.2.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 2.0.1 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + exsolve@1.0.5: {} + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + farmhash-modern@1.1.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-xml-parser@4.2.5: + dependencies: + strnum: 1.0.5 + + fast-xml-parser@4.4.1: + dependencies: + strnum: 1.0.5 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fdir@6.4.4(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + filter-obj@5.1.0: {} + + finalhandler@2.1.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + firebase-admin@13.0.2: + dependencies: + '@fastify/busboy': 3.1.1 + '@firebase/database-compat': 2.0.2 + '@firebase/database-types': 1.0.8 + '@types/node': 22.12.0 + farmhash-modern: 1.1.0 + google-auth-library: 9.15.1 + jsonwebtoken: 9.0.2 + jwks-rsa: 3.1.0 + node-forge: 1.3.1 + uuid: 11.0.5 + optionalDependencies: + '@google-cloud/firestore': 7.11.0 + '@google-cloud/storage': 7.15.0 + transitivePeerDependencies: + - encoding + - supports-color + + firebase@11.2.0: + dependencies: + '@firebase/analytics': 0.10.11(@firebase/app@0.10.18) + '@firebase/analytics-compat': 0.2.17(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/app': 0.10.18 + '@firebase/app-check': 0.8.11(@firebase/app@0.10.18) + '@firebase/app-check-compat': 0.3.18(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/app-compat': 0.2.48 + '@firebase/app-types': 0.9.3 + '@firebase/auth': 1.8.2(@firebase/app@0.10.18) + '@firebase/auth-compat': 0.5.17(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18) + '@firebase/data-connect': 0.2.0(@firebase/app@0.10.18) + '@firebase/database': 1.0.11 + '@firebase/database-compat': 2.0.2 + '@firebase/firestore': 4.7.6(@firebase/app@0.10.18) + '@firebase/firestore-compat': 0.3.41(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18) + '@firebase/functions': 0.12.1(@firebase/app@0.10.18) + '@firebase/functions-compat': 0.3.18(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/installations': 0.6.12(@firebase/app@0.10.18) + '@firebase/installations-compat': 0.2.12(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18) + '@firebase/messaging': 0.12.16(@firebase/app@0.10.18) + '@firebase/messaging-compat': 0.2.16(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/performance': 0.6.12(@firebase/app@0.10.18) + '@firebase/performance-compat': 0.2.12(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/remote-config': 0.5.0(@firebase/app@0.10.18) + '@firebase/remote-config-compat': 0.2.12(@firebase/app-compat@0.2.48)(@firebase/app@0.10.18) + '@firebase/storage': 0.13.5(@firebase/app@0.10.18) + '@firebase/storage-compat': 0.3.15(@firebase/app-compat@0.2.48)(@firebase/app-types@0.9.3)(@firebase/app@0.10.18) + '@firebase/util': 1.10.3 + '@firebase/vertexai': 1.0.3(@firebase/app-types@0.9.3)(@firebase/app@0.10.18) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@1.7.2: {} + + form-data@2.5.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + safe-buffer: 5.2.1 + optional: true + + form-data@4.0.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + forwarded@0.2.0: {} + + fraction.js@4.3.7: {} + + fresh@2.0.0: {} + + fs-constants@1.0.0: {} + + fs-extra@11.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-minipass@1.2.7: + dependencies: + minipass: 2.9.0 + + fs.realpath@1.0.0: {} + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functional-red-black-tree@1.0.1: + optional: true + + functions-have-names@1.2.3: {} + + gaxios@6.7.1: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + gcp-metadata@6.1.0: + dependencies: + gaxios: 6.7.1 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + geist@1.3.1(next@15.0.0-canary.174(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713))(react@19.0.0-rc-8b08e99e-20240713)): + dependencies: + next: 15.0.0-canary.174(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713))(react@19.0.0-rc-8b08e99e-20240713) + + generic-pool@3.4.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + 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-package-type@0.1.0: + optional: true + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.8.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + getopts@2.3.0: + optional: true + + github-from-package@0.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.3.10: + dependencies: + foreground-child: 3.3.1 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.9.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + google-auth-library@9.15.1: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 6.7.1 + gcp-metadata: 6.1.0 + gtoken: 7.1.0 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + google-gax@4.4.1: + dependencies: + '@grpc/grpc-js': 1.12.5 + '@grpc/proto-loader': 0.7.13 + '@types/long': 4.0.2 + abort-controller: 3.0.0 + duplexify: 4.1.3 + google-auth-library: 9.15.1 + node-fetch: 2.7.0 + object-hash: 3.0.0 + proto3-json-serializer: 2.0.2 + protobufjs: 7.4.0 + retry-request: 7.0.2 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + gtoken@7.1.0: + dependencies: + gaxios: 6.7.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.0.3: {} + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-sanitize@5.0.1: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + unist-util-position: 5.0.0 + + hast-util-to-html@9.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hosted-git-info@2.8.9: {} + + html-entities@2.5.2: + optional: true + + html-void-elements@3.0.0: {} + + http-errors@1.4.0: + dependencies: + inherits: 2.0.1 + statuses: 1.5.0 + + http-errors@1.7.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + + 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 + + http-parser-js@0.5.9: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + optional: true + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + optional: true + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + human-id@4.1.1: {} + + human-signals@1.1.1: {} + + human-signals@2.1.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + idb@7.1.1: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.1: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + interpret@2.2.0: + optional: true + + ipaddr.js@1.9.1: {} + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.8 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: {} + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.8 + has-tostringtag: 1.0.2 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-bun-module@1.2.1: + dependencies: + semver: 7.7.1 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.8 + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.4 + 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-interactive@2.0.0: {} + + is-map@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@4.1.0: {} + + is-promise@4.0.0: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.8 + has-tostringtag: 1.0.2 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.19 + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + + is-windows@1.0.2: {} + + isarray@0.0.1: {} + + isarray@2.0.5: {} + + isbinaryfile@5.0.4: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + iterator.prototype@1.1.2: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.1.0: + dependencies: + '@isaacs/cliui': 8.0.2 + + jiti@1.21.6: {} + + jose@4.15.9: {} + + js-base64@3.7.7: {} + + js-cookie@3.0.5: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@0.5.0: {} + + jsesc@3.1.0: {} + + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.1.2 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-to-ts@1.6.4: + dependencies: + '@types/json-schema': 7.0.15 + ts-toolbelt: 6.15.5 + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonwebtoken@9.0.2: + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.7.1 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.5 + object.values: 1.2.1 + + jwa@1.4.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jwa@2.0.0: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jwks-rsa@3.1.0: + dependencies: + '@types/express': 4.17.21 + '@types/jsonwebtoken': 9.0.8 + debug: 4.4.0 + jose: 4.15.9 + limiter: 1.1.5 + lru-memoizer: 2.3.0 + transitivePeerDependencies: + - supports-color + + jws@3.2.2: + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + + jws@4.0.0: + dependencies: + jwa: 2.0.0 + safe-buffer: 5.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + kleur@4.1.5: {} + + knex@3.1.0(better-sqlite3@11.8.1)(pg@8.16.0): + dependencies: + colorette: 2.0.19 + commander: 10.0.1 + debug: 4.3.4 + escalade: 3.2.0 + esm: 3.2.25 + get-package-type: 0.1.0 + getopts: 2.3.0 + interpret: 2.2.0 + lodash: 4.17.21 + pg-connection-string: 2.6.2 + rechoir: 0.8.0 + resolve-from: 5.0.0 + tarn: 3.0.2 + tildify: 2.0.0 + optionalDependencies: + better-sqlite3: 11.8.1 + pg: 8.16.0 + transitivePeerDependencies: + - supports-color + optional: true + + ky@1.7.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 + type-check: 0.4.0 + + libsql@0.4.7: + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.4.7 + '@libsql/darwin-x64': 0.4.7 + '@libsql/linux-arm64-gnu': 0.4.7 + '@libsql/linux-arm64-musl': 0.4.7 + '@libsql/linux-x64-gnu': 0.4.7 + '@libsql/linux-x64-musl': 0.4.7 + '@libsql/win32-x64-msvc': 0.4.7 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lilconfig@3.1.3: {} + + limiter@1.1.5: {} + + lines-and-columns@1.2.4: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.castarray@4.4.0: {} + + lodash.clonedeep@4.5.0: {} + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.once@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash@4.17.21: + optional: true + + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + + long@5.2.4: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@3.1.3: {} + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + lru-cache@11.1.0: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-memoizer@2.3.0: + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 6.0.0 + + lucide-react@0.469.0(react@19.0.0): + dependencies: + react: 19.0.0 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + make-error@1.3.6: {} + + map-obj@4.3.0: {} + + math-intrinsics@1.1.0: {} + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + media-typer@1.1.0: {} + + merge-descriptors@2.0.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micro@9.3.5-canary.3: + dependencies: + arg: 4.1.0 + content-type: 1.0.4 + raw-body: 2.4.1 + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + mime@3.0.0: {} + + mimic-fn@2.1.0: {} + + mimic-function@5.0.1: {} + + mimic-response@3.1.0: {} + + min-indent@1.0.1: {} + + mini-svg-data-uri@1.4.4: {} + + miniflare@4.20250712.0: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.14.0 + acorn-walk: 8.3.2 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + sharp: 0.33.5 + stoppable: 1.1.0 + undici: 7.11.0 + workerd: 1.20250712.0 + ws: 8.18.0 + youch: 4.1.0-beta.10 + zod: 3.22.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@2.9.0: + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + + minipass@4.2.8: {} + + minipass@7.1.2: {} + + minizlib@1.3.3: + dependencies: + minipass: 2.9.0 + + minizlib@3.0.1: + dependencies: + minipass: 7.1.2 + rimraf: 5.0.10 + + mkdirp-classic@0.5.3: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mkdirp@3.0.1: {} + + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + mnemonist@0.38.3: + dependencies: + obliterator: 1.6.1 + + mock-fs@5.4.1: {} + + mri@1.2.0: {} + + ms@2.1.1: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.11: {} + + nanoid@3.3.7: {} + + nanoid@3.3.8: {} + + nanoid@5.0.9: {} + + napi-build-utils@2.0.0: {} + + natural-compare@1.4.0: {} + + negotiator@1.0.0: {} + + next-auth@4.24.11(next@15.1.0(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@babel/runtime': 7.25.7 + '@panva/hkdf': 1.2.1 + cookie: 0.7.1 + jose: 4.15.9 + next: 15.1.0(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + oauth: 0.9.15 + openid-client: 5.7.1 + preact: 10.25.4 + preact-render-to-string: 5.2.6(preact@10.25.4) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + uuid: 8.3.2 + + next-themes@0.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + next@14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 14.2.24 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001717 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.24 + '@next/swc-darwin-x64': 14.2.24 + '@next/swc-linux-arm64-gnu': 14.2.24 + '@next/swc-linux-arm64-musl': 14.2.24 + '@next/swc-linux-x64-gnu': 14.2.24 + '@next/swc-linux-x64-musl': 14.2.24 + '@next/swc-win32-arm64-msvc': 14.2.24 + '@next/swc-win32-ia32-msvc': 14.2.24 + '@next/swc-win32-x64-msvc': 14.2.24 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@14.2.24(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 14.2.24 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001717 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.1(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.24 + '@next/swc-darwin-x64': 14.2.24 + '@next/swc-linux-arm64-gnu': 14.2.24 + '@next/swc-linux-arm64-musl': 14.2.24 + '@next/swc-linux-x64-gnu': 14.2.24 + '@next/swc-linux-x64-musl': 14.2.24 + '@next/swc-win32-arm64-msvc': 14.2.24 + '@next/swc-win32-ia32-msvc': 14.2.24 + '@next/swc-win32-x64-msvc': 14.2.24 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.0.0-canary.174(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713))(react@19.0.0-rc-8b08e99e-20240713): + dependencies: + '@next/env': 15.0.0-canary.174 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.13 + busboy: 1.6.0 + caniuse-lite: 1.0.30001717 + postcss: 8.4.31 + react: 19.0.0-rc-8b08e99e-20240713 + react-dom: 19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713) + styled-jsx: 5.1.6(react@19.0.0-rc-8b08e99e-20240713) + optionalDependencies: + '@next/swc-darwin-arm64': 15.0.0-canary.174 + '@next/swc-darwin-x64': 15.0.0-canary.174 + '@next/swc-linux-arm64-gnu': 15.0.0-canary.174 + '@next/swc-linux-arm64-musl': 15.0.0-canary.174 + '@next/swc-linux-x64-gnu': 15.0.0-canary.174 + '@next/swc-linux-x64-musl': 15.0.0-canary.174 + '@next/swc-win32-arm64-msvc': 15.0.0-canary.174 + '@next/swc-win32-ia32-msvc': 15.0.0-canary.174 + '@next/swc-win32-x64-msvc': 15.0.0-canary.174 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.0.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 15.0.4 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.13 + busboy: 1.6.0 + caniuse-lite: 1.0.30001664 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.0.4 + '@next/swc-darwin-x64': 15.0.4 + '@next/swc-linux-arm64-gnu': 15.0.4 + '@next/swc-linux-arm64-musl': 15.0.4 + '@next/swc-linux-x64-gnu': 15.0.4 + '@next/swc-linux-x64-musl': 15.0.4 + '@next/swc-win32-arm64-msvc': 15.0.4 + '@next/swc-win32-x64-msvc': 15.0.4 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.1.0(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.1.0 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001664 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.1.0 + '@next/swc-darwin-x64': 15.1.0 + '@next/swc-linux-arm64-gnu': 15.1.0 + '@next/swc-linux-arm64-musl': 15.1.0 + '@next/swc-linux-x64-gnu': 15.1.0 + '@next/swc-linux-x64-musl': 15.1.0 + '@next/swc-win32-arm64-msvc': 15.1.0 + '@next/swc-win32-x64-msvc': 15.1.0 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.1.3(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.1.3 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001664 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.1.3 + '@next/swc-darwin-x64': 15.1.3 + '@next/swc-linux-arm64-gnu': 15.1.3 + '@next/swc-linux-arm64-musl': 15.1.3 + '@next/swc-linux-x64-gnu': 15.1.3 + '@next/swc-linux-x64-musl': 15.1.3 + '@next/swc-win32-arm64-msvc': 15.1.3 + '@next/swc-win32-x64-msvc': 15.1.3 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.1.7(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.1.7 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001664 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.1.7 + '@next/swc-darwin-x64': 15.1.7 + '@next/swc-linux-arm64-gnu': 15.1.7 + '@next/swc-linux-arm64-musl': 15.1.7 + '@next/swc-linux-x64-gnu': 15.1.7 + '@next/swc-linux-x64-musl': 15.1.7 + '@next/swc-win32-arm64-msvc': 15.1.7 + '@next/swc-win32-x64-msvc': 15.1.7 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.3.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.3.5 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001717 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.3.5 + '@next/swc-darwin-x64': 15.3.5 + '@next/swc-linux-arm64-gnu': 15.3.5 + '@next/swc-linux-arm64-musl': 15.3.5 + '@next/swc-linux-x64-gnu': 15.3.5 + '@next/swc-linux-x64-musl': 15.3.5 + '@next/swc-win32-arm64-msvc': 15.3.5 + '@next/swc-win32-x64-msvc': 15.3.5 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.34.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.4.0-canary.14(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.4.0-canary.14 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001664 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.4.0-canary.14 + '@next/swc-darwin-x64': 15.4.0-canary.14 + '@next/swc-linux-arm64-gnu': 15.4.0-canary.14 + '@next/swc-linux-arm64-musl': 15.4.0-canary.14 + '@next/swc-linux-x64-gnu': 15.4.0-canary.14 + '@next/swc-linux-x64-musl': 15.4.0-canary.14 + '@next/swc-win32-arm64-msvc': 15.4.0-canary.14 + '@next/swc-win32-x64-msvc': 15.4.0-canary.14 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.34.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-abi@3.73.0: + dependencies: + semver: 7.7.1 + + node-domexception@1.0.0: {} + + node-fetch@2.6.7: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@2.6.9: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-forge@1.3.1: {} + + node-gyp-build@4.8.4: {} + + node-releases@2.0.18: {} + + node-releases@2.0.19: {} + + nopt@8.1.0: + dependencies: + abbrev: 3.0.0 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + oauth@0.9.15: {} + + object-assign@4.1.1: {} + + object-hash@2.2.0: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object-treeify@1.1.33: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + obliterator@1.6.1: {} + + ohash@2.0.11: {} + + oidc-token-hash@5.0.3: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.3.3: + dependencies: + wrappy: 1.0.2 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + openid-client@5.7.1: + dependencies: + jose: 4.15.9 + lru-cache: 6.0.0 + object-hash: 2.2.0 + oidc-token-hash: 5.0.3 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@8.1.0: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + os-paths@4.4.0: {} + + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-finally@2.0.1: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@2.1.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.10 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-ms@2.1.0: {} + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-match@1.2.4: + dependencies: + http-errors: 1.4.0 + path-to-regexp: 1.9.0 + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + + path-to-regexp@1.9.0: + dependencies: + isarray: 0.0.1 + + path-to-regexp@6.1.0: {} + + path-to-regexp@6.2.1: {} + + path-to-regexp@6.3.0: {} + + path-to-regexp@8.2.0: {} + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + pathval@2.0.0: {} + + pend@1.2.0: {} + + pg-cloudflare@1.2.5: + optional: true + + pg-connection-string@2.6.2: + optional: true + + pg-connection-string@2.9.0: + optional: true + + pg-int8@1.0.1: + optional: true + + pg-pool@3.10.0(pg@8.16.0): + dependencies: + pg: 8.16.0 + optional: true + + pg-protocol@1.10.0: + optional: true + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + optional: true + + pg@8.16.0: + dependencies: + pg-connection-string: 2.9.0 + pg-pool: 3.10.0(pg@8.16.0) + pg-protocol: 1.10.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.2.5 + optional: true + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + optional: true + + picocolors@1.0.0: {} + + picocolors@1.0.1: {} + + picocolors@1.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pirates@4.0.6: {} + + pkg-pr-new@0.0.51: + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + '@octokit/action': 6.1.0 + ignore: 5.3.2 + isbinaryfile: 5.0.4 + pkg-types: 1.3.1 + query-registry: 3.0.1 + tinyglobby: 0.2.14 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + playwright-core@1.51.1: {} + + playwright@1.51.1: + dependencies: + playwright-core: 1.51.1 + optionalDependencies: + fsevents: 2.3.2 + + pluralize@8.0.0: {} + + possible-typed-array-names@1.1.0: {} + + postcss-import@15.1.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.5.1): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.1 + + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.7.1 + optionalDependencies: + postcss: 8.5.1 + ts-node: 10.9.1(@types/node@20.14.10)(typescript@5.5.3) + + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.7.1 + optionalDependencies: + postcss: 8.5.1 + ts-node: 10.9.1(@types/node@20.17.6)(typescript@5.7.3) + + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.12.0)(typescript@5.7.3)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.7.1 + optionalDependencies: + postcss: 8.5.1 + ts-node: 10.9.1(@types/node@22.12.0)(typescript@5.7.3) + + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.7.1 + optionalDependencies: + postcss: 8.5.1 + ts-node: 10.9.1(@types/node@22.2.0)(typescript@5.7.3) + + postcss-nested@6.2.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.27: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + postcss@8.4.39: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postcss@8.5.1: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.3: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postgres-array@2.0.0: + optional: true + + postgres-bytea@1.0.0: + optional: true + + postgres-date@1.0.7: + optional: true + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + optional: true + + preact-render-to-string@5.2.6(preact@10.25.4): + dependencies: + preact: 10.25.4 + pretty-format: 3.8.0 + + preact@10.25.4: {} + + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.73.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + + prelude-ls@1.2.1: {} + + prettier@2.8.8: {} + + prettier@3.3.3: {} + + pretty-format@3.8.0: {} + + pretty-ms@7.0.1: + dependencies: + parse-ms: 2.1.0 + + prisma@6.7.0(typescript@5.7.3): + dependencies: + '@prisma/config': 6.7.0 + '@prisma/engines': 6.7.0 + optionalDependencies: + fsevents: 2.3.3 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + promise-limit@2.7.0: {} + + promisepipe@3.0.0: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@6.5.0: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + optional: true + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.14.10 + long: 5.2.4 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + qrcode.react@4.2.0(react@19.0.0): + dependencies: + react: 19.0.0 + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + quansync@0.2.10: {} + + query-registry@3.0.1: + dependencies: + query-string: 9.1.2 + quick-lru: 7.0.1 + url-join: 5.0.0 + validate-npm-package-name: 5.0.1 + zod: 3.24.4 + zod-package-json: 1.1.0 + + query-string@9.1.2: + dependencies: + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 + + queue-microtask@1.2.3: {} + + quick-lru@7.0.1: {} + + range-parser@1.2.1: {} + + raw-body@2.4.1: + dependencies: + bytes: 3.1.0 + http-errors: 1.7.3 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + + react-dom@19.0.0-rc-8b08e99e-20240713(react@19.0.0-rc-8b08e99e-20240713): + dependencies: + react: 19.0.0-rc-8b08e99e-20240713 + scheduler: 0.25.0-rc-8b08e99e-20240713 + + react-hook-form@7.54.2(react@19.0.0): + dependencies: + react: 19.0.0 + + react-icons@5.4.0(react@19.0.0): + dependencies: + react: 19.0.0 + + react-is@16.13.1: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + react@19.0.0: {} + + react@19.0.0-rc-8b08e99e-20240713: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.1: {} + + rechoir@0.8.0: + dependencies: + resolve: 1.22.10 + optional: true + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + + regenerator-runtime@0.14.1: {} + + regexp-tree@0.1.27: {} + + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + remark-html@16.0.1: + dependencies: + '@types/mdast': 4.0.4 + hast-util-sanitize: 5.0.1 + hast-util-to-html: 9.0.3 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@1.22.8: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retry-request@7.0.2: + dependencies: + '@types/request': 2.48.12 + extend: 3.0.2 + teeny-request: 9.0.0 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + retry@0.13.1: + optional: true + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rimraf@6.0.1: + dependencies: + glob: 11.0.0 + package-json-from-dist: 1.0.1 + + rollup@4.40.1: + dependencies: + '@types/estree': 1.0.7 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.40.1 + '@rollup/rollup-android-arm64': 4.40.1 + '@rollup/rollup-darwin-arm64': 4.40.1 + '@rollup/rollup-darwin-x64': 4.40.1 + '@rollup/rollup-freebsd-arm64': 4.40.1 + '@rollup/rollup-freebsd-x64': 4.40.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.1 + '@rollup/rollup-linux-arm-musleabihf': 4.40.1 + '@rollup/rollup-linux-arm64-gnu': 4.40.1 + '@rollup/rollup-linux-arm64-musl': 4.40.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.1 + '@rollup/rollup-linux-riscv64-gnu': 4.40.1 + '@rollup/rollup-linux-riscv64-musl': 4.40.1 + '@rollup/rollup-linux-s390x-gnu': 4.40.1 + '@rollup/rollup-linux-x64-gnu': 4.40.1 + '@rollup/rollup-linux-x64-musl': 4.40.1 + '@rollup/rollup-win32-arm64-msvc': 4.40.1 + '@rollup/rollup-win32-ia32-msvc': 4.40.1 + '@rollup/rollup-win32-x64-msvc': 4.40.1 + fsevents: 2.3.3 + + router@2.2.0: + dependencies: + debug: 4.4.0 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.2.0 + transitivePeerDependencies: + - supports-color + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-regex: 1.1.4 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safer-buffer@2.1.2: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scheduler@0.25.0: {} + + scheduler@0.25.0-rc-8b08e99e-20240713: {} + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.7.1: {} + + send@1.2.0: + dependencies: + debug: 4.4.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + + server-only@0.0.1: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + setprototypeof@1.1.1: {} + + setprototypeof@1.2.0: {} + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.4 + 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 + + sharp@0.34.1: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.0.2: {} + + signal-exit@4.1.0: {} + + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + slash@3.0.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + snakecase-keys@5.4.4: + dependencies: + map-obj: 4.3.0 + snake-case: 3.0.4 + type-fest: 2.19.0 + + sonner@1.7.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + source-map-js@1.2.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + space-separated-tokens@2.0.2: {} + + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + split-on-first@3.0.0: {} + + split2@4.2.0: + optional: true + + sprintf-js@1.0.3: {} + + stackback@0.0.2: {} + + stat-mode@0.3.0: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + std-env@3.9.0: {} + + stdin-discarder@0.2.2: {} + + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.1.0 + + stoppable@1.1.0: {} + + stream-events@1.0.5: + dependencies: + stubs: 3.0.0 + optional: true + + stream-shift@1.0.3: + optional: true + + stream-to-array@2.3.0: + dependencies: + any-promise: 1.3.0 + + stream-to-promise@2.2.0: + dependencies: + any-promise: 1.3.0 + end-of-stream: 1.1.0 + stream-to-array: 2.3.0 + + streamsearch@1.1.0: {} + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@1.3.0: + 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 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom-string@1.0.0: {} + + strip-bom@3.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + strnum@1.0.5: {} + + stubs@3.0.0: + optional: true + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + styled-jsx@5.1.1(react@19.0.0): + dependencies: + client-only: 0.0.1 + react: 19.0.0 + + styled-jsx@5.1.6(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + styled-jsx@5.1.6(react@19.0.0): + dependencies: + client-only: 0.0.1 + react: 19.0.0 + + styled-jsx@5.1.6(react@19.0.0-rc-8b08e99e-20240713): + dependencies: + client-only: 0.0.1 + react: 19.0.0-rc-8b08e99e-20240713 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@10.0.0: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swr@2.2.5(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + + tailwind-merge@2.6.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3))): + dependencies: + tailwindcss: 3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + + tailwindcss@3.3.3(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@3.4.11(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@3.4.11(ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@3.4.17(ts-node@10.9.1(@types/node@22.12.0)(typescript@5.7.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.12.0)(typescript@5.7.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@3.4.5(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@4.4.18: + dependencies: + chownr: 1.1.4 + fs-minipass: 1.2.7 + minipass: 2.9.0 + minizlib: 1.3.3 + mkdirp: 0.5.6 + safe-buffer: 5.2.1 + yallist: 3.1.1 + + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 + + tarn@3.0.2: + optional: true + + teeny-request@9.0.0: + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + stream-events: 1.0.5 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + term-size@2.2.1: {} + + terser@5.16.9: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tildify@2.0.0: + optional: true + + time-span@4.0.0: + dependencies: + convert-hrtime: 3.0.0 + + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + + tinypool@1.0.2: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.0: {} + + toidentifier@1.0.1: {} + + tr46@0.0.3: {} + + tree-kill@1.2.2: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@1.4.3(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + ts-api-utils@2.1.0(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + ts-interface-checker@0.1.13: {} + + ts-morph@12.0.0: + dependencies: + '@ts-morph/common': 0.11.1 + code-block-writer: 10.1.1 + + ts-node@10.9.1(@types/node@16.18.11)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 16.18.11 + acorn: 8.14.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + ts-node@10.9.1(@types/node@20.14.10)(typescript@5.5.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.14.10 + acorn: 8.14.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + + ts-node@10.9.1(@types/node@20.17.6)(typescript@5.7.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.17.6 + acorn: 8.14.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + + ts-node@10.9.1(@types/node@22.12.0)(typescript@5.7.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.12.0 + acorn: 8.14.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + + ts-node@10.9.1(@types/node@22.2.0)(typescript@5.7.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.2.0 + acorn: 8.14.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + + ts-toolbelt@6.15.5: {} + + ts-tqdm@0.8.6: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.4.1: {} + + tslib@2.8.1: {} + + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.0 + optionalDependencies: + fsevents: 2.3.3 + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.1.0: {} + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@2.19.0: {} + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript-eslint@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3))(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + typescript@4.9.5: {} + + typescript@5.5.3: {} + + typescript@5.7.3: {} + + ufo@1.6.1: {} + + uid-promise@1.0.0: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@5.26.5: {} + + undici-types@6.13.0: {} + + undici-types@6.19.8: {} + + undici-types@6.20.0: {} + + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + undici@6.21.2: {} + + undici@7.11.0: {} + + unenv@2.0.0-rc.17: + dependencies: + defu: 6.1.4 + exsolve: 1.0.5 + ohash: 2.0.11 + pathe: 2.0.3 + ufo: 1.6.1 + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universal-user-agent@6.0.1: {} + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + update-browserslist-db@1.1.3(browserslist@4.24.5): + dependencies: + browserslist: 4.24.5 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-join@5.0.0: {} + + urlpattern-polyfill@10.1.0: {} + + use-sync-external-store@1.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + + util-deprecate@1.0.2: {} + + utils-merge@1.0.1: {} + + uuid@11.0.5: {} + + uuid@3.3.2: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@5.0.1: {} + + vary@1.1.2: {} + + vercel@39.4.2(rollup@4.40.1): + dependencies: + '@vercel/build-utils': 9.1.0 + '@vercel/fun': 1.1.2 + '@vercel/go': 3.2.1 + '@vercel/hydrogen': 1.0.11 + '@vercel/next': 4.4.4(rollup@4.40.1) + '@vercel/node': 5.0.4(rollup@4.40.1) + '@vercel/python': 4.7.1 + '@vercel/redwood': 2.1.13(rollup@4.40.1) + '@vercel/remix-builder': 5.1.1(rollup@4.40.1) + '@vercel/ruby': 2.2.0 + '@vercel/static-build': 2.5.43 + chokidar: 4.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - encoding + - rollup + - supports-color + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite-node@2.1.1(@types/node@22.2.0)(terser@5.16.9): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + pathe: 1.1.2 + vite: 5.4.19(@types/node@22.2.0)(terser@5.16.9) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite@5.4.19(@types/node@22.2.0)(terser@5.16.9): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.3 + rollup: 4.40.1 + optionalDependencies: + '@types/node': 22.2.0 + fsevents: 2.3.3 + terser: 5.16.9 + + vitest@2.1.1(@edge-runtime/vm@3.2.0)(@types/node@22.2.0)(terser@5.16.9): + dependencies: + '@vitest/expect': 2.1.1 + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.19(@types/node@22.2.0)(terser@5.16.9)) + '@vitest/pretty-format': 2.1.9 + '@vitest/runner': 2.1.1 + '@vitest/snapshot': 2.1.1 + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 + chai: 5.2.0 + debug: 4.4.0 + magic-string: 0.30.17 + pathe: 1.1.2 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.19(@types/node@22.2.0)(terser@5.16.9) + vite-node: 2.1.1(@types/node@22.2.0)(terser@5.16.9) + why-is-node-running: 2.3.0 + optionalDependencies: + '@edge-runtime/vm': 3.2.0 + '@types/node': 22.2.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + web-streams-polyfill@3.3.3: {} + + web-streams-polyfill@4.0.0-beta.3: {} + + web-vitals@0.2.4: {} + + webidl-conversions@3.0.1: {} + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.9 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + + 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-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + workerd@1.20250712.0: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20250712.0 + '@cloudflare/workerd-darwin-arm64': 1.20250712.0 + '@cloudflare/workerd-linux-64': 1.20250712.0 + '@cloudflare/workerd-linux-arm64': 1.20250712.0 + '@cloudflare/workerd-windows-64': 1.20250712.0 + + wrangler@4.24.4(@cloudflare/workers-types@4.20250109.0): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.0 + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250712.0) + blake3-wasm: 2.1.5 + esbuild: 0.25.4 + miniflare: 4.20250712.0 + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.17 + workerd: 1.20250712.0 + optionalDependencies: + '@cloudflare/workers-types': 4.20250109.0 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + wrangler@4.24.4(@cloudflare/workers-types@4.20250224.0): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.0 + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250712.0) + blake3-wasm: 2.1.5 + esbuild: 0.25.4 + miniflare: 4.20250712.0 + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.17 + workerd: 1.20250712.0 + optionalDependencies: + '@cloudflare/workers-types': 4.20250224.0 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@8.18.0: {} + + xdg-app-paths@5.1.0: + dependencies: + xdg-portable: 7.3.0 + + xdg-portable@7.3.0: + dependencies: + os-paths: 4.4.0 + + xtend@4.0.2: + optional: true + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yallist@5.0.0: {} + + yaml@2.7.1: {} + + yargs-parser@21.1.1: {} + + yargs-parser@22.0.0: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + + yauzl-clone@1.0.4: + dependencies: + events-intercept: 2.0.0 + + yauzl-promise@2.1.3: + dependencies: + yauzl: 2.10.0 + yauzl-clone: 1.0.4 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.2 + error-stack-parser-es: 1.0.5 + + youch@4.1.0-beta.10: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 + '@speed-highlight/core': 1.2.7 + cookie: 1.0.2 + youch-core: 0.3.3 + + zod-package-json@1.1.0: + dependencies: + zod: 3.24.4 + + zod@3.22.3: {} + + zod@3.24.1: {} + + zod@3.24.4: {} + + zwitch@2.0.4: {} diff --git a/.auto-resolution/pnpm-workspace.yaml b/.auto-resolution/pnpm-workspace.yaml new file mode 100644 index 00000000..786ed532 --- /dev/null +++ b/.auto-resolution/pnpm-workspace.yaml @@ -0,0 +1,52 @@ +packages: + - packages/* + - examples/* + - examples/e2e/* + - examples/bugs/* + - examples/overrides/* + - "!examples/common" + - benchmarking + +catalog: + "@cloudflare/workers-types": ^4.20250224.0 + "@dotenvx/dotenvx": 1.31.0 + "@eslint/js": ^9.11.1 + "@playwright/test": ^1.51.1 + "@tsconfig/strictest": ^2.0.5 + "@types/mock-fs": ^4.13.4 + "@types/node": ^22.2.0 + "@types/react-dom": ^18 + "@types/react": ^18 + "@types/yargs": ^17.0.33 + esbuild: ^0.25.4 + eslint-plugin-import: ^2.31.0 + eslint-plugin-simple-import-sort: ^12.1.1 + eslint-plugin-unicorn: ^55.0.0 + eslint: ^9.31.0 + glob: ^11.0.0 + globals: ^15.9.0 + mock-fs: ^5.4.1 + next: ~14.2.24 + package-manager-detector: ^0.2.0 + react-dom: ^18 + react: ^18 + rimraf: ^6.0.1 + tsx: ^4.19.2 + typescript-eslint: ^8.37.0 + typescript: ^5.7.3 + vitest: ^2.1.1 + wrangler: ^4.24.4 + yargs: ^18.0.0 + +# e2e tests +catalogs: + e2e: + "@types/node": 20.17.6 + "@types/react-dom": 19.0.0 + "@types/react": 19.0.0 + autoprefixer: 10.4.15 + next: ~15.3.5 + postcss: 8.4.27 + react-dom: 19.0.0 + react: 19.0.0 + tailwindcss: 3.3.3 diff --git a/.conflict-base-0/.changeset/README.md b/.conflict-base-0/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.conflict-base-0/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.conflict-base-0/.changeset/config.json b/.conflict-base-0/.changeset/config.json new file mode 100644 index 00000000..0051230e --- /dev/null +++ b/.conflict-base-0/.changeset/config.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", + "changelog": [ + "@changesets/changelog-github", + { + "repo": "opennextjs/opennextjs-cloudflare" + } + ], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [], + "privatePackages": false +} diff --git a/.conflict-base-0/.changeset/crazy-birds-jam.md b/.conflict-base-0/.changeset/crazy-birds-jam.md new file mode 100644 index 00000000..37b1ab83 --- /dev/null +++ b/.conflict-base-0/.changeset/crazy-birds-jam.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +Cancel the unused stream (body) diff --git a/.conflict-base-0/.changeset/eager-steaks-crash.md b/.conflict-base-0/.changeset/eager-steaks-crash.md new file mode 100644 index 00000000..7d31941f --- /dev/null +++ b/.conflict-base-0/.changeset/eager-steaks-crash.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +cancel the body stream when unconsumed diff --git a/.conflict-base-0/.changeset/hungry-ideas-buy.md b/.conflict-base-0/.changeset/hungry-ideas-buy.md new file mode 100644 index 00000000..9d44bce6 --- /dev/null +++ b/.conflict-base-0/.changeset/hungry-ideas-buy.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": minor +--- + +refactor: use yargs for the cli diff --git a/.conflict-base-0/.editorconfig b/.conflict-base-0/.editorconfig new file mode 100644 index 00000000..03d60ea7 --- /dev/null +++ b/.conflict-base-0/.editorconfig @@ -0,0 +1,6 @@ +# https://editorconfig.org +root = true + +[*] +indent_style = tab +end_of_line = lf diff --git a/.conflict-base-0/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.conflict-base-0/.github/ISSUE_TEMPLATE/1.bug_report.yml new file mode 100644 index 00000000..79acd688 --- /dev/null +++ b/.conflict-base-0/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -0,0 +1,71 @@ +name: "Bug Report" +description: "Create a report to help us improve" +title: "[BUG] " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + - type: textarea + id: bug-description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. + placeholder: When I try to..., the error occurs... + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: Minimal steps to reproduce the behavior (linking a repo with a reproduction will help for non trivial issues) + placeholder: | + 1. Go to '...' + 2. Click on '...' + 3. See error + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: A clear and concise description of what you expected to happen. + validations: + required: true + + - type: input + id: opennext-version + attributes: + label: "@opennextjs/cloudflare version" + placeholder: "0.2.1" + validations: + required: true + + - type: input + id: wrangler-version + attributes: + label: "Wrangler version" + placeholder: "3.x" + validations: + required: true + + - type: textarea + id: next-info + attributes: + label: "next info output" + description: "Please run `next info` in your project directory and paste the output" + render: shell + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context about the problem here. + validations: + required: false diff --git a/.conflict-base-0/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.conflict-base-0/.github/ISSUE_TEMPLATE/2.feature_request.yml new file mode 100644 index 00000000..42704def --- /dev/null +++ b/.conflict-base-0/.github/ISSUE_TEMPLATE/2.feature_request.yml @@ -0,0 +1,68 @@ +name: "Feature Request" +description: "Suggest an idea for this project" +title: "[FEATURE] " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to suggest a new feature! Please fill out this form as completely as possible. + + - type: textarea + id: problem-description + attributes: + label: Is your feature request related to a problem? + description: A clear and concise description of what the problem is. + placeholder: I'm always frustrated when [...] + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Describe the solution you'd like + description: A clear and concise description of what you want to happen. + placeholder: | + I would like to see... + This would help by... + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + placeholder: | + Alternative 1... + Alternative 2... + validations: + required: true + + - type: input + id: opennext-version + attributes: + label: "@opennextjs/cloudflare version" + description: What version of @opennextjs/cloudflare does this apply to? + placeholder: "0.2.1" + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + validations: + required: false + + - type: checkboxes + id: terms + attributes: + label: Before submitting + description: Please confirm the following + options: + - label: I have checked that there isn't already a similar feature request + required: true + - label: This is a single feature (not multiple features in one request) + required: true diff --git a/.conflict-base-0/.github/ISSUE_TEMPLATE/config.yml b/.conflict-base-0/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..5c615cbe --- /dev/null +++ b/.conflict-base-0/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Support + url: https://discord.gg/opennextjs + about: "Join us on Discord!" diff --git a/.conflict-base-0/.github/actions/install-dependencies/action.yml b/.conflict-base-0/.github/actions/install-dependencies/action.yml new file mode 100644 index 00000000..9f471609 --- /dev/null +++ b/.conflict-base-0/.github/actions/install-dependencies/action.yml @@ -0,0 +1,21 @@ +name: "Install Dependencies" +description: "Install dependencies, fetching from cache when possible" + +runs: + using: "composite" + steps: + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.18.0 + cache: "pnpm" + registry-url: "https://registry.npmjs.org" + + - name: Install NPM Dependencies + shell: bash + run: pnpm install --frozen-lockfile diff --git a/.conflict-base-0/.github/actions/setup-playwright/action.yml b/.conflict-base-0/.github/actions/setup-playwright/action.yml new file mode 100644 index 00000000..161da717 --- /dev/null +++ b/.conflict-base-0/.github/actions/setup-playwright/action.yml @@ -0,0 +1,27 @@ +name: "Setup Playwright" +description: "Setup Playwright with caching" + +runs: + using: "composite" + steps: + - name: Put $HOME in env + if: runner.os == 'windows' + shell: pwsh + run: echo "HOME=$HOME" | Out-File -FilePath $env:GITHUB_ENV -Append + + - name: Cache Playwright + id: playwright-cache + uses: actions/cache@v4 + with: + path: ${{ runner.os == 'Windows' && format('{0}{1}', env.HOME, '\AppData\Local\ms-playwright') || runner.os == 'Linux' && '~/.cache/ms-playwright' || '~/Library/Caches/ms-playwright' }} + key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + + - name: Install Playwright with dependencies + if: steps.playwright-cache.outputs.cache-hit != 'true' + shell: bash + run: pnpm playwright install --with-deps + + - name: Install Playwright's dependencies + if: steps.playwright-cache.outputs.cache-hit == 'true' + shell: bash + run: pnpm playwright install-deps diff --git a/.conflict-base-0/.github/workflows/changesets.yml b/.conflict-base-0/.github/workflows/changesets.yml new file mode 100644 index 00000000..353e929b --- /dev/null +++ b/.conflict-base-0/.github/workflows/changesets.yml @@ -0,0 +1,35 @@ +name: Handle Changesets + +on: + push: + branches: + - main + +jobs: + release: + if: ${{ github.repository_owner == 'opennextjs' }} + name: Handle Changesets + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + # See https://github.com/changesets/action/issues/187 + token: ${{ secrets.GH_ACCESS_TOKEN }} + fetch-depth: 0 + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies + + - name: Build Cloudflare package + run: pnpm run build + + - name: Create Version PR or Publish to NPM + id: changesets + uses: changesets/action@v1 + with: + publish: pnpm exec changeset publish + env: + GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} + NODE_ENV: "production" diff --git a/.conflict-base-0/.github/workflows/checks.yml b/.conflict-base-0/.github/workflows/checks.yml new file mode 100644 index 00000000..408104e8 --- /dev/null +++ b/.conflict-base-0/.github/workflows/checks.yml @@ -0,0 +1,24 @@ +name: Code checks + +on: + push: + branches: [main, experimental] + pull_request: + +jobs: + checks: + name: ${{ matrix.script }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + script: ["prettier:check", "lint:check", "ts:check", "test"] + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies + + - name: ${{ matrix.script }} + run: pnpm run ${{ matrix.script }} diff --git a/.conflict-base-0/.github/workflows/playwright.yml b/.conflict-base-0/.github/workflows/playwright.yml new file mode 100644 index 00000000..b64c8f1f --- /dev/null +++ b/.conflict-base-0/.github/workflows/playwright.yml @@ -0,0 +1,39 @@ +name: Playwright Tests + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + timeout-minutes: 30 + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies + + - name: Install Playwright + uses: ./.github/actions/setup-playwright + + - name: Build the tool + run: pnpm build + + - name: Build all workers + run: pnpm -r build:worker + + - name: Run playwright tests + run: pnpm e2e + + - name: Run playwright dev tests + run: pnpm e2e:dev + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: playwright-report + path: ./**/playwright-report + retention-days: 1 diff --git a/.conflict-base-0/.github/workflows/prereleases.yml b/.conflict-base-0/.github/workflows/prereleases.yml new file mode 100644 index 00000000..a70ea2ea --- /dev/null +++ b/.conflict-base-0/.github/workflows/prereleases.yml @@ -0,0 +1,27 @@ +name: Publish prereleases + +on: + push: + branches: [main, experimental] + pull_request: + +jobs: + release: + if: ${{ github.repository_owner == 'opennextjs' }} + name: Publish builder package + runs-on: ubuntu-latest + + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies + + - name: Build + run: pnpm -F cloudflare run build + + - name: Publish to NPM + run: pnpm exec pkg-pr-new publish --pnpm --compact './packages/cloudflare' diff --git a/.conflict-base-0/.gitignore b/.conflict-base-0/.gitignore new file mode 100644 index 00000000..e0efbe5f --- /dev/null +++ b/.conflict-base-0/.gitignore @@ -0,0 +1,8 @@ +node_modules +.DS_Store + +output +.open-next +.wrangler +.turbo +dist \ No newline at end of file diff --git a/.conflict-base-0/.prettierignore b/.conflict-base-0/.prettierignore new file mode 100644 index 00000000..c90c76a3 --- /dev/null +++ b/.conflict-base-0/.prettierignore @@ -0,0 +1,7 @@ +.next +.wrangler +pnpm-lock.yaml +.vscode/setting.json +test-fixtures +test-snapshots +playwright-report \ No newline at end of file diff --git a/.conflict-base-0/.prettierrc b/.conflict-base-0/.prettierrc new file mode 100644 index 00000000..7eea1c65 --- /dev/null +++ b/.conflict-base-0/.prettierrc @@ -0,0 +1,16 @@ +{ + "printWidth": 110, + "singleQuote": false, + "semi": true, + "useTabs": true, + "trailingComma": "es5", + "overrides": [ + { + "// comment": "wrangler doesn't seem to accept wrangler.jsonc with trailing commas", + "files": ["**/wrangler.jsonc"], + "options": { + "trailingComma": "none" + } + } + ] +} diff --git a/.conflict-base-0/.vscode/settings.json b/.conflict-base-0/.vscode/settings.json new file mode 100644 index 00000000..12cf6e8c --- /dev/null +++ b/.conflict-base-0/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.formatOnSave": true, + "cSpell.words": ["nextjs"] +} diff --git a/.conflict-base-0/CONTRIBUTING.md b/.conflict-base-0/CONTRIBUTING.md new file mode 100644 index 00000000..87728006 --- /dev/null +++ b/.conflict-base-0/CONTRIBUTING.md @@ -0,0 +1,183 @@ +# Getting started + +## Set up your environment + +- Install [Node.js v20](https://nodejs.dev/) - we recommend using a Node version manager like [nvm](https://github.com/nvm-sh/nvm) or [volta](https://volta.sh/). +- Install a code editor - we recommend using [VS Code](https://code.visualstudio.com/). +- Install the [git](https://git-scm.com/) version control tool. +- Install the [pnpm](https://pnpm.io/installation) package manager tool. + +## Fork and clone this repository + +Any contributions you make will be via [Pull Requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) on [GitHub](https://github.com/) developed in a local git repository and pushed to your own fork of the repository. + +- Ensure you have [created an account](https://docs.github.com/en/get-started/onboarding/getting-started-with-your-github-account) on GitHub. +- [Create your own fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) of [this repository](https://github.com/opennextjs/opennextjs-cloudflare). +- Clone your fork to your local machine + + ```sh + > git clone https://github.com//opennextjs-cloudflare + > cd opennextjs-cloudflare + ``` + + You can see that your fork is setup as the `origin` remote repository. + Any changes you wish to make should be in a local branch that is then pushed to this origin remote. + + ```sh + > git remote -v + origin https://github.com//opennextjs-cloudflare (fetch) + origin https://github.com//opennextjs-cloudflare (push) + ``` + +- Add `opennextjs/opennextjs-cloudflare` as the `upstream` remote repository. + + ```sh + > git remote add upstream https://github.com/opennextjs/opennextjs-cloudflare + > git remote -v + origin https://github.com//opennextjs-cloudflare (fetch) + origin https://github.com//opennextjs-cloudflare (push) + upstream https://github.com/opennextjs/opennextjs-cloudflare (fetch) + upstream https://github.com/opennextjs/opennextjs-cloudflare (push) + ``` + +- You should regularly pull from the `main` branch of the `upstream` repository to keep up to date with the latest changes to the project. + + ```sh + > git switch main + > git pull upstream main + From https://github.com/opennextjs/opennextjs-cloudflare + * branch main -> FETCH_HEAD + Already up to date. + ``` + +## Install dependencies + +The Node.js dependencies of the project are managed by the [`pnpm`](https://pnpm.io/) tool. + +This repository is setup as a [mono-repo](https://pnpm.io/workspaces) of workspaces. The workspaces are stored in the [`packages`](https://github.com/opennextjs/opennextjs-cloudflare/tree/main/packages) directory. + +While each workspace has its own dependencies, you install the dependencies using `pnpm` at the root of the project. + +- Install all the dependencies + + ```sh + > cd opennextjs-cloudflare + > pnpm install + ``` + +## Building and running + +Build the cloudflare adaptor tool with: + +```sh +pnpm --filter cloudflare build +``` + +or in watch mode with: + +```sh +pnpm --filter cloudflare build:watch +``` + +Build and preview a Next.js sample application. For example, the `api` application: + +```sh +pnpm --filter api preview +``` + +You can skip building the Next.js app when it has not been modified, and only run the Cloudflare adaptor tool: + +```sh +SKIP_NEXT_APP_BUILD=true pnpm --filter api preview +``` + +## Checking the code + +Run the format, lint and type checks on the code: + +```sh +pnpm run code:checks +``` + +Attempt to auto-fix any issues with the format, lint and type checks: + +```sh +pnpm run fix +``` + +## Testing the code + +Run all the unit tests, via Vitest: + +```sh +pnpm run test +``` + +Run all the e2e tests, via Playwright: + +```sh +pnpm run e2e +pnpm run e2e:dev +``` + +## Changesets + +Every non-trivial change to the project - those that should appear in the changelog - must be captured in a "changeset". +We use the [`changesets`](https://github.com/changesets/changesets/blob/main/README.md) tool for creating changesets, publishing versions and updating the changelog. + +- Create a changeset for the current change. + + ```sh + pnpm changeset + ``` + +- Select which workspaces are affected by the change and whether the version requires a major, minor or patch release. +- Update the generated changeset with a description of the change. +- Include the generate changeset in the current commit. + + ```sh + git add ./changeset/*.md + ``` + +### Changeset message format + +Each changeset is a file that describes the change being merged. This file is used to generate the changelog when the changes are released. + +To help maintain consistency in the changelog, changesets should have the following format: + +```text +: + +<BODY> + +[BREAKING CHANGES <BREAKING_CHANGE_NOTES>] +``` + +- `TYPE` should be a single word describing the "type" of the change. For example, one of `feature`, `fix`, `refactor`, `docs` or `chore`. +- `TITLE` should be a single sentence containing an imperative description of the change. +- `BODY` should be one or more paragraphs that go into more detail about the reason for the change and anything notable about the approach taken. +- `BREAKING_CHANGE_NOTES` (optional) should be one or more paragraphs describing how this change breaks current usage and how to migrate to the new usage. + +### Changeset file example + +The generated changeset file will contain the package name and type of change (eg. `patch`, `minor`, or `major`), followed by our changeset format described above. + +Here's an example of a `patch` to the `@opennextjs/cloudflare` package, which provides a `fix`: + +```md +--- +"@opennextjs/cloudflare": patch +--- + +fix: replace the word "publish" with "deploy" everywhere. + +We should be consistent with the word that describes how we get a worker to the edge. The command is `deploy`, so let's use that everywhere. +``` + +### Types of changes + +We use the following guidelines to determine the kind of change for a PR: + +- Bugfixes and experimental features are considered to be 'patch' changes. Be sure to log warnings when experimental features are used. +- New stable features and new deprecation warnings for future breaking changes are considered 'minor' changes. These changes shouldn't break existing code, but the deprecation warnings should suggest alternate solutions to not trigger the warning. +- Breaking changes are considered to be 'major' changes. These are usually when deprecations take effect, or functional breaking behaviour is added with relevant logs (either as errors or warnings.) diff --git a/.conflict-base-0/LICENSE b/.conflict-base-0/LICENSE new file mode 100644 index 00000000..64233aef --- /dev/null +++ b/.conflict-base-0/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2020 Cloudflare, Inc. + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/.conflict-base-0/README.md b/.conflict-base-0/README.md new file mode 100644 index 00000000..4bb09516 --- /dev/null +++ b/.conflict-base-0/README.md @@ -0,0 +1,41 @@ +# Deploy Next.js apps to Cloudflare + +[OpenNext for Cloudflare](https://opennext.js.org/cloudflare) is an adapter that enables the deployment of Next.js applications to Cloudflare's developer platform. + +This monorepo includes a package for adapting a Next.js application built via `next build` (in standalone mode) to run in the Cloudflare workerd runtime using the [Workers Node.js compatibility layer](https://developers.cloudflare.com/workers/runtime-apis/nodejs/). + +## Get started + +Visit the [OpenNext docs](https://opennext.js.org/cloudflare/get-started) for instructions on starting a new project, or migrating an existing one. + +## Contributing + +### The repository + +The repository contains two directories: + +- `packages` containing a cloudflare package that can be used to build a Cloudflare Workers-compatible output for Next.js applications. +- `examples` containing Next.js applications that use the above mentioned cloudflare package. + +### How to try out the `@opennextjs/cloudflare` package + +You can simply install the package from npm as specified in the [OpenNext documentation](https://opennext.js.org/cloudflare/get-started). + +#### Preleases + +Besides the standard npm releases we also automatically publish prerelease packages on branch pushes (using [`pkg.pr.new`](https://github.com/stackblitz-labs/pkg.pr.new)): + +- `https://pkg.pr.new/@opennextjs/cloudflare@main`: + Updated with every push to the `main` branch, this prerelease contains the most up to date yet (reasonably) stable version of the package. +- `https://pkg.pr.new/@opennextjs/cloudflare@experimental` + Updated with every push to the `experimental` branch, this prerelease contains the latest experimental version of the package (containing features that we want to test/experiment on before committing to). + +Which you can simply install directly with your package manager of choice, for example: + +```bash +npm i https://pkg.pr.new/@opennextjs/cloudflare@main +``` + +### How to develop in the repository + +See the [CONTRIBUTING](./CONTRIBUTING.md) page for how to get started with this repository. diff --git a/.conflict-base-0/benchmarking/.gitignore b/.conflict-base-0/benchmarking/.gitignore new file mode 100644 index 00000000..fbca2253 --- /dev/null +++ b/.conflict-base-0/benchmarking/.gitignore @@ -0,0 +1 @@ +results/ diff --git a/.conflict-base-0/benchmarking/README.md b/.conflict-base-0/benchmarking/README.md new file mode 100644 index 00000000..500f815a --- /dev/null +++ b/.conflict-base-0/benchmarking/README.md @@ -0,0 +1,17 @@ +# Benchmarking + +This directory contains a script for running full end to end benchmarks against the example applications. + +What the script does: + +- takes all the example applications from the [`./examples` directory](../examples/) + (excluding the ones specified in the `exampleAppsNotToBenchmark` set in [`./src/cloudflare.ts`](./src/cloudflare.ts)) +- in parallel for each application: + - builds the application by running its `build:worker` script + - deploys the application to production (with `wrangler deploy`) + - takes the production deployment url + - benchmarks the application's response time by fetching from the deployment url a number of times + +> [!note] +> This is the first cut at benchmarking our solution, later we can take the script in this directory, +> generalize it and make it more reusable if we want diff --git a/.conflict-base-0/benchmarking/package.json b/.conflict-base-0/benchmarking/package.json new file mode 100644 index 00000000..4e115611 --- /dev/null +++ b/.conflict-base-0/benchmarking/package.json @@ -0,0 +1,14 @@ +{ + "name": "@opennextjs-cloudflare/benchmarking", + "private": true, + "type": "module", + "devDependencies": { + "tsx": "catalog:", + "@tsconfig/strictest": "catalog:", + "@types/node": "catalog:", + "ora": "^8.1.0" + }, + "scripts": { + "benchmark": "tsx src/index.ts" + } +} diff --git a/.conflict-base-0/benchmarking/src/benchmarking.ts b/.conflict-base-0/benchmarking/src/benchmarking.ts new file mode 100644 index 00000000..be7edf02 --- /dev/null +++ b/.conflict-base-0/benchmarking/src/benchmarking.ts @@ -0,0 +1,132 @@ +import nodeTimesPromises from "node:timers/promises"; +import nodeFsPromises from "node:fs/promises"; +import nodePath from "node:path"; +import { getPercentile } from "./utils"; + +export type FetchBenchmark = { + iterationsMs: number[]; + averageMs: number; + p90Ms: number; +}; + +export type BenchmarkingResults = { + name: string; + path: string; + fetchBenchmark: FetchBenchmark; +}[]; + +type BenchmarkFetchOptions = { + numberOfIterations?: number; + maxRandomDelayMs?: number; + fetch: (deploymentUrl: string) => Promise<Response>; +}; + +const defaultOptions: Required<Omit<BenchmarkFetchOptions, "fetch">> = { + numberOfIterations: 20, + maxRandomDelayMs: 15_000, +}; + +/** + * Benchmarks the response time of an application end-to-end by: + * - building the application + * - deploying it + * - and fetching from it (multiple times) + * + * @param options.build function implementing how the application is to be built + * @param options.deploy function implementing how the application is deployed (returning the url of the deployment) + * @param options.fetch function indicating how to fetch from the application (in case a specific route needs to be hit, cookies need to be applied, etc...) + * @returns the benchmarking results for the application + */ +export async function benchmarkApplicationResponseTime({ + build, + deploy, + fetch, +}: { + build: () => Promise<void>; + deploy: () => Promise<string>; + fetch: (deploymentUrl: string) => Promise<Response>; +}): Promise<FetchBenchmark> { + await build(); + const deploymentUrl = await deploy(); + return benchmarkFetch(deploymentUrl, { fetch }); +} + +/** + * Benchmarks a fetch operation by running it multiple times and computing the average time (in milliseconds) such fetch operation takes. + * + * @param url The url to fetch from + * @param options options for the benchmarking + * @returns the computed average alongside all the single call times + */ +async function benchmarkFetch(url: string, options: BenchmarkFetchOptions): Promise<FetchBenchmark> { + const benchmarkFetchCall = async () => { + const preTimeMs = performance.now(); + const resp = await options.fetch(url); + const postTimeMs = performance.now(); + + if (!resp.ok) { + throw new Error(`Error: Failed to fetch from "${url}"`); + } + + return postTimeMs - preTimeMs; + }; + + const resolvedOptions = { ...defaultOptions, ...options }; + + const iterationsMs = await Promise.all( + new Array(resolvedOptions.numberOfIterations).fill(null).map(async () => { + // let's add a random delay before we make the fetch + await nodeTimesPromises.setTimeout(Math.round(Math.random() * resolvedOptions.maxRandomDelayMs)); + + return benchmarkFetchCall(); + }) + ); + + const averageMs = iterationsMs.reduce((time, sum) => sum + time) / iterationsMs.length; + + const p90Ms = getPercentile(iterationsMs, 90); + + return { + iterationsMs, + averageMs, + p90Ms, + }; +} + +/** + * Saves benchmarking results in a local json file + * + * @param results the benchmarking results to save + * @returns the path to the created json file + */ +export async function saveResultsToDisk(results: BenchmarkingResults): Promise<string> { + const date = new Date(); + + const fileName = `${toSimpleDateString(date)}.json`; + + const outputFile = nodePath.resolve(`./results/${fileName}`); + + await nodeFsPromises.mkdir(nodePath.dirname(outputFile), { recursive: true }); + + const resultStr = JSON.stringify(results, null, 2); + await nodeFsPromises.writeFile(outputFile, resultStr); + + return outputFile; +} + +/** + * Takes a date and coverts it to a simple format that can be used as + * a filename (which is human readable and doesn't contain special + * characters) + * + * The format being: `YYYY-MM-DD_hh-mm-ss` + * + * @param date the date to convert + * @returns a string representing the date + */ +function toSimpleDateString(date: Date): string { + const isoString = date.toISOString(); + const isoDate = isoString.split(".")[0]!; + + return isoDate.replace("T", "_").replaceAll(":", "-"); +} diff --git a/.conflict-base-0/benchmarking/src/cloudflare.ts b/.conflict-base-0/benchmarking/src/cloudflare.ts new file mode 100644 index 00000000..afd67f49 --- /dev/null +++ b/.conflict-base-0/benchmarking/src/cloudflare.ts @@ -0,0 +1,123 @@ +import nodeFsPromises from "node:fs/promises"; +import nodeFs from "node:fs"; +import nodePath from "node:path"; +import nodeChildProcess from "node:child_process"; + +await ensureWranglerSetup(); + +/** + * Collects name and absolute paths of apps (in this repository) that we want to benchmark + * + * @returns Array of objects containing the app's name and absolute path + */ +export async function collectAppPathsToBenchmark(): Promise< + { + name: string; + path: string; + }[] +> { + const allExampleNames = await nodeFsPromises.readdir("../examples"); + + /** + * Example applications that we don't want to benchmark + * + * Currently we only want to skip the `vercel-commerce` example, and that's simply + * because it requires a shopify specific setup and secrets. + */ + const exampleAppsNotToBenchmark = new Set(["vercel-commerce"]); + + const examplePaths = allExampleNames + .filter((exampleName) => !exampleAppsNotToBenchmark.has(exampleName)) + .map((exampleName) => ({ + name: exampleName, + path: nodePath.resolve(`../examples/${exampleName}`), + })); + + return examplePaths; +} + +/** + * Builds an application using their "build:worker" script + * (an error is thrown if the application doesn't have such a script) + * + * @param dir Path to the application to build + */ +export async function buildApp(dir: string): Promise<void> { + const packageJsonPath = `${dir}/package.json`; + if (!nodeFs.existsSync(packageJsonPath)) { + throw new Error(`Error: package.json for app at "${dir}" not found`); + } + + const packageJsonContent = JSON.parse(await nodeFsPromises.readFile(packageJsonPath, "utf8")); + + const buildScript = "build:worker"; + + if (!packageJsonContent.scripts?.[buildScript]) { + throw new Error(`Error: package.json for app at "${dir}" does not include a "${buildScript}" script`); + } + + const command = `pnpm ${buildScript}`; + + return new Promise((resolve, reject) => { + nodeChildProcess.exec(command, { cwd: dir }, (error) => { + if (error) { + return reject(error); + } + return resolve(); + }); + }); +} + +/** + * Deploys a built application using wrangler + * + * @param dir Path to the application to build + * @returns the url of the deployed application + */ +export async function deployBuiltApp(dir: string): Promise<string> { + return new Promise<string>((resolve, reject) => { + nodeChildProcess.exec("pnpm exec wrangler deploy", { cwd: dir }, (error, stdout) => { + if (error) { + return reject(error); + } + + const deploymentUrl = stdout.match(/\bhttps:\/\/(?:[a-zA-Z0-9.\-])*\.workers\.dev\b/)?.[0]; + + if (!deploymentUrl) { + return reject(new Error(`Could not obtain a deployment url for app at "${dir}"`)); + } + + return resolve(deploymentUrl); + }); + }); +} + +/** + * Makes sure that everything is set up so that wrangler can actually deploy the applications. + * This means that: + * - the user has logged in + * - if they have more than one account they have set a CLOUDFLARE_ACCOUNT_ID env variable + */ +async function ensureWranglerSetup(): Promise<void> { + return new Promise((resolve, reject) => { + nodeChildProcess.exec("pnpm dlx wrangler whoami", (error, stdout) => { + if (error) { + return reject(error); + } + + if (stdout.includes("You are not authenticated")) { + reject(new Error("Please log in using wrangler by running `pnpm dlx wrangler login`")); + } + + if (!(process.env as Record<string, unknown>)["CLOUDFLARE_ACCOUNT_ID"]) { + reject( + new Error( + "Please set the CLOUDFLARE_ACCOUNT_ID environment variable to the id of the account you want to use to deploy the applications" + ) + ); + } + + return resolve(); + }); + }); +} diff --git a/.conflict-base-0/benchmarking/src/index.ts b/.conflict-base-0/benchmarking/src/index.ts new file mode 100644 index 00000000..ea308d73 --- /dev/null +++ b/.conflict-base-0/benchmarking/src/index.ts @@ -0,0 +1,42 @@ +import nodeTimesPromises from "node:timers/promises"; +import * as cloudflare from "./cloudflare"; +import { benchmarkApplicationResponseTime, BenchmarkingResults, saveResultsToDisk } from "./benchmarking"; +import { parallelRunWithSpinner } from "./utils"; + +const appPathsToBenchmark = await cloudflare.collectAppPathsToBenchmark(); + +const benchmarkingResults: BenchmarkingResults = await parallelRunWithSpinner( + "Benchmarking Apps", + appPathsToBenchmark.map(({ name, path }, i) => async () => { + await nodeTimesPromises.setTimeout(i * 1_000); + const fetchBenchmark = await benchmarkApplicationResponseTime({ + build: async () => cloudflare.buildApp(path), + deploy: async () => cloudflare.deployBuiltApp(path), + fetch, + }); + + return { + name, + path, + fetchBenchmark, + }; + }) +); + +console.log(); + +const outputFile = await saveResultsToDisk(benchmarkingResults); + +console.log(`The benchmarking results have been written in ${outputFile}`); + +console.log("\n\nSummary: "); +const summary = benchmarkingResults.map(({ name, fetchBenchmark }) => ({ + name, + "average fetch duration (ms)": Math.round(fetchBenchmark.averageMs), + "90th percentile (ms)": Math.round(fetchBenchmark.p90Ms), +})); +console.table(summary); + +console.log(); + +process.exit(0); diff --git a/.conflict-base-0/benchmarking/src/utils.ts b/.conflict-base-0/benchmarking/src/utils.ts new file mode 100644 index 00000000..a45919b6 --- /dev/null +++ b/.conflict-base-0/benchmarking/src/utils.ts @@ -0,0 +1,61 @@ +import ora from "ora"; + +/** + * Runs a list of operations in parallel while presenting a loading spinner with some text + * + * @param spinnerText The text to add to the spinner + * @param operations The operations to run + * @returns The operations results + */ +export async function parallelRunWithSpinner<T>( + spinnerText: string, + operations: (() => Promise<T>)[] +): Promise<T[]> { + const spinner = ora({ + discardStdin: false, + hideCursor: false, + }).start(); + + let doneCount = 0; + + const updateSpinnerText = () => { + doneCount++; + spinner.text = `${spinnerText} (${doneCount}/${operations.length})`; + }; + + updateSpinnerText(); + + const results = await Promise.all( + operations.map(async (operation) => { + const result = await operation(); + updateSpinnerText(); + return result; + }) + ); + + spinner.stop(); + + return results; +} + +/** + * Gets a specific percentile for a given set of numbers + * + * @param data the data which percentile value needs to be computed + * @param percentile the requested percentile (a number between 0 and 100) + * @returns the computed percentile + */ +export function getPercentile(data: number[], percentile: number): number { + if (Number.isNaN(percentile) || percentile < 0 || percentile > 100) { + throw new Error(`A percentile needs to be between 0 and 100, found: ${percentile}`); + } + + data = data.sort((a, b) => a - b); + + const rank = (percentile / 100) * (data.length - 1); + + const rankInt = Math.floor(rank); + const rankFract = rank - rankInt; + + return Math.round(data[rankInt]! + rankFract * (data[rankInt + 1]! - data[rankInt]!)); +} diff --git a/.conflict-base-0/benchmarking/tsconfig.json b/.conflict-base-0/benchmarking/tsconfig.json new file mode 100644 index 00000000..32ed97b7 --- /dev/null +++ b/.conflict-base-0/benchmarking/tsconfig.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@tsconfig/strictest/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "lib": ["ESNext"], + "types": ["node"], + "moduleResolution": "Bundler", + "forceConsistentCasingInFileNames": true, + "noImplicitReturns": false, + "exactOptionalPropertyTypes": false + }, + "include": ["./src/**/*.ts"] +} diff --git a/.conflict-base-0/examples/bugs/gh-119/.eslintrc.json b/.conflict-base-0/examples/bugs/gh-119/.eslintrc.json new file mode 100644 index 00000000..a885bd83 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/.conflict-base-0/examples/bugs/gh-119/.gitignore b/.conflict-base-0/examples/bugs/gh-119/.gitignore new file mode 100644 index 00000000..69566c5f --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/.gitignore @@ -0,0 +1,47 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ + diff --git a/.conflict-base-0/examples/bugs/gh-119/README.md b/.conflict-base-0/examples/bugs/gh-119/README.md new file mode 100644 index 00000000..e215bc4c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/.conflict-base-0/examples/bugs/gh-119/app/favicon.ico b/.conflict-base-0/examples/bugs/gh-119/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff b/.conflict-base-0/examples/bugs/gh-119/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 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ϣ%UY8`RWp~V-U_7 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 CLkb=M literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/bugs/gh-119/app/fonts/GeistVF.woff b/.conflict-base-0/examples/bugs/gh-119/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/bugs/gh-119/app/globals.css b/.conflict-base-0/examples/bugs/gh-119/app/globals.css new file mode 100644 index 00000000..f101930c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/app/globals.css @@ -0,0 +1,21 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; +} diff --git a/.conflict-base-0/examples/bugs/gh-119/app/layout.tsx b/.conflict-base-0/examples/bugs/gh-119/app/layout.tsx new file mode 100644 index 00000000..10da40f3 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/app/layout.tsx @@ -0,0 +1,31 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import "./globals.css"; + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en"> + <body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-119/app/page.tsx b/.conflict-base-0/examples/bugs/gh-119/app/page.tsx new file mode 100644 index 00000000..fbad9f8f --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/app/page.tsx @@ -0,0 +1,70 @@ +import Image from "next/image"; + +export default function Home() { + return ( + <div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]"> + <main className="flex flex-col gap-8 row-start-2 items-center sm:items-start"> + <Image className="dark:invert" src="/next.svg" alt="Next.js logo" width={180} height={38} priority /> + <ol className="list-inside list-decimal text-sm text-center sm:text-left font-[family-name:var(--font-geist-mono)]"> + <li className="mb-2"> + Get started by editing{" "} + <code className="bg-black/[.05] dark:bg-white/[.06] px-1 py-0.5 rounded font-semibold"> + app/page.tsx + </code> + . + </li> + <li>Save and see your changes instantly.</li> + </ol> + + <div className="flex gap-4 items-center flex-col sm:flex-row"> + <a + className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5" + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image className="dark:invert" src="/vercel.svg" alt="Vercel logomark" width={20} height={20} /> + Deploy now + </a> + <a + className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:min-w-44" + href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + Read our docs + </a> + </div> + </main> + <footer className="row-start-3 flex gap-6 flex-wrap items-center justify-center"> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/file.svg" alt="File icon" width={16} height={16} /> + Learn + </a> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/window.svg" alt="Window icon" width={16} height={16} /> + Examples + </a> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/globe.svg" alt="Globe icon" width={16} height={16} /> + Go to nextjs.org → + </a> + </footer> + </div> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-119/e2e/base.spec.ts b/.conflict-base-0/examples/bugs/gh-119/e2e/base.spec.ts new file mode 100644 index 00000000..9fe2a947 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/e2e/base.spec.ts @@ -0,0 +1,8 @@ +import { test, expect } from "@playwright/test"; + +test.describe("bugs/gh-119", () => { + test("the index page of the application shows the Next.js logo", async ({ page }) => { + await page.goto("/"); + await expect(page.getByAltText("Next.js logo")).toBeVisible(); + }); +}); diff --git a/.conflict-base-0/examples/bugs/gh-119/e2e/playwright.config.ts b/.conflict-base-0/examples/bugs/gh-119/e2e/playwright.config.ts new file mode 100644 index 00000000..8677f9be --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("gh-119"); diff --git a/.conflict-base-0/examples/bugs/gh-119/next.config.ts b/.conflict-base-0/examples/bugs/gh-119/next.config.ts new file mode 100644 index 00000000..d0793cd5 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/next.config.ts @@ -0,0 +1,8 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + typescript: { ignoreBuildErrors: true }, + eslint: { ignoreDuringBuilds: true }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/bugs/gh-119/open-next.config.ts b/.conflict-base-0/examples/bugs/gh-119/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/.conflict-base-0/examples/bugs/gh-119/package.json b/.conflict-base-0/examples/bugs/gh-119/package.json new file mode 100644 index 00000000..0c6e2a69 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/package.json @@ -0,0 +1,34 @@ +{ + "name": "gh-119", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts", + "cf-typegen": "wrangler types --env-interface CloudflareEnv" + }, + "dependencies": { + "next": "15.0.4", + "react-dom": "^18.3.1", + "react": "^18.3.1" + }, + "devDependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@playwright/test": "catalog:", + "@types/node": "^20", + "@types/react-dom": "^18", + "@types/react": "^18", + "eslint-config-next": "15.0.4", + "eslint": "^8", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/bugs/gh-119/postcss.config.mjs b/.conflict-base-0/examples/bugs/gh-119/postcss.config.mjs new file mode 100644 index 00000000..f6c3605a --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/.conflict-base-0/examples/bugs/gh-119/public/file.svg b/.conflict-base-0/examples/bugs/gh-119/public/file.svg new file mode 100644 index 00000000..004145cd --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/public/file.svg @@ -0,0 +1 @@ +<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-119/public/globe.svg b/.conflict-base-0/examples/bugs/gh-119/public/globe.svg new file mode 100644 index 00000000..567f17b0 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/public/globe.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-119/public/next.svg b/.conflict-base-0/examples/bugs/gh-119/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/public/next.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-119/public/vercel.svg b/.conflict-base-0/examples/bugs/gh-119/public/vercel.svg new file mode 100644 index 00000000..77053960 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/public/vercel.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-119/public/window.svg b/.conflict-base-0/examples/bugs/gh-119/public/window.svg new file mode 100644 index 00000000..b2b2a44f --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/public/window.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-119/tailwind.config.ts b/.conflict-base-0/examples/bugs/gh-119/tailwind.config.ts new file mode 100644 index 00000000..c93eb9ca --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/tailwind.config.ts @@ -0,0 +1,18 @@ +import type { Config } from "tailwindcss"; + +export default { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "var(--background)", + foreground: "var(--foreground)", + }, + }, + }, + plugins: [], +} satisfies Config; diff --git a/.conflict-base-0/examples/bugs/gh-119/tsconfig.json b/.conflict-base-0/examples/bugs/gh-119/tsconfig.json new file mode 100644 index 00000000..53b6ed51 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/bugs/gh-119/wrangler.jsonc b/.conflict-base-0/examples/bugs/gh-119/wrangler.jsonc new file mode 100644 index 00000000..c8ecfcee --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-119/wrangler.jsonc @@ -0,0 +1,11 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "gh-119", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + } +} diff --git a/.conflict-base-0/examples/bugs/gh-219/.dev.vars b/.conflict-base-0/examples/bugs/gh-219/.dev.vars new file mode 100644 index 00000000..17f2dcc2 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/.dev.vars @@ -0,0 +1 @@ +NEXTJS_ENV=development \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/.gitignore b/.conflict-base-0/examples/bugs/gh-219/.gitignore new file mode 100644 index 00000000..4212e83f --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/.gitignore @@ -0,0 +1,56 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# Firebase +.firebase/ +firebase-debug.log +.env +.env.local +.env.development +.env.test +.env.production + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/.conflict-base-0/examples/bugs/gh-219/README.md b/.conflict-base-0/examples/bugs/gh-219/README.md new file mode 100644 index 00000000..acfd4ae9 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/README.md @@ -0,0 +1,38 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. + +# opentelemetry-issue diff --git a/.conflict-base-0/examples/bugs/gh-219/e2e/base.spec.ts b/.conflict-base-0/examples/bugs/gh-219/e2e/base.spec.ts new file mode 100644 index 00000000..45ab6fa9 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/e2e/base.spec.ts @@ -0,0 +1,8 @@ +import { test, expect } from "@playwright/test"; + +test.describe("bugs/gh-219", () => { + test("the index page of the application shows the Next.js logo", async ({ page }) => { + await page.goto("/"); + await expect(page.getByAltText("Next.js logo")).toBeVisible(); + }); +}); diff --git a/.conflict-base-0/examples/bugs/gh-219/e2e/playwright.config.ts b/.conflict-base-0/examples/bugs/gh-219/e2e/playwright.config.ts new file mode 100644 index 00000000..d42e84f4 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("gh-219"); diff --git a/.conflict-base-0/examples/bugs/gh-219/eslint.config.mjs b/.conflict-base-0/examples/bugs/gh-219/eslint.config.mjs new file mode 100644 index 00000000..a9952029 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/eslint.config.mjs @@ -0,0 +1,14 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [...compat.extends("next/core-web-vitals", "next/typescript")]; + +export default eslintConfig; diff --git a/.conflict-base-0/examples/bugs/gh-219/next.config.ts b/.conflict-base-0/examples/bugs/gh-219/next.config.ts new file mode 100644 index 00000000..d0793cd5 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/next.config.ts @@ -0,0 +1,8 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + typescript: { ignoreBuildErrors: true }, + eslint: { ignoreDuringBuilds: true }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/bugs/gh-219/open-next.config.ts b/.conflict-base-0/examples/bugs/gh-219/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/.conflict-base-0/examples/bugs/gh-219/package.json b/.conflict-base-0/examples/bugs/gh-219/package.json new file mode 100644 index 00000000..7490024b --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/package.json @@ -0,0 +1,61 @@ +{ + "name": "gh-219", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts", + "deploy:worker": "pnpm run build:worker && pnpm wrangler deploy" + }, + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "@libsql/client": "^0.14.0", + "@t3-oss/env-nextjs": "^0.11.1", + "@tanstack/react-table": "^8.20.6", + "better-sqlite3": "^11.7.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "drizzle-orm": "^0.38.3", + "firebase-admin": "^13.0.2", + "firebase": "^11.1.0", + "lucide-react": "^0.469.0", + "nanoid": "^5.0.9", + "next-auth": "^4.24.11", + "next-themes": "^0.4.4", + "next": "15.1.0", + "qrcode.react": "^4.2.0", + "react-dom": "^19.0.0", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react": "^19.0.0", + "sonner": "^1.7.1", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "zod": "^3.24.1" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20241224.0", + "@eslint/eslintrc": "^3", + "@opennextjs/cloudflare": "workspace:*", + "@playwright/test": "catalog:", + "@types/better-sqlite3": "^7.6.12", + "@types/node": "^20", + "@types/react-dom": "^19", + "@types/react": "^19", + "cross-env": "^7.0.3", + "drizzle-kit": "^0.30.1", + "eslint-config-next": "15.1.0", + "eslint": "^9", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5", + "vercel": "^39.2.2", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/bugs/gh-219/postcss.config.mjs b/.conflict-base-0/examples/bugs/gh-219/postcss.config.mjs new file mode 100644 index 00000000..f6c3605a --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/.conflict-base-0/examples/bugs/gh-219/public/file.svg b/.conflict-base-0/examples/bugs/gh-219/public/file.svg new file mode 100644 index 00000000..004145cd --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/public/file.svg @@ -0,0 +1 @@ +<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/public/globe.svg b/.conflict-base-0/examples/bugs/gh-219/public/globe.svg new file mode 100644 index 00000000..567f17b0 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/public/globe.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/public/next.svg b/.conflict-base-0/examples/bugs/gh-219/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/public/next.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/public/vercel.svg b/.conflict-base-0/examples/bugs/gh-219/public/vercel.svg new file mode 100644 index 00000000..77053960 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/public/vercel.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/public/window.svg b/.conflict-base-0/examples/bugs/gh-219/public/window.svg new file mode 100644 index 00000000..b2b2a44f --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/public/window.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-219/src/app/favicon.ico b/.conflict-base-0/examples/bugs/gh-219/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/bugs/gh-219/src/app/globals.css b/.conflict-base-0/examples/bugs/gh-219/src/app/globals.css new file mode 100644 index 00000000..f101930c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/src/app/globals.css @@ -0,0 +1,21 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; +} diff --git a/.conflict-base-0/examples/bugs/gh-219/src/app/layout.tsx b/.conflict-base-0/examples/bugs/gh-219/src/app/layout.tsx new file mode 100644 index 00000000..92900db0 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/src/app/layout.tsx @@ -0,0 +1,30 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en"> + <body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-219/src/app/page.tsx b/.conflict-base-0/examples/bugs/gh-219/src/app/page.tsx new file mode 100644 index 00000000..42598ee0 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/src/app/page.tsx @@ -0,0 +1,70 @@ +import Image from "next/image"; + +export default function Home() { + return ( + <div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]"> + <main className="flex flex-col gap-8 row-start-2 items-center sm:items-start"> + <Image className="dark:invert" src="/next.svg" alt="Next.js logo" width={180} height={38} priority /> + <ol className="list-inside list-decimal text-sm text-center sm:text-left font-[family-name:var(--font-geist-mono)]"> + <li className="mb-2"> + Get started by editing{" "} + <code className="bg-black/[.05] dark:bg-white/[.06] px-1 py-0.5 rounded font-semibold"> + src/app/page.tsx + </code> + . + </li> + <li>Save and see your changes instantly.</li> + </ol> + + <div className="flex gap-4 items-center flex-col sm:flex-row"> + <a + className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5" + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image className="dark:invert" src="/vercel.svg" alt="Vercel logomark" width={20} height={20} /> + Deploy now + </a> + <a + className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:min-w-44" + href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + Read our docs + </a> + </div> + </main> + <footer className="row-start-3 flex gap-6 flex-wrap items-center justify-center"> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/file.svg" alt="File icon" width={16} height={16} /> + Learn + </a> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/window.svg" alt="Window icon" width={16} height={16} /> + Examples + </a> + <a + className="flex items-center gap-2 hover:underline hover:underline-offset-4" + href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + <Image aria-hidden src="/globe.svg" alt="Globe icon" width={16} height={16} /> + Go to nextjs.org → + </a> + </footer> + </div> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-219/src/firebase/config.js b/.conflict-base-0/examples/bugs/gh-219/src/firebase/config.js new file mode 100644 index 00000000..2e8d38ed --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/src/firebase/config.js @@ -0,0 +1,23 @@ +import { initializeApp } from "firebase/app"; +import { getAuth } from "firebase/auth"; +import { getFirestore } from "firebase/firestore"; +import { getStorage } from "firebase/storage"; + +const firebaseConfig = { + apiKey: process.env.REACT_APP_FIREBASE_API_KEY, + authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN, + projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID, + storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET, + messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID, + appId: process.env.REACT_APP_FIREBASE_APP_ID, +}; + +// Initialize Firebase +const app = initializeApp(firebaseConfig); + +// Initialize Firebase services +export const auth = getAuth(app); +export const db = getFirestore(app); +export const storage = getStorage(app); + +export default app; diff --git a/.conflict-base-0/examples/bugs/gh-219/tailwind.config.ts b/.conflict-base-0/examples/bugs/gh-219/tailwind.config.ts new file mode 100644 index 00000000..5d3c1bd2 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/tailwind.config.ts @@ -0,0 +1,18 @@ +import type { Config } from "tailwindcss"; + +export default { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "var(--background)", + foreground: "var(--foreground)", + }, + }, + }, + plugins: [], +} satisfies Config; diff --git a/.conflict-base-0/examples/bugs/gh-219/tsconfig.json b/.conflict-base-0/examples/bugs/gh-219/tsconfig.json new file mode 100644 index 00000000..d55979b5 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/bugs/gh-219/wrangler.jsonc b/.conflict-base-0/examples/bugs/gh-219/wrangler.jsonc new file mode 100644 index 00000000..87558ac3 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-219/wrangler.jsonc @@ -0,0 +1,11 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "gh-219", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + } +} diff --git a/.conflict-base-0/examples/bugs/gh-223/.eslintrc.json b/.conflict-base-0/examples/bugs/gh-223/.eslintrc.json new file mode 100644 index 00000000..72cc705c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.conflict-base-0/examples/bugs/gh-223/.gitignore b/.conflict-base-0/examples/bugs/gh-223/.gitignore new file mode 100644 index 00000000..b5348851 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/.gitignore @@ -0,0 +1,53 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + + +# Cloudflare related +/.open-next +/.wrangler + +# wrangler files +.wrangler +.dev.vars + +/.vscode + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-223/README.md b/.conflict-base-0/examples/bugs/gh-223/README.md new file mode 100644 index 00000000..c4033664 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/.conflict-base-0/examples/bugs/gh-223/app/api/image/route.ts b/.conflict-base-0/examples/bugs/gh-223/app/api/image/route.ts new file mode 100644 index 00000000..d8552fd4 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/app/api/image/route.ts @@ -0,0 +1,16 @@ +import { NextRequest, NextResponse } from "next/server"; + +import { getImageUrl } from "../../../src/utils/s3Bucket"; + +export async function GET(request: NextRequest) { + const searchParams = request.nextUrl.searchParams; + const fileName = searchParams.get("fileName"); + return NextResponse.json( + { + image: fileName ? await getImageUrl(fileName) : "", + }, + { + status: 200, + } + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-223/app/favicon.ico b/.conflict-base-0/examples/bugs/gh-223/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/bugs/gh-223/app/globals.css b/.conflict-base-0/examples/bugs/gh-223/app/globals.css new file mode 100644 index 00000000..3422b7e6 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/app/globals.css @@ -0,0 +1,29 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) + rgb(var(--background-start-rgb)); +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/.conflict-base-0/examples/bugs/gh-223/app/layout.tsx b/.conflict-base-0/examples/bugs/gh-223/app/layout.tsx new file mode 100644 index 00000000..270a5669 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/app/layout.tsx @@ -0,0 +1,22 @@ +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import "./globals.css"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en"> + <body className={inter.className}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-223/app/page.tsx b/.conflict-base-0/examples/bugs/gh-223/app/page.tsx new file mode 100644 index 00000000..cadc560e --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/app/page.tsx @@ -0,0 +1,113 @@ +"use client"; + +import Image from "next/image"; + +export default function Home() { + return ( + <main className="flex min-h-screen flex-col items-center justify-between p-24"> + <div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex"> + <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30"> + Get started by editing  + <code className="font-mono font-bold">src/app/page.tsx</code> + </p> + <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:size-auto lg:bg-none"> + <a + className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0" + href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + By{" "} + <Image + src="/vercel.svg" + alt="Vercel Logo" + className="dark:invert" + width={100} + height={24} + priority + /> + </a> + </div> + </div> + + <div className="relative z-[-1] flex place-items-center before:absolute before:h-[300px] before:w-full before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 sm:before:w-[480px] sm:after:w-[240px] before:lg:h-[360px]"> + <Image + className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert" + src="/next.svg" + alt="Next.js Logo" + width={180} + height={37} + priority + /> + </div> + + <div className="mb-32 grid text-center lg:mb-0 lg:w-full lg:max-w-5xl lg:grid-cols-4 lg:text-left"> + <a + href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Docs{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50"> + Find in-depth information about Next.js features and API. + </p> + </a> + + <a + href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Learn{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50"> + Learn about Next.js in an interactive course with quizzes! + </p> + </a> + + <a + href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Templates{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50">Explore starter templates for Next.js.</p> + </a> + + <a + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Deploy{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-balance text-sm opacity-50"> + Instantly deploy your Next.js site to a shareable URL with Vercel. + </p> + </a> + </div> + </main> + ); +} diff --git a/.conflict-base-0/examples/bugs/gh-223/e2e/base.spec.ts b/.conflict-base-0/examples/bugs/gh-223/e2e/base.spec.ts new file mode 100644 index 00000000..f79ad9ac --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/e2e/base.spec.ts @@ -0,0 +1,9 @@ +import { test, expect } from "@playwright/test"; + +test.describe("bugs/gh-223", () => { + test("api route", async ({ page }) => { + const res = await page.request.get("/api/image"); + expect(res.status()).toEqual(200); + expect((await res.json()).image).toEqual(""); + }); +}); diff --git a/.conflict-base-0/examples/bugs/gh-223/e2e/playwright.config.ts b/.conflict-base-0/examples/bugs/gh-223/e2e/playwright.config.ts new file mode 100644 index 00000000..6cf894bc --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("gh-223"); diff --git a/.conflict-base-0/examples/bugs/gh-223/next.config.mjs b/.conflict-base-0/examples/bugs/gh-223/next.config.mjs new file mode 100644 index 00000000..51c629d2 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/next.config.mjs @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + typescript: { ignoreBuildErrors: true }, + eslint: { ignoreDuringBuilds: true }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/bugs/gh-223/open-next.config.ts b/.conflict-base-0/examples/bugs/gh-223/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/.conflict-base-0/examples/bugs/gh-223/package.json b/.conflict-base-0/examples/bugs/gh-223/package.json new file mode 100644 index 00000000..68ccbf20 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/package.json @@ -0,0 +1,37 @@ +{ + "name": "gh-223", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts", + "deploy:worker": "pnpm run build:worker && pnpm wrangler deploy" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.721.0", + "@aws-sdk/s3-request-presigner": "^3.721.0", + "next": "15.1.3", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20241224.0", + "@opennextjs/cloudflare": "workspace:*", + "@playwright/test": "catalog:", + "@types/node": "^22.10.2", + "@types/react": "^19.0.2", + "@types/react-dom": "^19.0.2", + "eslint": "^9.17.0", + "eslint-config-next": "15.1.3", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "typescript": "^5.7.2", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/bugs/gh-223/postcss.config.mjs b/.conflict-base-0/examples/bugs/gh-223/postcss.config.mjs new file mode 100644 index 00000000..f6c3605a --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/.conflict-base-0/examples/bugs/gh-223/public/next.svg b/.conflict-base-0/examples/bugs/gh-223/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/public/next.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-223/public/vercel.svg b/.conflict-base-0/examples/bugs/gh-223/public/vercel.svg new file mode 100644 index 00000000..d2f84222 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/public/vercel.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/bugs/gh-223/src/utils/common.ts b/.conflict-base-0/examples/bugs/gh-223/src/utils/common.ts new file mode 100644 index 00000000..0e757e29 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/src/utils/common.ts @@ -0,0 +1,29 @@ +// Optional: Check file size (e.g., max 5MB) +export const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB + +export const validateImageFile = (file: File): void => { + const allowedImageTypes = ["image/jpeg", "image/png", "image/gif", "image/jpg"]; + + // Check file type + if (!allowedImageTypes.includes(file.type)) { + throw new Error("Invalid file type. Please upload a valid image file."); + } + + if (file.size > MAX_FILE_SIZE) { + throw new Error("File size exceeds the maximum limit of 5MB."); + } +}; + +export const getImageUrlFromS3 = async (fileName: string) => { + try { + const url = await fetch(`/api/image?fileName=${fileName}`, { + method: "GET", + }); + //@ts-ignore + const { image } = await url.json(); + return image; + } catch (error) { + console.log({ error }); + throw new Error("Failed to get image"); + } +}; diff --git a/.conflict-base-0/examples/bugs/gh-223/src/utils/s3Bucket.ts b/.conflict-base-0/examples/bugs/gh-223/src/utils/s3Bucket.ts new file mode 100644 index 00000000..e16908cd --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/src/utils/s3Bucket.ts @@ -0,0 +1,30 @@ +import { GetObjectCommand, S3Client } from "@aws-sdk/client-s3"; +import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; + +/** + * This function should only be used inside api calls + */ +export const getImageUrl = async (fileName: string) => { + try { + const s3Client = new S3Client({ + region: "REGION", + endpoint: "ENDPOINT", + credentials: { + accessKeyId: "ACCESS_KEY_ID", + secretAccessKey: "SECRET_ACCESS_KEY", + }, + }); + + const command = new GetObjectCommand({ + Key: fileName.trim().toLowerCase().replace(/ /g, "-"), + Bucket: process.env.CLOUDFLARE_R2_BUCKET || "", + ResponseExpires: new Date(Date.now() + 3600), + }); + const presignedUrl = await getSignedUrl(s3Client, command); + + return presignedUrl; + } catch (error) { + console.log({ error }); + throw new Error("Failed to get image"); + } +}; diff --git a/.conflict-base-0/examples/bugs/gh-223/tailwind.config.ts b/.conflict-base-0/examples/bugs/gh-223/tailwind.config.ts new file mode 100644 index 00000000..86fc7b5d --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/.conflict-base-0/examples/bugs/gh-223/tsconfig.json b/.conflict-base-0/examples/bugs/gh-223/tsconfig.json new file mode 100644 index 00000000..ee0c2d8d --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + "types": ["@cloudflare/workers-types/2023-07-01"], + "target": "ES2017" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/bugs/gh-223/wrangler.jsonc b/.conflict-base-0/examples/bugs/gh-223/wrangler.jsonc new file mode 100644 index 00000000..87558ac3 --- /dev/null +++ b/.conflict-base-0/examples/bugs/gh-223/wrangler.jsonc @@ -0,0 +1,11 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "gh-219", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + } +} diff --git a/.conflict-base-0/examples/common/apps.ts b/.conflict-base-0/examples/common/apps.ts new file mode 100644 index 00000000..07fa3c7f --- /dev/null +++ b/.conflict-base-0/examples/common/apps.ts @@ -0,0 +1,53 @@ +// List of all e2e tested apps +const apps = [ + // examples + "create-next-app", + "middleware", + "playground14", + "playground15", + "vercel-blog-starter", + "ssg-app", + "prisma", + "next-partial-prerendering", + // e2e + "app-pages-router", + "app-router", + "pages-router", + "experimental", + // overrides + "d1-tag-next", + "memory-queue", + "r2-incremental-cache", + "static-assets-incremental-cache", + // bugs + "gh-119", + "gh-219", + "gh-223", +] as const; + +export type AppName = (typeof apps)[number]; + +const BASE_WRANGLER_PORT = 8770; +const BASE_NEXT_PORT = 3100; + +/** + * Returns a distinct port for each application so they can run in parallel. + */ +export function getAppPort(app: AppName, { isWorker = true } = {}) { + const index = apps.indexOf(app); + if (index === -1) { + throw new Error(`Unknown app: ${app}`); + } + return isWorker ? BASE_WRANGLER_PORT + index : BASE_NEXT_PORT + index; +} + +/** + * Returns a distinct port for each application so they can run in parallel. + */ +export function getInspectorPort(app: AppName) { + const index = apps.indexOf(app); + if (index === -1) { + throw new Error(`Unknown app: ${app}`); + } + return 9300 + index; +} diff --git a/.conflict-base-0/examples/common/config-e2e.ts b/.conflict-base-0/examples/common/config-e2e.ts new file mode 100644 index 00000000..f53fec7e --- /dev/null +++ b/.conflict-base-0/examples/common/config-e2e.ts @@ -0,0 +1,93 @@ +import { defineConfig, devices } from "@playwright/test"; +import type nodeProcess from "node:process"; +import { getAppPort, getInspectorPort, type AppName } from "./apps"; + +declare const process: typeof nodeProcess; + +export function configurePlaywright( + app: AppName, + { + // Do we run on CI? + isCI = Boolean(process.env.CI), + // Do we run on workers (`wrangler dev`) or on Node (`next dev`) + isWorker = true, + // Tests with multiple browsers + multipleBrowsers = false, + // Whether to run tests in single file in parallel + parallel = true, + } = {} +) { + const port = getAppPort(app, { isWorker }); + const inspectorPort = getInspectorPort(app); + const baseURL = `http://localhost:${port}`; + let command: string; + let timeout: number; + if (isWorker) { + const env = app === "r2-incremental-cache" ? "--env e2e" : ""; + if (isCI) { + // Do not build on CI - there is a preceding build step + command = `pnpm preview:worker ${env} -- --port ${port} --inspector-port ${inspectorPort}`; + timeout = 100_000; + } else { + timeout = 500_000; + command = `pnpm preview ${env} -- --port ${port} --inspector-port ${inspectorPort}`; + } + } else { + timeout = 100_000; + command = `pnpm dev --port ${port}`; + } + + const projects = [ + { + name: "chromium", + use: { ...devices["Desktop Chrome"] }, + }, + { + name: "firefox", + use: { ...devices["Desktop Firefox"] }, + }, + { + name: "webkit", + use: { ...devices["Desktop Safari"] }, + }, + ]; + if (!multipleBrowsers) { + projects.length = 1; + } + + /** + * See https://playwright.dev/docs/test-configuration. + */ + return defineConfig({ + testDir: "./", + /* ignore runtime specific tests */ + testIgnore: isWorker ? "*next.spec.ts" : "*cloudflare.spec.ts", + /* Run tests in files in parallel */ + fullyParallel: parallel, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: isCI, + /* Retry on CI only */ + retries: isCI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: isCI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL, + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + }, + + projects, + + /* Run your local dev server before starting the tests */ + webServer: { + command, + url: baseURL, + reuseExistingServer: !isCI, + timeout, + }, + }); +} diff --git a/.conflict-base-0/examples/common/package.json b/.conflict-base-0/examples/common/package.json new file mode 100644 index 00000000..a145c38e --- /dev/null +++ b/.conflict-base-0/examples/common/package.json @@ -0,0 +1,5 @@ +{ + "name": "common", + "private": true, + "type": "module" +} diff --git a/.conflict-base-0/examples/common/tsconfig.json b/.conflict-base-0/examples/common/tsconfig.json new file mode 100644 index 00000000..f30272bf --- /dev/null +++ b/.conflict-base-0/examples/common/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "lib": ["esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true + } +} diff --git a/.conflict-base-0/examples/create-next-app/.eslintrc.json b/.conflict-base-0/examples/create-next-app/.eslintrc.json new file mode 100644 index 00000000..a885bd83 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/.conflict-base-0/examples/create-next-app/.gitignore b/.conflict-base-0/examples/create-next-app/.gitignore new file mode 100644 index 00000000..3a282111 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/.gitignore @@ -0,0 +1,45 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# wrangler +.wrangler + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/.conflict-base-0/examples/create-next-app/README.md b/.conflict-base-0/examples/create-next-app/README.md new file mode 100644 index 00000000..e215bc4c --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/.conflict-base-0/examples/create-next-app/e2e/base.spec.ts b/.conflict-base-0/examples/create-next-app/e2e/base.spec.ts new file mode 100644 index 00000000..eda4eaef --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/e2e/base.spec.ts @@ -0,0 +1,8 @@ +import { test, expect } from "@playwright/test"; + +test.describe("create-next-app", () => { + test("the index page of the application shows the Next.js logo", async ({ page }) => { + await page.goto("/"); + await expect(page.getByAltText("Next.js logo")).toBeVisible(); + }); +}); diff --git a/.conflict-base-0/examples/create-next-app/e2e/playwright.config.ts b/.conflict-base-0/examples/create-next-app/e2e/playwright.config.ts new file mode 100644 index 00000000..f3cf5fe4 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../common/config-e2e"; + +export default configurePlaywright("create-next-app", { multipleBrowsers: true }); diff --git a/.conflict-base-0/examples/create-next-app/next.config.mjs b/.conflict-base-0/examples/create-next-app/next.config.mjs new file mode 100644 index 00000000..2bd0079f --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/next.config.mjs @@ -0,0 +1,11 @@ +import { initOpenNextCloudflareForDev } from "@opennextjs/cloudflare"; + +initOpenNextCloudflareForDev(); + +/** @type {import('next').NextConfig} */ +const nextConfig = { + typescript: { ignoreBuildErrors: true }, + eslint: { ignoreDuringBuilds: true }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/create-next-app/open-next.config.ts b/.conflict-base-0/examples/create-next-app/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/.conflict-base-0/examples/create-next-app/package.json b/.conflict-base-0/examples/create-next-app/package.json new file mode 100644 index 00000000..1e3bcdfd --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/package.json @@ -0,0 +1,33 @@ +{ + "name": "create-next-app", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts" + }, + "dependencies": { + "react": "catalog:", + "react-dom": "catalog:", + "next": "catalog:" + }, + "devDependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@playwright/test": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "eslint": "^8", + "eslint-config-next": "14.2.14", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "catalog:", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/create-next-app/postcss.config.mjs b/.conflict-base-0/examples/create-next-app/postcss.config.mjs new file mode 100644 index 00000000..f6c3605a --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/.conflict-base-0/examples/create-next-app/public/next.svg b/.conflict-base-0/examples/create-next-app/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/public/next.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/create-next-app/public/vercel.svg b/.conflict-base-0/examples/create-next-app/public/vercel.svg new file mode 100644 index 00000000..d2f84222 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/public/vercel.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg> \ No newline at end of file diff --git a/.conflict-base-0/examples/create-next-app/src/app/favicon.ico b/.conflict-base-0/examples/create-next-app/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/create-next-app/src/app/fonts/GeistMonoVF.woff b/.conflict-base-0/examples/create-next-app/src/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 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ϣ%UY8`RWp~V-U_7 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 CLkb=M literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/create-next-app/src/app/fonts/GeistVF.woff b/.conflict-base-0/examples/create-next-app/src/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/create-next-app/src/app/globals.css b/.conflict-base-0/examples/create-next-app/src/app/globals.css new file mode 100644 index 00000000..1a4fd67a --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/src/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/.conflict-base-0/examples/create-next-app/src/app/layout.tsx b/.conflict-base-0/examples/create-next-app/src/app/layout.tsx new file mode 100644 index 00000000..10da40f3 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/src/app/layout.tsx @@ -0,0 +1,31 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import "./globals.css"; + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en"> + <body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/create-next-app/src/app/page.tsx b/.conflict-base-0/examples/create-next-app/src/app/page.tsx new file mode 100644 index 00000000..f1b83089 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/src/app/page.tsx @@ -0,0 +1,111 @@ +import Image from "next/image"; + +export default function Home() { + return ( + <main className="flex min-h-screen flex-col items-center justify-between p-24"> + <div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex"> + <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30"> + Get started by editing  + <code className="font-mono font-bold">src/app/page.tsx</code> + </p> + <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:size-auto lg:bg-none"> + <a + className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0" + href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + target="_blank" + rel="noopener noreferrer" + > + By{" "} + <Image + src="/vercel.svg" + alt="Vercel Logo" + className="dark:invert" + width={100} + height={24} + priority + /> + </a> + </div> + </div> + + <div className="relative z-[-1] flex place-items-center before:absolute before:h-[300px] before:w-full before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 sm:before:w-[480px] sm:after:w-[240px] before:lg:h-[360px]"> + <Image + className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert" + src="/next.svg" + alt="Next.js Logo" + width={180} + height={37} + priority + /> + </div> + + <div className="mb-32 grid text-center lg:mb-0 lg:w-full lg:max-w-5xl lg:grid-cols-4 lg:text-left"> + <a + href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Docs{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50"> + Find in-depth information about Next.js features and API. + </p> + </a> + + <a + href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Learn{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50"> + Learn about Next.js in an interactive course with quizzes! + </p> + </a> + + <a + href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Templates{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-sm opacity-50">Explore starter templates for Next.js.</p> + </a> + + <a + href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" + className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30" + target="_blank" + rel="noopener noreferrer" + > + <h2 className="mb-3 text-2xl font-semibold"> + Deploy{" "} + <span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none"> + -> + </span> + </h2> + <p className="m-0 max-w-[30ch] text-balance text-sm opacity-50"> + Instantly deploy your Next.js site to a shareable URL with Vercel. + </p> + </a> + </div> + </main> + ); +} diff --git a/.conflict-base-0/examples/create-next-app/tailwind.config.ts b/.conflict-base-0/examples/create-next-app/tailwind.config.ts new file mode 100644 index 00000000..45e6dc97 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "var(--background)", + foreground: "var(--foreground)", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/.conflict-base-0/examples/create-next-app/tsconfig.json b/.conflict-base-0/examples/create-next-app/tsconfig.json new file mode 100644 index 00000000..8b0912a3 --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/create-next-app/wrangler.jsonc b/.conflict-base-0/examples/create-next-app/wrangler.jsonc new file mode 100644 index 00000000..db23504e --- /dev/null +++ b/.conflict-base-0/examples/create-next-app/wrangler.jsonc @@ -0,0 +1,11 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "create-next-app", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + } +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/.env b/.conflict-base-0/examples/e2e/app-pages-router/.env new file mode 100644 index 00000000..5d8e1786 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/.env @@ -0,0 +1 @@ +SOME_ENV_VAR=foo \ No newline at end of file diff --git a/.conflict-base-0/examples/e2e/app-pages-router/.gitignore b/.conflict-base-0/examples/e2e/app-pages-router/.gitignore new file mode 100644 index 00000000..28379183 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-next +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ \ No newline at end of file diff --git a/.conflict-base-0/examples/e2e/app-pages-router/CHANGELOG.md b/.conflict-base-0/examples/e2e/app-pages-router/CHANGELOG.md new file mode 100644 index 00000000..bb60e202 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/CHANGELOG.md @@ -0,0 +1,43 @@ +# app-pages-router + +## 0.1.6 + +### Patch Changes + +- Updated dependencies [[`7eda030388880d8ad25d3f4692e24bac31b7ec4f`](https://github.com/opennextjs/opennextjs-aws/commit/7eda030388880d8ad25d3f4692e24bac31b7ec4f), [`e5678b39e0f3c21d3e30d08a89f5cb0acdd3d050`](https://github.com/opennextjs/opennextjs-aws/commit/e5678b39e0f3c21d3e30d08a89f5cb0acdd3d050), [`1981a47dd3dbc77066d2bf5cad5d5d406fecb010`](https://github.com/opennextjs/opennextjs-aws/commit/1981a47dd3dbc77066d2bf5cad5d5d406fecb010), [`b4ad0f0e0f6069ca87f3b72c23d655cedebc86e5`](https://github.com/opennextjs/opennextjs-aws/commit/b4ad0f0e0f6069ca87f3b72c23d655cedebc86e5)]: + - @opennextjs/aws@3.4.1 + +## 0.1.5 + +### Patch Changes + +- Updated dependencies [[`e8f6dc8c7a421e316f5fbed03dcb82bb860c5249`](https://github.com/opennextjs/opennextjs-aws/commit/e8f6dc8c7a421e316f5fbed03dcb82bb860c5249), [`00ce837cb98e5902316f26163c9fb927058f956c`](https://github.com/opennextjs/opennextjs-aws/commit/00ce837cb98e5902316f26163c9fb927058f956c), [`d1cea5601943afaa197d56f931593234f351c441`](https://github.com/opennextjs/opennextjs-aws/commit/d1cea5601943afaa197d56f931593234f351c441), [`6884444cb929ab60c074c918954d24100f4e9668`](https://github.com/opennextjs/opennextjs-aws/commit/6884444cb929ab60c074c918954d24100f4e9668), [`86916bfd9246a63f321352bb11346eeb0ca3f6da`](https://github.com/opennextjs/opennextjs-aws/commit/86916bfd9246a63f321352bb11346eeb0ca3f6da), [`eaa9ef8daf2fc454139c77ce0e100cb48da15561`](https://github.com/opennextjs/opennextjs-aws/commit/eaa9ef8daf2fc454139c77ce0e100cb48da15561), [`ae7fb9c5d24ecf3eeb99682aa34bcbe0adb45675`](https://github.com/opennextjs/opennextjs-aws/commit/ae7fb9c5d24ecf3eeb99682aa34bcbe0adb45675), [`e708ec4d9f4c87d3249a01382482347d295ed28a`](https://github.com/opennextjs/opennextjs-aws/commit/e708ec4d9f4c87d3249a01382482347d295ed28a)]: + - @opennextjs/aws@3.4.0 + +## 0.1.4 + +### Patch Changes + +- Updated dependencies [[`9595714ac23e5f131b879d04d5cfb2a5d11bdbdd`](https://github.com/opennextjs/opennextjs-aws/commit/9595714ac23e5f131b879d04d5cfb2a5d11bdbdd), [`4e88b47935523de1d15da067b56105bd6be91e47`](https://github.com/opennextjs/opennextjs-aws/commit/4e88b47935523de1d15da067b56105bd6be91e47), [`7140ca56e1e88d7a7cae327eceb3ef8c2fde2a1e`](https://github.com/opennextjs/opennextjs-aws/commit/7140ca56e1e88d7a7cae327eceb3ef8c2fde2a1e)]: + - @opennextjs/aws@3.3.1 + +## 0.1.3 + +### Patch Changes + +- Updated dependencies [[`4d328e3fc306b878e9497986baa65bfd1d4de66a`](https://github.com/opennextjs/opennextjs-aws/commit/4d328e3fc306b878e9497986baa65bfd1d4de66a), [`2b2a48b70ae95b5e600ac2e4b7f2df8702c5c26e`](https://github.com/opennextjs/opennextjs-aws/commit/2b2a48b70ae95b5e600ac2e4b7f2df8702c5c26e), [`f685ddea8f8a5c82591dc02713aff7138f2d9896`](https://github.com/opennextjs/opennextjs-aws/commit/f685ddea8f8a5c82591dc02713aff7138f2d9896), [`ef1fe48d570863266c271e5dedaf02b943849ded`](https://github.com/opennextjs/opennextjs-aws/commit/ef1fe48d570863266c271e5dedaf02b943849ded), [`8ab921f8b5bd40c7ba109ccef3e59a6c24283fb2`](https://github.com/opennextjs/opennextjs-aws/commit/8ab921f8b5bd40c7ba109ccef3e59a6c24283fb2), [`2202f36ce0f87357b249bd127cdd5e84d6deffd3`](https://github.com/opennextjs/opennextjs-aws/commit/2202f36ce0f87357b249bd127cdd5e84d6deffd3), [`44392ba82990d43e16a614113d9e7d8e257e5bdd`](https://github.com/opennextjs/opennextjs-aws/commit/44392ba82990d43e16a614113d9e7d8e257e5bdd), [`4dea7ea2f5ffd1848e51502c88d2efcc1896bb8c`](https://github.com/opennextjs/opennextjs-aws/commit/4dea7ea2f5ffd1848e51502c88d2efcc1896bb8c), [`0ac604e5867497cc93fb677b5ebc28ef87e057f8`](https://github.com/opennextjs/opennextjs-aws/commit/0ac604e5867497cc93fb677b5ebc28ef87e057f8), [`1ece6b479bb4e0309892ffbd1200870821a410c4`](https://github.com/opennextjs/opennextjs-aws/commit/1ece6b479bb4e0309892ffbd1200870821a410c4), [`697681bf9ce25212ce4e2e94d886ca425428280d`](https://github.com/opennextjs/opennextjs-aws/commit/697681bf9ce25212ce4e2e94d886ca425428280d)]: + - @opennextjs/aws@3.3.0 + +## 0.1.2 + +### Patch Changes + +- Updated dependencies [[`6f798debb575b157acb2f5068658f95ace0fae50`](https://github.com/opennextjs/opennextjs-aws/commit/6f798debb575b157acb2f5068658f95ace0fae50), [`fe600ac6f5e513376cf233a5d2ce68affaa3aa5a`](https://github.com/opennextjs/opennextjs-aws/commit/fe600ac6f5e513376cf233a5d2ce68affaa3aa5a), [`5f0cbc8feac9eec728c27bb3b7ff5c3f3bc26716`](https://github.com/opennextjs/opennextjs-aws/commit/5f0cbc8feac9eec728c27bb3b7ff5c3f3bc26716), [`8b51108d9aee7e5ed3027c1ceda99091b579951d`](https://github.com/opennextjs/opennextjs-aws/commit/8b51108d9aee7e5ed3027c1ceda99091b579951d), [`b999c4e9a38499680bed77ddeb94b62a3301c0fa`](https://github.com/opennextjs/opennextjs-aws/commit/b999c4e9a38499680bed77ddeb94b62a3301c0fa), [`ba84259d2e35e79a562a7e3f055e350a03c9d651`](https://github.com/opennextjs/opennextjs-aws/commit/ba84259d2e35e79a562a7e3f055e350a03c9d651)]: + - @opennextjs/aws@3.2.2 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies [[`cf33973f3fbab73e77898fdd072a00a1f037257a`](https://github.com/opennextjs/opennextjs-aws/commit/cf33973f3fbab73e77898fdd072a00a1f037257a), [`77d87e7a870fad6afad022bf75aca18c8656c268`](https://github.com/opennextjs/opennextjs-aws/commit/77d87e7a870fad6afad022bf75aca18c8656c268), [`a43b82b4cb68889371ac8260aefef9e04eefb037`](https://github.com/opennextjs/opennextjs-aws/commit/a43b82b4cb68889371ac8260aefef9e04eefb037), [`bfa1a8c4056bd691fb57617dd6287693e51071b4`](https://github.com/opennextjs/opennextjs-aws/commit/bfa1a8c4056bd691fb57617dd6287693e51071b4), [`5839217411012d1df2874d299daa977ba3701c2c`](https://github.com/opennextjs/opennextjs-aws/commit/5839217411012d1df2874d299daa977ba3701c2c), [`dfc174d88b7bcc54eede09c98d9443dd84b93fd8`](https://github.com/opennextjs/opennextjs-aws/commit/dfc174d88b7bcc54eede09c98d9443dd84b93fd8)]: + - @opennextjs/aws@3.2.1 diff --git a/.conflict-base-0/examples/e2e/app-pages-router/README.md b/.conflict-base-0/examples/e2e/app-pages-router/README.md new file mode 100644 index 00000000..dd87bc02 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/README.md @@ -0,0 +1,3 @@ +# App Pages Router + +This project uses both the App and Pages router. diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx new file mode 100644 index 00000000..cc52507e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -0,0 +1,29 @@ +import { getSong } from "@example/shared/api"; +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: Promise<{ + album: string; + song: string; + }>; +}; +export default async function SongPage(props: Props) { + const params = await props.params; + const song = await getSong(params.album, params.song); + return ( + <Modal> + <h1>Modal</h1> + Album: {decodeURIComponent(params.album)} + <div className="absolute top-1/2 mt-10"> + {/* <video width={1000} height={1000} autoPlay src={`https://youtube.com/watch?v=${params.song}`} /> */} + <iframe + width="560" + height="315" + title={params.song} + allowFullScreen + src={`https://youtube.com/embed/${song?.videoId}?autoplay=1`} + ></iframe> + </div> + </Modal> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx new file mode 100644 index 00000000..0e43eb56 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/(.)[album]/page.tsx @@ -0,0 +1,11 @@ +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: Promise<{ + artist: string; + }>; +}; +export default async function ArtistPage(props: Props) { + const params = await props.params; + return <Modal>Artists {params.artist}</Modal>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/default.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/default.tsx new file mode 100644 index 00000000..3e4bcd38 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx new file mode 100644 index 00000000..39970e4c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/[song]/page.tsx @@ -0,0 +1,25 @@ +import { getSong } from "@example/shared/api"; + +type Props = { + params: Promise<{ + album: string; + song: string; + }>; +}; +export default async function Song(props: Props) { + const params = await props.params; + const song = await getSong(params.album, params.song); + + return ( + <div> + <h1>Not Modal</h1> + {decodeURIComponent(params.album)} + <iframe + width="560" + height="315" + allowFullScreen + src={`https://youtube.com/embed/${song?.videoId}?autoplay=1`} + ></iframe> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/page.tsx new file mode 100644 index 00000000..ca3a6034 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/[album]/page.tsx @@ -0,0 +1,3 @@ +export default function ArtistPage() { + return <div>Artist</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/layout.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/layout.tsx new file mode 100644 index 00000000..137ea157 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/layout.tsx @@ -0,0 +1,10 @@ +import type { ReactNode } from "react"; + +export default function Layout({ children, modal }: { children: ReactNode; modal: ReactNode }) { + return ( + <div> + {children} + {modal} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/albums/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/page.tsx new file mode 100644 index 00000000..c1dc4dc4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/albums/page.tsx @@ -0,0 +1,13 @@ +import { getAlbums } from "@example/shared/api"; +import Album from "@example/shared/components/Album"; + +export default async function AlbumPage() { + const albums = await getAlbums(); + return ( + <div> + {albums.map((album) => ( + <Album album={album} /> + ))} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/api/client/route.ts b/.conflict-base-0/examples/e2e/app-pages-router/app/api/client/route.ts new file mode 100644 index 00000000..15b4f42e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/api/client/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + hello: "client", + }); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/api/host/route.ts b/.conflict-base-0/examples/e2e/app-pages-router/app/api/host/route.ts new file mode 100644 index 00000000..6501a231 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/api/host/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + url: request.url, + }); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/api/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/api/page.tsx new file mode 100644 index 00000000..b7f7bfb1 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/api/page.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useCallback, useState } from "react"; + +/** + * Make /api/hello call exclusively on the client + * - we already know SSR can fetch itself w/o issues + */ +export default function Page() { + const [data, setData] = useState(); + + const onClientClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/client`); + const d = await r.json(); + setData(d); + }, []); + + const onMiddlewareClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/middleware`); + const d = await r.json(); + setData(d); + }, []); + + return ( + <div> + <div>API: {data ? JSON.stringify(data, null, 2) : "N/A"}</div> + + <button className="border p-2" onClick={onClientClick}> + Call /api/client + </button> + <button className="border p-2" onClick={onMiddlewareClick}> + Call /api/middleware + </button> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/globals.css b/.conflict-base-0/examples/e2e/app-pages-router/app/globals.css new file mode 100644 index 00000000..2b3f9c34 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/globals.css @@ -0,0 +1,23 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) + rgb(var(--background-start-rgb)); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/image-optimization/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/image-optimization/page.tsx new file mode 100644 index 00000000..26128f9b --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/image-optimization/page.tsx @@ -0,0 +1,9 @@ +import Image from "next/image"; + +export default function ImageOptimization() { + return ( + <div> + <Image src="/static/corporate_holiday_card.jpg" alt="Corporate Holiday Card" width={300} height={300} /> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/isr/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/isr/page.tsx new file mode 100644 index 00000000..84f0ce7c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/isr/page.tsx @@ -0,0 +1,9 @@ +async function getTime() { + return new Date().toISOString(); +} + +export const revalidate = 10; +export default async function ISR() { + const time = getTime(); + return <div>Time: {time}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/layout.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/layout.tsx new file mode 100644 index 00000000..fa3e1763 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/layout.tsx @@ -0,0 +1,22 @@ +import "./globals.css"; + +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Nextjs App Router", + description: "Generated by create next app", +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + <html lang="en"> + <body className={inter.className}> + <header>Header</header> + {children} + </body> + </html> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/page.tsx new file mode 100644 index 00000000..5df8bc95 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/page.tsx @@ -0,0 +1,48 @@ +import Nav from "@example/shared/components/Nav"; + +export default function Home() { + return ( + <> + <h1>App Router</h1> + <main className="grid grid-cols-2 gap-4 p-10 [&>a]:border"> + <Nav href={"/albums"} title="Albums"> + Modal and interception of the greatest hits + </Nav> + <Nav href={"/rewrite"} title="Rewrite"> + Middleware Rewrite of a page. /rewrite should rewrite the contents of /rewrite-destination + </Nav> + <Nav href={"/redirect"} title="Redirect"> + Middleware Rewrite of a page. /redirect should redirect page to /redirect-destination + </Nav> + <Nav href={"/server-actions"} title="Server Actions"> + Client component imports a 'use server' server action and calls it directly without setting up any + api endpoints + </Nav> + <Nav href={"/isr"} title="ISR"> + Incremental Static Regeneration revalidates every 10 seconds with a new timestamp + </Nav> + <Nav href={"/ssr"} title="SSR"> + Server Side Render should generate a new timestamp on each load + </Nav> + <Nav href={"/api"} title="API"> + Calls an API endpoint defined in app/api/hello/route and middleware + </Nav> + <Nav href={"/parallel"} title="Parallel"> + Parallel routing + </Nav> + <Nav href={"/image-optimization"} title="Image Optimization"> + Image Optimization with next/image + </Nav> + </main> + <h1>Pages Router</h1> + <main className="grid grid-cols-2 gap-4 p-10 [&>a]:border"> + <Nav href="/pages_isr" title="/Pages_ISR" icon="/static/frank.webp"> + revalidates every 10 seconds + </Nav> + <Nav href="/pages_ssr" title="/Pages_SSR" icon="/static/frank.webp"> + SSR on each load + </Nav> + </main> + </> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx new file mode 100644 index 00000000..57b29d0e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/a-page/page.tsx @@ -0,0 +1,3 @@ +export default function APage() { + return <div>A Page</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/page.tsx new file mode 100644 index 00000000..80a57bde --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@a/page.tsx @@ -0,0 +1,10 @@ +import Link from "next/link"; + +export default function A() { + return ( + <div className="border p-4"> + <h1>Parallel Route A</h1> + <Link href="/parallel/a-page">Go to a-page</Link> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx new file mode 100644 index 00000000..64d0dffe --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/b-page/page.tsx @@ -0,0 +1,3 @@ +export default function BPage() { + return <div>B Page</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/page.tsx new file mode 100644 index 00000000..387c6abc --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/@b/page.tsx @@ -0,0 +1,11 @@ +import Link from "next/link"; + +export default function B() { + return ( + <div className="border p-4"> + <h1>Parallel Route B</h1> + + <Link href="/parallel/b-page">Go to b-page</Link> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/layout.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/layout.tsx new file mode 100644 index 00000000..40dea489 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/layout.tsx @@ -0,0 +1,42 @@ +"use client"; +import { useState } from "react"; + +import type { ReactNode } from "react"; + +export default function Layout({ a, b, children }: { children: ReactNode; a: ReactNode; b: ReactNode }) { + const [routeA, setRouteA] = useState(false); + const [routeB, setRouteB] = useState(false); + + return ( + <div> + <div className="flex flex-col mb-10"> + <label htmlFor="a"> + Enable A + <input + name="a" + type="checkbox" + checked={routeA} + onChange={(e) => { + setRouteA(e.target.checked); + }} + /> + </label> + <label htmlFor="b"> + Enable B + <input + name="b" + type="checkbox" + checked={routeB} + onChange={(e) => { + setRouteB(e.target.checked); + }} + /> + </label> + </div> + + {routeA && a} + {routeB && b} + {/* {children} */} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/page.tsx new file mode 100644 index 00000000..bdbbeff5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/parallel/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return null; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/redirect-destination/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/redirect-destination/page.tsx new file mode 100644 index 00000000..745019a7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/redirect-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectDestination() { + return <div>Redirect Destination</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx new file mode 100644 index 00000000..09c127af --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/rewrite-destination/page.tsx @@ -0,0 +1,12 @@ +export default async function RewriteDestination(props: { + searchParams: Promise<{ a: string; multi?: string[] }>; +}) { + const searchParams = await props.searchParams; + return ( + <div> + <div>Rewritten Destination</div> + <div>a: {searchParams.a}</div> + <div>multi: {searchParams.multi?.join(", ")}</div> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/client.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/client.tsx new file mode 100644 index 00000000..761e9d2d --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/client.tsx @@ -0,0 +1,26 @@ +"use client"; +import { useCallback, useState, useTransition } from "react"; + +import type { Song as SongType } from "@example/shared/api"; +import { getSong } from "@example/shared/api"; +import Song from "@example/shared/components/Album/Song"; + +export default function Client() { + const [isPending, startTransition] = useTransition(); + const [song, setSong] = useState<SongType>(); + + const onClick = useCallback(() => { + startTransition(async () => { + const song = await getSong("Hold Me In Your Arms", "I'm never gonna give you up"); + setSong(song); + }); + }, []); + + return ( + <div> + <button onClick={onClick}>Fire Server Actions</button> + {isPending && <div>☎️ing Server Actions...</div>} + {song && <Song song={song} play />} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/page.tsx new file mode 100644 index 00000000..7c594d54 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/server-actions/page.tsx @@ -0,0 +1,10 @@ +import Client from "./client"; + +export default function Page() { + return ( + <div> + <h1>Server Actions</h1> + <Client /> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/layout.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/layout.tsx new file mode 100644 index 00000000..8de59aa5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/layout.tsx @@ -0,0 +1,10 @@ +import type { PropsWithChildren } from "react"; + +export default function Layout({ children }: PropsWithChildren) { + return ( + <div> + <h1>SSR</h1> + {children} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/loading.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/loading.tsx new file mode 100644 index 00000000..56059e55 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/loading.tsx @@ -0,0 +1,3 @@ +export default function Loading() { + return <div>Loading...</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/page.tsx b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/page.tsx new file mode 100644 index 00000000..72c00f59 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/app/ssr/page.tsx @@ -0,0 +1,22 @@ +import { headers } from "next/headers"; + +async function getTime() { + const res = await new Promise<string>((resolve) => { + setTimeout(() => { + resolve(new Date().toISOString()); + }, 1500); + }); + return res; +} + +export default async function SSR() { + const time = await getTime(); + const headerList = await headers(); + return ( + <div> + <h1>Time: {time}</h1> + <div> {headerList.get("host")}</div> + <div>Env: {process.env.SOME_ENV_VAR}</div> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/api.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/api.test.ts new file mode 100644 index 00000000..363d0913 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/api.test.ts @@ -0,0 +1,35 @@ +import { expect, test } from "@playwright/test"; + +test("API call from client", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/api"]').click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/client" }).click(); + el = page.getByText('API: { "hello": "client" }'); + await expect(el).toBeVisible(); +}); + +test("API call from middleware", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/middleware" }).click(); + el = page.getByText('API: { "hello": "middleware" }'); + await expect(el).toBeVisible(); +}); + +test("API call from middleware with top-level await", async ({ request }) => { + const response = await request.get("/api/middlewareTopLevelAwait"); + const data = await response.json(); + expect(data).toEqual({ hello: "top-level-await" }); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/host.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/host.test.ts new file mode 100644 index 00000000..e5f6f3f0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/host.test.ts @@ -0,0 +1,14 @@ +import { expect, test } from "@playwright/test"; + +/** + * Tests that the request.url is the deployed host and not localhost + * + * This test is skipped since e2e tests for the cloudflare adapter + * run only locally to the baseURL doesn't match + */ +test.skip("Request.url is host", async ({ baseURL, page }) => { + await page.goto("/api/host"); + + const el = page.getByText(`{"url":"${baseURL}/api/host"}`); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/image-optimization.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/image-optimization.test.ts new file mode 100644 index 00000000..20738f44 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/image-optimization.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from "@playwright/test"; + +// Image Optimization is currently not supported: https://github.com/opennextjs/opennextjs-cloudflare/issues/106 +test.skip("Image Optimization", async ({ page }) => { + await page.goto("/"); + + const imageResponsePromise = page.waitForResponse(/corporate_holiday_card.jpg/); + await page.locator('[href="/image-optimization"]').click(); + const imageResponse = await imageResponsePromise; + + await page.waitForURL("/image-optimization"); + + const imageContentType = imageResponse.headers()["content-type"]; + expect(imageContentType).toBe("image/webp"); + + const el = page.locator("img"); + await expect(el).toHaveJSProperty("complete", true); + await expect(el).not.toHaveJSProperty("naturalWidth", 0); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/isr.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/isr.test.ts new file mode 100644 index 00000000..afdc1b32 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/isr.test.ts @@ -0,0 +1,41 @@ +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(60000); + await page.goto("/"); + await page.locator('[href="/isr"]').click(); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("Time:"); + // Track the static time + let time = await el.textContent(); + let newTime: typeof time; + let tempTime = time; + do { + await page.waitForTimeout(1000); + await page.reload(); + time = tempTime; + el = page.getByText("Time:"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + await page.waitForTimeout(1000); + el = page.getByText("Time:"); + const midTime = await el.textContent(); + // Expect that the time is still stale + expect(midTime).toEqual(newTime); + + // Wait 10 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(11000); + let finalTime = newTime; + do { + await page.waitForTimeout(2000); + el = page.getByText("Time:"); + finalTime = await el.textContent(); + await page.reload(); + } while (newTime === finalTime); + + expect(newTime).not.toEqual(finalTime); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts new file mode 100644 index 00000000..416b897e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.redirect.test.ts @@ -0,0 +1,20 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Redirect", async ({ page, context }) => { + await page.goto("/"); + await page.locator('[href="/redirect"]').click(); + + // URL is immediately redirected + await page.waitForURL("/redirect-destination"); + let el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also redirect + await page.goto("/redirect"); + await page.waitForURL("/redirect-destination"); + expect(await context.cookies().then((res) => res.find((cookie) => cookie.name === "test")?.value)).toBe( + "success" + ); + el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts new file mode 100644 index 00000000..91c8e9ca --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/middleware.rewrite.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test.describe("Middleware Rewrite", () => { + test("Simple Middleware Rewrite", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/rewrite"]').click(); + + await page.waitForURL("/rewrite"); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("a: b", { exact: true }); + await expect(el).toBeVisible(); + // Loading page should also rewrite + await page.goto("/rewrite"); + await page.waitForURL("/rewrite"); + el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("a: b", { exact: true }); + await expect(el).toBeVisible(); + }); + + test("Middleware Rewrite with multiple search params", async ({ page }) => { + await page.goto("/rewrite-multi-params"); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("a: b", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("multi: 0, 1, 2", { exact: true }); + await expect(el).toBeVisible(); + }); + + test("Middleware Rewrite should override original search params", async ({ page }) => { + await page.goto("/rewrite?a=1&multi=3"); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("a: b", { exact: true }); + await expect(el).toBeVisible(); + el = page.getByText("multi:", { exact: true }); + await expect(el).toBeVisible(); + await expect(el).toHaveText("multi:"); + }); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/modals.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/modals.test.ts new file mode 100644 index 00000000..30b2a248 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/modals.test.ts @@ -0,0 +1,18 @@ +import { expect, test } from "@playwright/test"; + +test("Route modal and interception", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Albums" }).click(); + await page.getByRole("link", { name: "Song: I'm never gonna give you up Year: 1965" }).click(); + + await page.waitForURL(`/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`); + + const modal = page.getByText("Modal", { exact: true }); + await expect(modal).toBeVisible(); + + // Reload the page to load non intercepted modal + await page.reload(); + await page.waitForURL(`/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`); + const notModal = page.getByText("Not Modal", { exact: true }); + await expect(notModal).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_isr.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_isr.test.ts new file mode 100644 index 00000000..810721eb --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_isr.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(60000); + await page.goto("/"); + await page.locator('[href="/pages_isr"]').click(); + + await page.waitForURL("/pages_isr"); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("Time:"); + // Track the static time + let time = await el.textContent(); + let newTime: typeof time; + let tempTime = time; + do { + await page.waitForTimeout(1000); + await page.reload(); + time = tempTime; + el = page.getByText("Time:"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + await page.waitForTimeout(1000); + el = page.getByText("Time:"); + const midTime = await el.textContent(); + // Expect that the time is still stale + expect(midTime).toEqual(newTime); + + // Wait 10 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(11000); + let finalTime = newTime; + do { + await page.waitForTimeout(2000); + el = page.getByText("Time:"); + finalTime = await el.textContent(); + await page.reload(); + } while (newTime === finalTime); + + expect(newTime).not.toEqual(finalTime); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts new file mode 100644 index 00000000..eae63406 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/pages_ssr.test.ts @@ -0,0 +1,27 @@ +import { expect, test } from "@playwright/test"; + +test("Server Side Render", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/pages_ssr"]').click(); + + await page.waitForURL("/pages_ssr"); + let el = page.getByText("Time:"); + await expect(el).toBeVisible(); + let time = await el.textContent(); + + await page.reload(); + + el = page.getByText("Time:"); + let newTime = await el.textContent(); + await expect(el).toBeVisible(); + + for (let i = 0; i < 5; i++) { + await page.reload(); + el = page.getByText("Time:"); + newTime = await el.textContent(); + await expect(el).toBeVisible(); + expect(time).not.toEqual(newTime); + time = newTime; + await page.waitForTimeout(250); + } +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/parallel.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/parallel.test.ts new file mode 100644 index 00000000..4330a197 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/parallel.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test("Parallel routes", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/parallel"]').click(); + + await page.waitForURL("/parallel"); + + // Neither are selected, so A/B shouldn't be rendered + let routeA = page.getByText("Parallel Route A"); + let routeB = page.getByText("Parallel Route B"); + await expect(routeA).not.toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable A, which should be visible but not B + await page.locator('input[name="a"]').check(); + routeA = page.getByText("Parallel Route A"); + await expect(routeA).toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable B, both should be visible + await page.locator('input[name="b"]').check(); + routeB = page.getByText("Parallel Route B"); + await expect(routeA).toBeVisible(); + await expect(routeB).toBeVisible(); + + // Click on A, should go to a-page + await page.getByText("Go to a-page").click(); + await page.waitForURL("/parallel/a-page"); + + // Should render contents of a-page + routeA = page.getByText("A Page"); + await expect(routeA).toBeVisible(); + + // Click on B, should go to b-page + await page.getByText("Go to b-page").click(); + await page.waitForURL("/parallel/b-page"); + + // Should render contents of b-page + routeB = page.getByText("B Page"); + await expect(routeB).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/playwright.config.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/playwright.config.ts new file mode 100644 index 00000000..b75f3c38 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("app-pages-router"); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/serverActions.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/serverActions.test.ts new file mode 100644 index 00000000..e4833c28 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/serverActions.test.ts @@ -0,0 +1,22 @@ +import { expect, test } from "@playwright/test"; + +test("Server Actions", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/server-actions"]').click(); + + await page.waitForURL("/server-actions"); + let el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); + + // Reload page + await page.reload(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts new file mode 100644 index 00000000..534a4dc1 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/skip_trailing.test.ts @@ -0,0 +1,8 @@ +import { expect, test } from "@playwright/test"; + +test("skipTrailingSlashRedirect redirect", async ({ page }) => { + const response = await page.goto("/ssr"); + + expect(response?.request().redirectedFrom()).toBeNull(); + expect(response?.request().url()).toMatch(/\/ssr$/); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/e2e/ssr.test.ts b/.conflict-base-0/examples/e2e/app-pages-router/e2e/ssr.test.ts new file mode 100644 index 00000000..948a2919 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/e2e/ssr.test.ts @@ -0,0 +1,33 @@ +import { expect, test } from "@playwright/test"; + +test("Server Side Render", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/ssr"]').click(); + + await page.waitForURL("/ssr"); + let el = page.getByText("Time:"); + await expect(el).toBeVisible(); + let time = await el.textContent(); + + await page.reload(); + + el = page.getByText("Time:"); + let newTime = await el.textContent(); + await expect(el).toBeVisible(); + + for (let i = 0; i < 5; i++) { + await page.reload(); + el = page.getByText("Time:"); + newTime = await el.textContent(); + await expect(el).toBeVisible(); + expect(time).not.toEqual(newTime); + time = newTime; + await page.waitForTimeout(250); + } +}); + +test("Server Side Render with env", async ({ page }) => { + await page.goto("/ssr"); + const el = page.getByText("Env:"); + expect(await el.textContent()).toEqual("Env: foo"); +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/middleware.ts b/.conflict-base-0/examples/e2e/app-pages-router/middleware.ts new file mode 100644 index 00000000..946e720a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/middleware.ts @@ -0,0 +1,78 @@ +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +// Needed to test top-level await +// We are using `setTimeout` to simulate a "long" running operation +// we could have used `Promise.resolve` instead, but it would be running in a different way in the event loop +// @ts-expect-error - It will cause a warning at build time, but it should just work +const topLevelAwait = await new Promise<string>((resolve) => { + setTimeout(() => { + resolve("top-level-await"); + }, 10); +}); + +export function middleware(request: NextRequest) { + const path = request.nextUrl.pathname; //new URL(request.url).pathname; + + const host = request.headers.get("host"); + const protocol = host?.startsWith("localhost") ? "http" : "https"; + if (path === "/redirect") { + const u = new URL("/redirect-destination", `${protocol}://${host}`); + return NextResponse.redirect(u, { + headers: { "set-cookie": "test=success" }, + }); + } + if (path === "/rewrite") { + const u = new URL("/rewrite-destination", `${protocol}://${host}`); + u.searchParams.set("a", "b"); + return NextResponse.rewrite(u); + } + if (path === "/rewrite-multi-params") { + const u = new URL("/rewrite-destination", `${protocol}://${host}`); + u.searchParams.append("multi", "0"); + u.searchParams.append("multi", "1"); + u.searchParams.append("multi", "2"); + u.searchParams.set("a", "b"); + return NextResponse.rewrite(u); + } + if (path === "/api/middleware") { + return new NextResponse(JSON.stringify({ hello: "middleware" }), { + status: 200, + headers: { + "content-type": "application/json", + }, + }); + } + if (path === "/api/middlewareTopLevelAwait") { + return new NextResponse(JSON.stringify({ hello: topLevelAwait }), { + status: 200, + headers: { + "content-type": "application/json", + }, + }); + } + + if (path === "/head" && request.method === "HEAD") { + return new NextResponse(null, { + headers: { + "x-from-middleware": "true", + }, + }); + } + + if (path === "/fetch") { + // This one test both that we don't modify immutable headers + return fetch(new URL("/api/hello", request.url)); + } + const rHeaders = new Headers(request.headers); + const r = NextResponse.next({ + request: { + headers: rHeaders, + }, + }); + return r; +} + +export const config = { + matcher: ["/((?!_next|favicon.ico|match|static|fonts|api/auth|og).*)"], +}; diff --git a/.conflict-base-0/examples/e2e/app-pages-router/next.config.ts b/.conflict-base-0/examples/e2e/app-pages-router/next.config.ts new file mode 100644 index 00000000..0f161f3a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/next.config.ts @@ -0,0 +1,19 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + poweredByHeader: false, + cleanDistDir: true, + transpilePackages: ["@example/shared"], + output: "standalone", + // outputFileTracingRoot: "../sst", + typescript: { + ignoreBuildErrors: true, + }, + eslint: { + ignoreDuringBuilds: true, + }, + trailingSlash: true, + skipTrailingSlashRedirect: true, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/e2e/app-pages-router/open-next.config.ts b/.conflict-base-0/examples/e2e/app-pages-router/open-next.config.ts new file mode 100644 index 00000000..e2d3305a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/open-next.config.ts @@ -0,0 +1,9 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; +import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/r2-incremental-cache"; +import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue"; + +export default defineCloudflareConfig({ + incrementalCache: r2IncrementalCache, + queue: memoryQueue, + enableCacheInterception: true, +}); diff --git a/.conflict-base-0/examples/e2e/app-pages-router/package.json b/.conflict-base-0/examples/e2e/app-pages-router/package.json new file mode 100644 index 00000000..13469bd0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/package.json @@ -0,0 +1,35 @@ +{ + "name": "app-pages-router", + "version": "0.1.6", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --build-command \"npx turbo build\"", + "dev": "next dev --turbopack --port 3003", + "build": "next build", + "start": "next start --port 3003", + "lint": "next lint", + "clean": "rm -rf .turbo node_modules .next .open-next", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts" + }, + "dependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@example/shared": "workspace:*", + "next": "catalog:e2e", + "react": "catalog:e2e", + "react-dom": "catalog:e2e" + }, + "devDependencies": { + "@playwright/test": "catalog:", + "@types/node": "catalog:e2e", + "@types/react": "catalog:e2e", + "@types/react-dom": "catalog:e2e", + "autoprefixer": "catalog:e2e", + "postcss": "catalog:e2e", + "tailwindcss": "catalog:e2e", + "typescript": "catalog:default", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/pages/_app.tsx b/.conflict-base-0/examples/e2e/app-pages-router/pages/_app.tsx new file mode 100644 index 00000000..8db0344e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/pages/_app.tsx @@ -0,0 +1,7 @@ +import "@/styles/globals.css"; + +import type { AppProps } from "next/app"; + +export default function App({ Component, pageProps }: AppProps) { + return <Component {...pageProps} />; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/pages/_document.tsx b/.conflict-base-0/examples/e2e/app-pages-router/pages/_document.tsx new file mode 100644 index 00000000..574203a2 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Head, Html, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + <Html lang="en"> + <Head /> + <body> + <Main /> + <NextScript /> + </body> + </Html> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/pages/api/hello.ts b/.conflict-base-0/examples/e2e/app-pages-router/pages/api/hello.ts new file mode 100644 index 00000000..923a7b4c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/pages/api/hello.ts @@ -0,0 +1,10 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; + +type Data = { + hello: string; +}; + +export default function handler(req: NextApiRequest, res: NextApiResponse<Data>) { + res.status(200).json({ hello: "world" }); +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_isr/index.tsx b/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_isr/index.tsx new file mode 100644 index 00000000..1c552f99 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_isr/index.tsx @@ -0,0 +1,14 @@ +import type { InferGetStaticPropsType } from "next"; + +export async function getStaticProps() { + return { + props: { + time: new Date().toISOString(), + }, + revalidate: 10, + }; +} + +export default function Page({ time }: InferGetStaticPropsType<typeof getStaticProps>) { + return <div className="flex">Time: {time}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx b/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx new file mode 100644 index 00000000..e7154b8e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/pages/pages_ssr/index.tsx @@ -0,0 +1,13 @@ +import type { InferGetServerSidePropsType } from "next"; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + }, + }; +} + +export default function Page({ time }: InferGetServerSidePropsType<typeof getServerSideProps>) { + return <div className="flex">Time: {time}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/postcss.config.js b/.conflict-base-0/examples/e2e/app-pages-router/postcss.config.js new file mode 100644 index 00000000..e873f1a4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/.conflict-base-0/examples/e2e/app-pages-router/public/favicon.ico b/.conflict-base-0/examples/e2e/app-pages-router/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ba005f2c893d9bdce751162e8be142627758eb4 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg b/.conflict-base-0/examples/e2e/app-pages-router/public/static/corporate_holiday_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0df96ae239c2f5f46bcf9080a2273379254eaf1a GIT binary patch literal 120302 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 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-pages-router/public/static/frank.webp b/.conflict-base-0/examples/e2e/app-pages-router/public/static/frank.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2cc67f0ebd9741dc6e036af19726d3a6b84423e GIT binary patch literal 8830 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-pages-router/styles/globals.css b/.conflict-base-0/examples/e2e/app-pages-router/styles/globals.css new file mode 100644 index 00000000..e5414503 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/styles/globals.css @@ -0,0 +1,95 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --max-width: 1100px; + --border-radius: 12px; + --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", + "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace; + + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; + + --primary-glow: conic-gradient( + from 180deg at 50% 50%, + #16abff33 0deg, + #0885ff33 55deg, + #54d6ff33 120deg, + #0071ff33 160deg, + transparent 360deg + ); + --secondary-glow: radial-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); + + --tile-start-rgb: 239, 245, 249; + --tile-end-rgb: 228, 232, 233; + --tile-border: conic-gradient(#00000080, #00000040, #00000030, #00000020, #00000010, #00000010, #00000080); + + --callout-rgb: 238, 240, 241; + --callout-border-rgb: 172, 175, 176; + --card-rgb: 180, 185, 188; + --card-border-rgb: 131, 134, 135; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + + --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); + --secondary-glow: linear-gradient( + to bottom right, + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0.3) + ); + + --tile-start-rgb: 2, 13, 46; + --tile-end-rgb: 2, 5, 19; + --tile-border: conic-gradient( + #ffffff80, + #ffffff40, + #ffffff30, + #ffffff20, + #ffffff10, + #ffffff10, + #ffffff80 + ); + + --callout-rgb: 20, 20, 20; + --callout-border-rgb: 108, 108, 108; + --card-rgb: 100, 100, 100; + --card-border-rgb: 200, 200, 200; + } +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) + rgb(var(--background-start-rgb)); +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/tailwind.config.ts b/.conflict-base-0/examples/e2e/app-pages-router/tailwind.config.ts new file mode 100644 index 00000000..66dcdc6e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/tailwind.config.ts @@ -0,0 +1,15 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: ["./app/**/*.{js,ts,jsx,tsx,mdx}", "../../examples/shared/**/*.{jsx,tsx}"], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/.conflict-base-0/examples/e2e/app-pages-router/tsconfig.json b/.conflict-base-0/examples/e2e/app-pages-router/tsconfig.json new file mode 100644 index 00000000..7c5f4684 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"], + "@example/shared": ["../shared"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "../utils.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/e2e/app-pages-router/wrangler.jsonc b/.conflict-base-0/examples/e2e/app-pages-router/wrangler.jsonc new file mode 100644 index 00000000..b636b43a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-pages-router/wrangler.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "app-pages-router", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + }, + "r2_buckets": [ + { + "binding": "NEXT_INC_CACHE_R2_BUCKET", + "bucket_name": "cache" + } + ], + "services": [ + { + "binding": "WORKER_SELF_REFERENCE", + "service": "app-pages-router" + } + ], + "vars": { + "NEXT_INC_CACHE_R2_PREFIX": "custom_prefix" + } +} diff --git a/.conflict-base-0/examples/e2e/app-router/.gitignore b/.conflict-base-0/examples/e2e/app-router/.gitignore new file mode 100644 index 00000000..1400f68e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/.gitignore @@ -0,0 +1,43 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-next +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ + diff --git a/.conflict-base-0/examples/e2e/app-router/CHANGELOG.md b/.conflict-base-0/examples/e2e/app-router/CHANGELOG.md new file mode 100644 index 00000000..bc4243e0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/CHANGELOG.md @@ -0,0 +1,29 @@ +# app-router + +## 0.1.4 + +### Patch Changes + +- Updated dependencies [[`9595714ac23e5f131b879d04d5cfb2a5d11bdbdd`](https://github.com/opennextjs/opennextjs-aws/commit/9595714ac23e5f131b879d04d5cfb2a5d11bdbdd), [`4e88b47935523de1d15da067b56105bd6be91e47`](https://github.com/opennextjs/opennextjs-aws/commit/4e88b47935523de1d15da067b56105bd6be91e47), [`7140ca56e1e88d7a7cae327eceb3ef8c2fde2a1e`](https://github.com/opennextjs/opennextjs-aws/commit/7140ca56e1e88d7a7cae327eceb3ef8c2fde2a1e)]: + - @opennextjs/aws@3.3.1 + +## 0.1.3 + +### Patch Changes + +- Updated dependencies [[`4d328e3fc306b878e9497986baa65bfd1d4de66a`](https://github.com/opennextjs/opennextjs-aws/commit/4d328e3fc306b878e9497986baa65bfd1d4de66a), [`2b2a48b70ae95b5e600ac2e4b7f2df8702c5c26e`](https://github.com/opennextjs/opennextjs-aws/commit/2b2a48b70ae95b5e600ac2e4b7f2df8702c5c26e), [`f685ddea8f8a5c82591dc02713aff7138f2d9896`](https://github.com/opennextjs/opennextjs-aws/commit/f685ddea8f8a5c82591dc02713aff7138f2d9896), [`ef1fe48d570863266c271e5dedaf02b943849ded`](https://github.com/opennextjs/opennextjs-aws/commit/ef1fe48d570863266c271e5dedaf02b943849ded), [`8ab921f8b5bd40c7ba109ccef3e59a6c24283fb2`](https://github.com/opennextjs/opennextjs-aws/commit/8ab921f8b5bd40c7ba109ccef3e59a6c24283fb2), [`2202f36ce0f87357b249bd127cdd5e84d6deffd3`](https://github.com/opennextjs/opennextjs-aws/commit/2202f36ce0f87357b249bd127cdd5e84d6deffd3), [`44392ba82990d43e16a614113d9e7d8e257e5bdd`](https://github.com/opennextjs/opennextjs-aws/commit/44392ba82990d43e16a614113d9e7d8e257e5bdd), [`4dea7ea2f5ffd1848e51502c88d2efcc1896bb8c`](https://github.com/opennextjs/opennextjs-aws/commit/4dea7ea2f5ffd1848e51502c88d2efcc1896bb8c), [`0ac604e5867497cc93fb677b5ebc28ef87e057f8`](https://github.com/opennextjs/opennextjs-aws/commit/0ac604e5867497cc93fb677b5ebc28ef87e057f8), [`1ece6b479bb4e0309892ffbd1200870821a410c4`](https://github.com/opennextjs/opennextjs-aws/commit/1ece6b479bb4e0309892ffbd1200870821a410c4), [`697681bf9ce25212ce4e2e94d886ca425428280d`](https://github.com/opennextjs/opennextjs-aws/commit/697681bf9ce25212ce4e2e94d886ca425428280d)]: + - @opennextjs/aws@3.3.0 + +## 0.1.2 + +### Patch Changes + +- Updated dependencies [[`6f798debb575b157acb2f5068658f95ace0fae50`](https://github.com/opennextjs/opennextjs-aws/commit/6f798debb575b157acb2f5068658f95ace0fae50), [`fe600ac6f5e513376cf233a5d2ce68affaa3aa5a`](https://github.com/opennextjs/opennextjs-aws/commit/fe600ac6f5e513376cf233a5d2ce68affaa3aa5a), [`5f0cbc8feac9eec728c27bb3b7ff5c3f3bc26716`](https://github.com/opennextjs/opennextjs-aws/commit/5f0cbc8feac9eec728c27bb3b7ff5c3f3bc26716), [`8b51108d9aee7e5ed3027c1ceda99091b579951d`](https://github.com/opennextjs/opennextjs-aws/commit/8b51108d9aee7e5ed3027c1ceda99091b579951d), [`b999c4e9a38499680bed77ddeb94b62a3301c0fa`](https://github.com/opennextjs/opennextjs-aws/commit/b999c4e9a38499680bed77ddeb94b62a3301c0fa), [`ba84259d2e35e79a562a7e3f055e350a03c9d651`](https://github.com/opennextjs/opennextjs-aws/commit/ba84259d2e35e79a562a7e3f055e350a03c9d651)]: + - @opennextjs/aws@3.2.2 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies [[`cf33973f3fbab73e77898fdd072a00a1f037257a`](https://github.com/opennextjs/opennextjs-aws/commit/cf33973f3fbab73e77898fdd072a00a1f037257a), [`77d87e7a870fad6afad022bf75aca18c8656c268`](https://github.com/opennextjs/opennextjs-aws/commit/77d87e7a870fad6afad022bf75aca18c8656c268), [`a43b82b4cb68889371ac8260aefef9e04eefb037`](https://github.com/opennextjs/opennextjs-aws/commit/a43b82b4cb68889371ac8260aefef9e04eefb037), [`bfa1a8c4056bd691fb57617dd6287693e51071b4`](https://github.com/opennextjs/opennextjs-aws/commit/bfa1a8c4056bd691fb57617dd6287693e51071b4), [`5839217411012d1df2874d299daa977ba3701c2c`](https://github.com/opennextjs/opennextjs-aws/commit/5839217411012d1df2874d299daa977ba3701c2c), [`dfc174d88b7bcc54eede09c98d9443dd84b93fd8`](https://github.com/opennextjs/opennextjs-aws/commit/dfc174d88b7bcc54eede09c98d9443dd84b93fd8)]: + - @opennextjs/aws@3.2.1 diff --git a/.conflict-base-0/examples/e2e/app-router/README.md b/.conflict-base-0/examples/e2e/app-router/README.md new file mode 100644 index 00000000..f4b9da05 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/README.md @@ -0,0 +1,3 @@ +# App Router + +This project uses the App Router exclusively... diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx new file mode 100644 index 00000000..cc52507e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -0,0 +1,29 @@ +import { getSong } from "@example/shared/api"; +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: Promise<{ + album: string; + song: string; + }>; +}; +export default async function SongPage(props: Props) { + const params = await props.params; + const song = await getSong(params.album, params.song); + return ( + <Modal> + <h1>Modal</h1> + Album: {decodeURIComponent(params.album)} + <div className="absolute top-1/2 mt-10"> + {/* <video width={1000} height={1000} autoPlay src={`https://youtube.com/watch?v=${params.song}`} /> */} + <iframe + width="560" + height="315" + title={params.song} + allowFullScreen + src={`https://youtube.com/embed/${song?.videoId}?autoplay=1`} + ></iframe> + </div> + </Modal> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx new file mode 100644 index 00000000..0e43eb56 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/(.)[album]/page.tsx @@ -0,0 +1,11 @@ +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: Promise<{ + artist: string; + }>; +}; +export default async function ArtistPage(props: Props) { + const params = await props.params; + return <Modal>Artists {params.artist}</Modal>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/default.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/default.tsx new file mode 100644 index 00000000..3e4bcd38 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx new file mode 100644 index 00000000..39970e4c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/[song]/page.tsx @@ -0,0 +1,25 @@ +import { getSong } from "@example/shared/api"; + +type Props = { + params: Promise<{ + album: string; + song: string; + }>; +}; +export default async function Song(props: Props) { + const params = await props.params; + const song = await getSong(params.album, params.song); + + return ( + <div> + <h1>Not Modal</h1> + {decodeURIComponent(params.album)} + <iframe + width="560" + height="315" + allowFullScreen + src={`https://youtube.com/embed/${song?.videoId}?autoplay=1`} + ></iframe> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/page.tsx new file mode 100644 index 00000000..ca3a6034 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/[album]/page.tsx @@ -0,0 +1,3 @@ +export default function ArtistPage() { + return <div>Artist</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/layout.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/layout.tsx new file mode 100644 index 00000000..137ea157 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/layout.tsx @@ -0,0 +1,10 @@ +import type { ReactNode } from "react"; + +export default function Layout({ children, modal }: { children: ReactNode; modal: ReactNode }) { + return ( + <div> + {children} + {modal} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/albums/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/albums/page.tsx new file mode 100644 index 00000000..c1dc4dc4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/albums/page.tsx @@ -0,0 +1,13 @@ +import { getAlbums } from "@example/shared/api"; +import Album from "@example/shared/components/Album"; + +export default async function AlbumPage() { + const albums = await getAlbums(); + return ( + <div> + {albums.map((album) => ( + <Album album={album} /> + ))} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/after/revalidate/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/after/revalidate/route.ts new file mode 100644 index 00000000..b781b7e7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/after/revalidate/route.ts @@ -0,0 +1,16 @@ +import { revalidateTag } from "next/cache"; +import { NextResponse, after } from "next/server"; + +export function POST() { + after( + () => + new Promise<void>((resolve) => + setTimeout(() => { + revalidateTag("date"); + resolve(); + }, 5000) + ) + ); + + return NextResponse.json({ success: true }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/after/ssg/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/after/ssg/route.ts new file mode 100644 index 00000000..8cb434a6 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/after/ssg/route.ts @@ -0,0 +1,12 @@ +import { unstable_cache } from "next/cache"; +import { NextResponse } from "next/server"; + +export const dynamic = "force-static"; + +export async function GET() { + const dateFn = unstable_cache(() => new Date().toISOString(), ["date"], { + tags: ["date"], + }); + const date = await dateFn(); + return NextResponse.json({ date }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/client/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/client/route.ts new file mode 100644 index 00000000..15b4f42e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/client/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + hello: "client", + }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/host/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/host/route.ts new file mode 100644 index 00000000..6501a231 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/host/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + url: request.url, + }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/isr/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/isr/route.ts new file mode 100644 index 00000000..cd8662a0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/isr/route.ts @@ -0,0 +1,33 @@ +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +export const dynamic = "force-dynamic"; + +// This endpoint simulates an on demand revalidation request +export async function GET(request: NextRequest) { + let manifest: { preview: { previewModeId: string } }; + // this fails at build time when next.js tries to evaluate the route + try { + // @ts-expect-error + const prerenderManifest = await import(/* webpackIgnore: true */ "./.next/prerender-manifest.json"); + manifest = prerenderManifest.default; + } catch { + return new Response(null, { status: 500 }); + } + + const previewId = manifest.preview.previewModeId; + + const host = request.headers.get("host"); + const result = await fetch(`http${host?.includes("localhost") ? "" : "s"}://${host}/isr`, { + headers: { "x-prerender-revalidate": previewId }, + method: "HEAD", + }); + + return NextResponse.json({ + status: 200, + body: { + result: result.ok, + cacheControl: result.headers.get("cache-control"), + }, + }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/og/route.tsx b/.conflict-base-0/examples/e2e/app-router/app/api/og/route.tsx new file mode 100644 index 00000000..ca7ba92a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/og/route.tsx @@ -0,0 +1,72 @@ +import { ImageResponse } from "next/og"; +// App router includes @vercel/og. +// No need to install it. +// ?title=<title> + +export async function GET(request: Request) { + try { + const { searchParams } = new URL(request.url); + + // ?title=<title> + const hasTitle = searchParams.has("title"); + const title = hasTitle ? searchParams.get("title")?.slice(0, 100) : "My default title"; + + return new ImageResponse( + ( + <div + style={{ + backgroundColor: "black", + backgroundSize: "150px 150px", + height: "100%", + width: "100%", + display: "flex", + textAlign: "center", + alignItems: "center", + justifyContent: "center", + flexDirection: "column", + flexWrap: "nowrap", + }} + > + <div + style={{ + display: "flex", + alignItems: "center", + justifyContent: "center", + justifyItems: "center", + }} + > + <img + alt="Vercel" + height={200} + src="data:image/svg+xml,%3Csvg width='116' height='100' fill='white' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M57.5 0L115 100H0L57.5 0z' /%3E%3C/svg%3E" + style={{ margin: "0 30px" }} + width={232} + /> + </div> + <div + style={{ + fontSize: 60, + fontStyle: "normal", + letterSpacing: "-0.025em", + color: "white", + marginTop: 30, + padding: "0 120px", + lineHeight: 1.4, + whiteSpace: "pre-wrap", + }} + > + {title} + </div> + </div> + ), + { + width: 1200, + height: 630, + } + ); + } catch (e: any) { + return new Response("Failed to generate the image", { + status: 500, + }); + } +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/api/page.tsx new file mode 100644 index 00000000..b7f7bfb1 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/page.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useCallback, useState } from "react"; + +/** + * Make /api/hello call exclusively on the client + * - we already know SSR can fetch itself w/o issues + */ +export default function Page() { + const [data, setData] = useState(); + + const onClientClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/client`); + const d = await r.json(); + setData(d); + }, []); + + const onMiddlewareClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/middleware`); + const d = await r.json(); + setData(d); + }, []); + + return ( + <div> + <div>API: {data ? JSON.stringify(data, null, 2) : "N/A"}</div> + + <button className="border p-2" onClick={onClientClick}> + Call /api/client + </button> + <button className="border p-2" onClick={onMiddlewareClick}> + Call /api/middleware + </button> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-path/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-path/route.ts new file mode 100644 index 00000000..223822df --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-path/route.ts @@ -0,0 +1,9 @@ +import { revalidatePath } from "next/cache"; + +export const dynamic = "force-dynamic"; + +export async function GET() { + revalidatePath("/revalidate-path"); + + return new Response("ok"); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-tag/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-tag/route.ts new file mode 100644 index 00000000..4fcdf84a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/revalidate-tag/route.ts @@ -0,0 +1,9 @@ +import { revalidateTag } from "next/cache"; + +export const dynamic = "force-dynamic"; + +export async function GET() { + revalidateTag("revalidate"); + + return new Response("ok"); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/api/sse/route.ts b/.conflict-base-0/examples/e2e/app-router/app/api/sse/route.ts new file mode 100644 index 00000000..b00ac4db --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/api/sse/route.ts @@ -0,0 +1,52 @@ +import type { NextRequest } from "next/server"; + +function wait(ms: number) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +export const dynamic = "force-dynamic"; + +export async function GET(request: NextRequest) { + const resStream = new TransformStream(); + const writer = resStream.writable.getWriter(); + + const res = new Response(resStream.readable, { + headers: { + "Content-Type": "text/event-stream", + Connection: "keep-alive", + "Cache-Control": "no-cache, no-transform", + }, + }); + + setTimeout(async () => { + await writer.write( + `data: ${JSON.stringify({ + message: "open", + time: new Date().toISOString(), + })}\n\n` + ); + for (let i = 1; i <= 4; i++) { + await wait(2000); + await writer.write( + `data: ${JSON.stringify({ + message: `hello:${i}`, + time: new Date().toISOString(), + })}\n\n` + ); + } + + await wait(2000); // Wait for 4 seconds + await writer.write( + `data: ${JSON.stringify({ + message: "close", + time: new Date().toISOString(), + })}\n\n` + ); + await wait(5000); + await writer.close(); + }, 100); + + return res; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/config-redirect/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/config-redirect/page.tsx new file mode 100644 index 00000000..b7766ca6 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/config-redirect/page.tsx @@ -0,0 +1,8 @@ +export default function RedirectDestination() { + return ( + <div> + <h1>I was redirected from next.config.js</h1> + <p>/next-config-redirect => /config-redirect</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/cookies/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/cookies/page.tsx new file mode 100644 index 00000000..012ba217 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/cookies/page.tsx @@ -0,0 +1,7 @@ +import { cookies } from "next/headers"; + +export default async function Page() { + const foo = (await cookies()).get("foo")?.value; + + return <div data-testid="foo">{foo}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/globals.css b/.conflict-base-0/examples/e2e/app-router/app/globals.css new file mode 100644 index 00000000..2b3f9c34 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/globals.css @@ -0,0 +1,23 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) + rgb(var(--background-start-rgb)); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/headers/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/headers/page.tsx new file mode 100644 index 00000000..e98e564c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/headers/page.tsx @@ -0,0 +1,11 @@ +import { headers } from "next/headers"; + +export default async function Headers() { + const middlewareHeader = (await headers()).get("request-header"); + return ( + <div> + <h1>Headers</h1> + <div>{middlewareHeader}</div> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/image-optimization/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/image-optimization/page.tsx new file mode 100644 index 00000000..aa1cc901 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/image-optimization/page.tsx @@ -0,0 +1,14 @@ +import Image from "next/image"; + +export default function ImageOptimization() { + return ( + <div> + <Image + src="https://opennext.js.org/architecture.png" + alt="Open Next architecture" + width={300} + height={300} + /> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/isr-data-cache/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/isr-data-cache/page.tsx new file mode 100644 index 00000000..29fa8003 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/isr-data-cache/page.tsx @@ -0,0 +1,28 @@ +import { unstable_cache } from "next/cache"; + +async function getTime() { + return new Date().toISOString(); +} + +const cachedTime = unstable_cache(getTime, { revalidate: false }); + +export const revalidate = 10; + +export default async function ISR() { + const responseOpenNext = await fetch("https://opennext.js.org", { + cache: "force-cache", + }); + const dateInOpenNext = responseOpenNext.headers.get("date"); + const cachedTimeValue = await cachedTime(); + const time = getTime(); + return ( + <div> + <h1>Date from from OpenNext</h1> + <p data-testid="fetched-date">Date from from OpenNext: {dateInOpenNext}</p> + <h1>Cached Time</h1> + <p data-testid="cached-date">Cached Time: {cachedTimeValue}</p> + <h1>Time</h1> + <p data-testid="time">Time: {time}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx new file mode 100644 index 00000000..6fb27d4b --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-false/[id]/page.tsx @@ -0,0 +1,34 @@ +// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamicparams +export const dynamicParams = false; // or true, to make it try SSR unknown paths + +const POSTS = Array.from({ length: 20 }, (_, i) => ({ + id: String(i + 1), + title: `Post ${i + 1}`, + content: `This is post ${i + 1}`, +})); + +async function fakeGetPostsFetch() { + return POSTS.slice(0, 10); +} + +async function fakeGetPostFetch(id: string) { + return POSTS.find((post) => post.id === id); +} + +export async function generateStaticParams() { + const fakePosts = await fakeGetPostsFetch(); + return fakePosts.map((post) => ({ + id: post.id, + })); +} + +export default async function Page({ params }: { params: Promise<{ id: string }> }) { + const { id } = await params; + const post = await fakeGetPostFetch(id); + return ( + <main> + <h1 data-testid="title">{post?.title}</h1> + <p data-testid="content">{post?.content}</p> + </main> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx new file mode 100644 index 00000000..65c42d7d --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/isr/dynamic-params-true/[id]/page.tsx @@ -0,0 +1,45 @@ +import { notFound } from "next/navigation"; + +// We'll prerender only the params from `generateStaticParams` at build time. +// If a request comes in for a path that hasn't been generated, +// Next.js will server-render the page on-demand. +// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamicparams +export const dynamicParams = true; // or false, to 404 on unknown paths + +const POSTS = Array.from({ length: 20 }, (_, i) => ({ + id: String(i + 1), + title: `Post ${i + 1}`, + content: `This is post ${i + 1}`, +})); + +async function fakeGetPostsFetch() { + return POSTS.slice(0, 10); +} + +async function fakeGetPostFetch(id: string) { + return POSTS.find((post) => post.id === id); +} + +export async function generateStaticParams() { + const fakePosts = await fakeGetPostsFetch(); + return fakePosts.map((post) => ({ + id: post.id, + })); +} + +export default async function Page({ params }: { params: Promise<{ id: string }> }) { + const { id } = await params; + const post = await fakeGetPostFetch(id); + if (Number(id) === 1337) { + throw new Error("This is an error!"); + } + if (!post) { + notFound(); + } + return ( + <main> + <h1 data-testid="title">{post.title}</h1> + <p data-testid="content">{post.content}</p> + </main> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/isr/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/isr/page.tsx new file mode 100644 index 00000000..84f0ce7c --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/isr/page.tsx @@ -0,0 +1,9 @@ +async function getTime() { + return new Date().toISOString(); +} + +export const revalidate = 10; +export default async function ISR() { + const time = getTime(); + return <div>Time: {time}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/layout.tsx b/.conflict-base-0/examples/e2e/app-router/app/layout.tsx new file mode 100644 index 00000000..d8bfe657 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/layout.tsx @@ -0,0 +1,19 @@ +import "./globals.css"; + +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Nextjs App Router", + description: "Generated by create next app", +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + <html lang="en"> + <body className={inter.className}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts new file mode 100644 index 00000000..b75c6b80 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/get/dynamic-segments/[slug]/route.ts @@ -0,0 +1,4 @@ +export async function GET(request: Request, { params }: { params: Promise<{ slug: string }> }) { + const { slug } = await params; + return Response.json({ slug }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/get/query/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/get/query/route.ts new file mode 100644 index 00000000..919649d4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/get/query/route.ts @@ -0,0 +1,10 @@ +import type { NextRequest } from "next/server"; + +export function GET(request: NextRequest) { + const searchParams = request.nextUrl.searchParams; + const query = searchParams.get("query"); + if (query === "OpenNext is awesome!") { + return Response.json({ query }); + } + return new Response("Internal Server Error", { status: 500 }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/get/redirect/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/get/redirect/route.ts new file mode 100644 index 00000000..42c56b90 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/get/redirect/route.ts @@ -0,0 +1,5 @@ +import { redirect } from "next/navigation"; + +export async function GET(request: Request) { + redirect("https://nextjs.org/"); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/get/revalidate/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/get/revalidate/route.ts new file mode 100644 index 00000000..593d4290 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/get/revalidate/route.ts @@ -0,0 +1,10 @@ +export const revalidate = 5; + +async function getTime() { + return new Date().toISOString(); +} + +export async function GET() { + const time = await getTime(); + return Response.json({ time }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/get/static/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/get/static/route.ts new file mode 100644 index 00000000..47e2bb70 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/get/static/route.ts @@ -0,0 +1,10 @@ +export const dynamic = "force-static"; + +async function getTime() { + return new Date().toISOString(); +} + +export async function GET() { + const time = await getTime(); + return Response.json({ time }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/post/cookies/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/post/cookies/route.ts new file mode 100644 index 00000000..94459fe2 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/post/cookies/route.ts @@ -0,0 +1,19 @@ +import { cookies } from "next/headers"; + +export async function POST(request: Request) { + const formData = await request.formData(); + const username = formData.get("username"); + const password = formData.get("password"); + if (username === "hakuna" && password === "matata") { + (await cookies()).set("auth_session", "SUPER_SECRET_SESSION_ID_1234"); + return Response.json( + { + message: "ok", + }, + { + status: 202, + } + ); + } + return Response.json({ message: "you must login" }, { status: 401 }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/post/formdata/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/post/formdata/route.ts new file mode 100644 index 00000000..4d01e1fb --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/post/formdata/route.ts @@ -0,0 +1,16 @@ +export async function POST(request: Request) { + const formData = await request.formData(); + const name = formData.get("name"); + const email = formData.get("email"); + if (name === "OpenNext [] () %&#!%$#" && email === "opennext@opennext.com") { + return Response.json( + { + message: "ok", + }, + { + status: 202, + } + ); + } + return Response.json({ message: "forbidden" }, { status: 403 }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/methods/route.ts b/.conflict-base-0/examples/e2e/app-router/app/methods/route.ts new file mode 100644 index 00000000..d007bed7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/methods/route.ts @@ -0,0 +1,76 @@ +import type { NextRequest } from "next/server"; + +export async function GET() { + return Response.json({ + message: "OpenNext is awesome! :) :] :> :D", + }); +} + +export async function POST(request: Request) { + const text = await request.text(); + if (text === "OpenNext is awesome! :] :) :> :D") { + return Response.json( + { + message: "ok", + }, + { + status: 202, + } + ); + } + return Response.json({ message: "forbidden" }, { status: 403 }); +} + +export async function PUT(request: Request) { + const res = (await request.json()) as { + message: string; + }; + if (res.message === "OpenNext PUT") { + return Response.json({ message: "ok" }, { status: 201 }); + } + return Response.json({ message: "error" }, { status: 500 }); +} + +export async function PATCH(request: Request) { + const res = (await request.json()) as { + message: string; + }; + if (res.message === "OpenNext PATCH") { + return Response.json( + { message: "ok", modified: true, timestamp: new Date().toISOString() }, + { status: 202 } + ); + } + return Response.json({ message: "error" }, { status: 500 }); +} + +export async function DELETE(request: NextRequest) { + const searchParams = request.nextUrl.searchParams; + const command = searchParams.get("command"); + if (command === "rm -rf / --no-preserve-root") { + return new Response(null, { status: 204 }); + } + return Response.json({ message: "error" }, { status: 500 }); +} + +export async function HEAD() { + return new Response("hello", { + status: 200, + headers: { + "content-type": "text/html; charset=utf-8", + // Once deployed to AWS this will always be 0 + // "content-length": "1234567", + "special-header": "OpenNext is the best :) :] :> :D", + }, + }); +} + +export async function OPTIONS() { + return new Response(null, { + status: 204, + headers: { + Allow: "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, LOVE", + Special: "OpenNext is the best :) :] :> :D", + }, + }); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/og/opengraph-image.tsx b/.conflict-base-0/examples/e2e/app-router/app/og/opengraph-image.tsx new file mode 100644 index 00000000..913aab52 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/og/opengraph-image.tsx @@ -0,0 +1,38 @@ +import { ImageResponse } from "next/og"; + +// Image metadata +export const alt = "OpenNext"; +export const size = { + width: 1200, + height: 630, +}; + +export const contentType = "image/png"; + +// Image generation +export default async function Image() { + return new ImageResponse( + ( + // ImageResponse JSX element + <div + style={{ + fontSize: 128, + background: "white", + width: "100%", + height: "100%", + display: "flex", + alignItems: "center", + justifyContent: "center", + }} + > + OpenNext + </div> + ), + // ImageResponse options + { + // For convenience, we can re-use the exported opengraph-image + // size config to also set the ImageResponse's width and height. + ...size, + } + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/og/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/og/page.tsx new file mode 100644 index 00000000..e769f647 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/og/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return <div></div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/page.tsx new file mode 100644 index 00000000..e7dfbc8a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/page.tsx @@ -0,0 +1,49 @@ +import Nav from "@example/shared/components/Nav"; + +export default function Home() { + return ( + <> + <h1>Nextjs App Router</h1> + + <main className="grid grid-cols-2 gap-4 p-10 [&>a]:border"> + <Nav href={"/albums"} title="Albums"> + Modal and interception of the greatest hits + </Nav> + <Nav href={"/rewrite"} title="Rewrite"> + Middleware Rewrite of a page. /rewrite should rewrite the contents of /rewrite-destination + </Nav> + <Nav href={"/redirect"} title="Redirect"> + Middleware Rewrite of a page. /redirect should redirect page to /redirect-destination + </Nav> + <Nav href={"/server-actions"} title="Server Actions"> + Client component imports a 'use server' server action and calls it directly without setting up any + api endpoints + </Nav> + <Nav href={"/isr"} title="ISR"> + Incremental Static Regeneration revalidates every 10 seconds with a new timestamp + </Nav> + <Nav href={"/ssr"} title="SSR"> + Server Side Render should generate a new timestamp on each load. Streaming support for loading... + </Nav> + <Nav href={"/api"} title="API"> + Calls an API endpoint defined in app/api/hello/route and middleware + </Nav> + <Nav href={"/parallel"} title="Parallel"> + Parallel routing + </Nav> + <Nav href={"/headers"} title="Headers"> + Headers from middleware should be available via headers() + </Nav> + <Nav href={"/search-query"} title="Search Query"> + Search Query Params should be available in middleware + </Nav> + <Nav href={"/sse"} title="Server Sent Events"> + Server Sent Events via Streaming + </Nav> + <Nav href={"/image-optimization"} title="Image Optimization"> + Image Optimization with next/image + </Nav> + </main> + </> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx new file mode 100644 index 00000000..57b29d0e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/a-page/page.tsx @@ -0,0 +1,3 @@ +export default function APage() { + return <div>A Page</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/page.tsx new file mode 100644 index 00000000..80a57bde --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/@a/page.tsx @@ -0,0 +1,10 @@ +import Link from "next/link"; + +export default function A() { + return ( + <div className="border p-4"> + <h1>Parallel Route A</h1> + <Link href="/parallel/a-page">Go to a-page</Link> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx new file mode 100644 index 00000000..64d0dffe --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/b-page/page.tsx @@ -0,0 +1,3 @@ +export default function BPage() { + return <div>B Page</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/page.tsx new file mode 100644 index 00000000..387c6abc --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/@b/page.tsx @@ -0,0 +1,11 @@ +import Link from "next/link"; + +export default function B() { + return ( + <div className="border p-4"> + <h1>Parallel Route B</h1> + + <Link href="/parallel/b-page">Go to b-page</Link> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/layout.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/layout.tsx new file mode 100644 index 00000000..40dea489 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/layout.tsx @@ -0,0 +1,42 @@ +"use client"; +import { useState } from "react"; + +import type { ReactNode } from "react"; + +export default function Layout({ a, b, children }: { children: ReactNode; a: ReactNode; b: ReactNode }) { + const [routeA, setRouteA] = useState(false); + const [routeB, setRouteB] = useState(false); + + return ( + <div> + <div className="flex flex-col mb-10"> + <label htmlFor="a"> + Enable A + <input + name="a" + type="checkbox" + checked={routeA} + onChange={(e) => { + setRouteA(e.target.checked); + }} + /> + </label> + <label htmlFor="b"> + Enable B + <input + name="b" + type="checkbox" + checked={routeB} + onChange={(e) => { + setRouteB(e.target.checked); + }} + /> + </label> + </div> + + {routeA && a} + {routeB && b} + {/* {children} */} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/parallel/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/parallel/page.tsx new file mode 100644 index 00000000..bdbbeff5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/parallel/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return null; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/redirect-destination/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/redirect-destination/page.tsx new file mode 100644 index 00000000..745019a7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/redirect-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectDestination() { + return <div>Redirect Destination</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/revalidate-path/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/revalidate-path/page.tsx new file mode 100644 index 00000000..96e1eb53 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/revalidate-path/page.tsx @@ -0,0 +1,19 @@ +export default async function Page() { + const responseSST = await fetch("https://sst.dev", { + next: { + tags: ["path"], + }, + }); + // This one doesn't have a tag + const responseOpenNext = await fetch("https://opennext.js.org"); + const reqIdSst = responseSST.headers.get("x-amz-cf-id"); + const dateInOpenNext = responseOpenNext.headers.get("date"); + return ( + <div> + <h1>Request id from SST</h1> + <p>RequestID: {reqIdSst}</p> + <h1>Date from from OpenNext</h1> + <p>Date: {dateInOpenNext}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/layout.tsx b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/layout.tsx new file mode 100644 index 00000000..5c2bebd3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/layout.tsx @@ -0,0 +1,15 @@ +import { unstable_cache } from "next/cache"; +import type { ReactNode } from "react"; + +export default async function Layout({ children }: { children: ReactNode }) { + const fakeFetch = unstable_cache(async () => new Date().getTime(), ["fakeFetch"], { + tags: ["revalidate"], + }); + const fetchedDate = await fakeFetch(); + return ( + <div> + <div>Fetched time: {new Date(fetchedDate).toISOString()}</div> + {children} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx new file mode 100644 index 00000000..77380702 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/nested/page.tsx @@ -0,0 +1,3 @@ +export default async function Nested() { + return <div>Nested</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/page.tsx new file mode 100644 index 00000000..b2f7bac9 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/revalidate-tag/page.tsx @@ -0,0 +1,8 @@ +async function getTime() { + return new Date().toISOString(); +} + +export default async function ISR() { + const time = getTime(); + return <div>Time: {time}</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/rewrite-destination/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/rewrite-destination/page.tsx new file mode 100644 index 00000000..f03449f6 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/rewrite-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RewriteDestination() { + return <div>Rewritten Destination</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/search-query/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/search-query/page.tsx new file mode 100644 index 00000000..3db6e79a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/search-query/page.tsx @@ -0,0 +1,25 @@ +import { headers } from "next/headers"; + +export default async function SearchQuery(props: { + searchParams: Promise<Record<string, string | string[]>>; +}) { + const propsSearchParams = await props.searchParams; + const mwSearchParams = (await headers()).get("search-params"); + const multiValueParams = propsSearchParams.multi; + const multiValueArray = Array.isArray(multiValueParams) ? multiValueParams : [multiValueParams]; + return ( + <> + <h1>Search Query</h1> + <div>Search Params via Props: {propsSearchParams.searchParams}</div> + <div>Search Params via Middleware: {mwSearchParams}</div> + {multiValueParams && ( + <> + <div>Multi-value Params (key: multi): {multiValueArray.length}</div> + {multiValueArray.map((value) => ( + <div>{value}</div> + ))} + </> + )} + </> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/server-actions/client.tsx b/.conflict-base-0/examples/e2e/app-router/app/server-actions/client.tsx new file mode 100644 index 00000000..761e9d2d --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/server-actions/client.tsx @@ -0,0 +1,26 @@ +"use client"; +import { useCallback, useState, useTransition } from "react"; + +import type { Song as SongType } from "@example/shared/api"; +import { getSong } from "@example/shared/api"; +import Song from "@example/shared/components/Album/Song"; + +export default function Client() { + const [isPending, startTransition] = useTransition(); + const [song, setSong] = useState<SongType>(); + + const onClick = useCallback(() => { + startTransition(async () => { + const song = await getSong("Hold Me In Your Arms", "I'm never gonna give you up"); + setSong(song); + }); + }, []); + + return ( + <div> + <button onClick={onClick}>Fire Server Actions</button> + {isPending && <div>☎️ing Server Actions...</div>} + {song && <Song song={song} play />} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/server-actions/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/server-actions/page.tsx new file mode 100644 index 00000000..7c594d54 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/server-actions/page.tsx @@ -0,0 +1,10 @@ +import Client from "./client"; + +export default function Page() { + return ( + <div> + <h1>Server Actions</h1> + <Client /> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/sse/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/sse/page.tsx new file mode 100644 index 00000000..42a1d4ab --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/sse/page.tsx @@ -0,0 +1,36 @@ +"use client"; + +import { useEffect, useState } from "react"; + +export default function SSE() { + const [events, setEvents] = useState<any[]>([]); + + useEffect(() => { + const e = new EventSource("/api/sse"); + + e.onmessage = (msg) => { + console.log(msg); + try { + const data = JSON.parse(msg.data); + if (data.message === "close") { + e.close(); + console.log("closing"); + } + setEvents((prev) => prev.concat(data)); + } catch (err) { + console.log("failed to parse: ", err, msg); + } + }; + }, []); + + return ( + <> + <h1>Server Sent Event</h1> + {events.map((e, i) => ( + <div key={i}> + Message {i}: {JSON.stringify(e)} + </div> + ))} + </> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/ssr/layout.tsx b/.conflict-base-0/examples/e2e/app-router/app/ssr/layout.tsx new file mode 100644 index 00000000..9ec18bbc --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/ssr/layout.tsx @@ -0,0 +1,12 @@ +import type { PropsWithChildren } from "react"; + +export default function Layout({ children }: PropsWithChildren) { + return ( + <div> + <h1>SSR</h1> + {/* 16 kb seems necessary here to prevent any buffering*/} + {/* <Filler size={16} /> */} + {children} + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/ssr/loading.tsx b/.conflict-base-0/examples/e2e/app-router/app/ssr/loading.tsx new file mode 100644 index 00000000..56059e55 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/ssr/loading.tsx @@ -0,0 +1,3 @@ +export default function Loading() { + return <div>Loading...</div>; +} diff --git a/.conflict-base-0/examples/e2e/app-router/app/ssr/page.tsx b/.conflict-base-0/examples/e2e/app-router/app/ssr/page.tsx new file mode 100644 index 00000000..2412320d --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/app/ssr/page.tsx @@ -0,0 +1,25 @@ +import { headers } from "next/headers"; + +async function getTime() { + const res = await new Promise<string>((resolve) => { + setTimeout(() => { + resolve(new Date().toISOString()); + }, 1500); + }); + return res; +} + +export default async function SSR() { + const time = await getTime(); + const headerList = await headers(); + const responseOpenNext = await fetch("https://opennext.js.org", { + cache: "force-cache", + }); + return ( + <div> + <h1>Time: {time}</h1> + <div> {headerList.get("host")}</div> + <p>Cached fetch: {responseOpenNext.headers.get("date")}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/after.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/after.test.ts new file mode 100644 index 00000000..9a7a82f8 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/after.test.ts @@ -0,0 +1,29 @@ +import { expect, test } from "@playwright/test"; + +test("Next after", async ({ request }) => { + const initialSSG = await request.get("/api/after/ssg"); + expect(initialSSG.status()).toEqual(200); + const initialSSGJson = await initialSSG.json(); + + // We then fire a post request that will revalidate the SSG page 5 seconds after, but should respond immediately + const dateNow = Date.now(); + const revalidateSSG = await request.post("/api/after/revalidate"); + expect(revalidateSSG.status()).toEqual(200); + const revalidateSSGJson = await revalidateSSG.json(); + expect(revalidateSSGJson.success).toEqual(true); + // This request should take less than 5 seconds to respond + expect(Date.now() - dateNow).toBeLessThan(5000); + + // We want to immediately check if the SSG page has been revalidated, it should not have been + const notRevalidatedSSG = await request.get("/api/after/ssg"); + expect(notRevalidatedSSG.status()).toEqual(200); + const notRevalidatedSSGJson = await notRevalidatedSSG.json(); + expect(notRevalidatedSSGJson.date).toEqual(initialSSGJson.date); + + // We then wait for 5 seconds to ensure the SSG page has been revalidated + await new Promise((resolve) => setTimeout(resolve, 5000)); + const revalidatedSSG = await request.get("/api/after/ssg"); + expect(revalidatedSSG.status()).toEqual(200); + const revalidatedSSGJson = await revalidatedSSG.json(); + expect(revalidatedSSGJson.date).not.toEqual(initialSSGJson.date); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/api.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/api.test.ts new file mode 100644 index 00000000..be5f7b43 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/api.test.ts @@ -0,0 +1,29 @@ +import { expect, test } from "@playwright/test"; + +test("API call from client", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/client" }).click(); + el = page.getByText('API: { "hello": "client" }'); + await expect(el).toBeVisible(); +}); + +test("API call from middleware", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/middleware" }).click(); + el = page.getByText('API: { "hello": "middleware" }'); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/config.redirect.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/config.redirect.test.ts new file mode 100644 index 00000000..cb6c970e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/config.redirect.test.ts @@ -0,0 +1,75 @@ +import { expect, test } from "@playwright/test"; +/** + * This tests that the "redirect" config in next.config.js works + * + * redirects: () => { + return [ + { + source: "/next-config-redirect", + destination: "/config-redirect", + permanent: true, + missing: [{ type: "cookie", key: "missing-cookie" }], + }, + ]; + }, + */ +test.describe("Next Config Redirect", () => { + test("Missing cookies", async ({ page }) => { + await page.goto("/"); + await page.goto("/next-config-redirect-missing"); + + await page.waitForURL("/config-redirect?missing=true"); + + const el = page.getByText("I was redirected from next.config.js", { + exact: true, + }); + await expect(el).toBeVisible(); + }); + test("Not missing cookies", async ({ page }) => { + await page.goto("/"); + await page.goto("/next-config-redirect-not-missing"); + + // the cookie was not missing, so no redirects + await page.waitForURL("/next-config-redirect-not-missing"); + + const el = page.getByText("This page could not be found.", { + exact: true, + }); + await expect(el).toBeVisible(); + }); + test("Has cookies", async ({ page }) => { + await page.goto("/"); + await page.goto("/next-config-redirect-has"); + + await page.waitForURL("/config-redirect?has=true"); + + const el = page.getByText("I was redirected from next.config.js", { + exact: true, + }); + await expect(el).toBeVisible(); + }); + test("Has cookies with value", async ({ page }) => { + await page.goto("/"); + await page.goto("/next-config-redirect-has-with-value"); + + await page.waitForURL("/config-redirect?hasWithValue=true"); + + const el = page.getByText("I was redirected from next.config.js", { + exact: true, + }); + await expect(el).toBeVisible(); + }); + test("Has cookies with bad value", async ({ page }) => { + await page.goto("/"); + await page.goto("/next-config-redirect-has-with-bad-value"); + + // did not redirect + await page.waitForURL("/next-config-redirect-has-with-bad-value"); + + // 404 not found + const el = page.getByText("This page could not be found.", { + exact: true, + }); + await expect(el).toBeVisible(); + }); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/headers.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/headers.test.ts new file mode 100644 index 00000000..d0ff87b3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/headers.test.ts @@ -0,0 +1,27 @@ +import { expect, test } from "@playwright/test"; + +/** + * Tests that the headers are available in RSC and response headers + */ +test("Headers", async ({ page }) => { + const responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/headers"); + + const response = await responsePromise; + // Response header should be set + const headers = response.headers(); + expect(headers["response-header"]).toEqual("response-header"); + + // The next.config.js headers should be also set in response + expect(headers["e2e-headers"]).toEqual("next.config.js"); + + // Request header should be available in RSC + const el = page.getByText("request-header"); + await expect(el).toBeVisible(); + + // Both these headers should not be present cause poweredByHeader is false in appRouter + expect(headers["x-powered-by"]).toBeFalsy(); + expect(headers["x-opennext"]).toBeFalsy(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/host.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/host.test.ts new file mode 100644 index 00000000..e5f6f3f0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/host.test.ts @@ -0,0 +1,14 @@ +import { expect, test } from "@playwright/test"; + +/** + * Tests that the request.url is the deployed host and not localhost + * + * This test is skipped since e2e tests for the cloudflare adapter + * run only locally to the baseURL doesn't match + */ +test.skip("Request.url is host", async ({ baseURL, page }) => { + await page.goto("/api/host"); + + const el = page.getByText(`{"url":"${baseURL}/api/host"}`); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/image-optimization.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/image-optimization.test.ts new file mode 100644 index 00000000..19f14cd5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/image-optimization.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from "@playwright/test"; + +// Image Optimization is currently not supported: https://github.com/opennextjs/opennextjs-cloudflare/issues/106 +test.skip("Image Optimization", async ({ page }) => { + await page.goto("/"); + + const imageResponsePromise = page.waitForResponse(/https%3A%2F%2Fopennext.js.org%2Farchitecture.png/); + await page.locator('[href="/image-optimization"]').click(); + const imageResponse = await imageResponsePromise; + + await page.waitForURL("/image-optimization"); + + const imageContentType = imageResponse.headers()["content-type"]; + expect(imageContentType).toBe("image/webp"); + + const el = page.locator("img"); + await expect(el).toHaveJSProperty("complete", true); + await expect(el).not.toHaveJSProperty("naturalWidth", 0); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/isr.revalidate.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/isr.revalidate.test.ts new file mode 100644 index 00000000..37062f9b --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/isr.revalidate.test.ts @@ -0,0 +1,13 @@ +import { expect, test } from "@playwright/test"; + +test("Test revalidate", async ({ request }) => { + const result = await request.get("/api/isr"); + + expect(result.status()).toEqual(200); + const json = await result.json(); + const body = json.body; + + expect(json.status).toEqual(200); + expect(body.result).toEqual(true); + expect(body.cacheControl).toEqual("private, no-cache, no-store, max-age=0, must-revalidate"); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/isr.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/isr.test.ts new file mode 100644 index 00000000..57ac62bb --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/isr.test.ts @@ -0,0 +1,162 @@ +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.locator("[href='/isr']").click(); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("Time:"); + // Track the static time + let time = await el.textContent(); + let newTime: typeof time; + let tempTime = time; + do { + await page.waitForTimeout(1000); + await page.reload(); + time = tempTime; + el = page.getByText("Time:"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + await page.waitForTimeout(1000); + el = page.getByText("Time:"); + const midTime = await el.textContent(); + // Expect that the time is still stale + expect(midTime).toEqual(newTime); + + // Wait 10 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(11000); + let finalTime = newTime; + do { + await page.waitForTimeout(2000); + el = page.getByText("Time:"); + finalTime = await el.textContent(); + await page.reload(); + } while (newTime === finalTime); + + expect(newTime).not.toEqual(finalTime); +}); + +test("headers", async ({ page }) => { + let responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/isr"); + + while (true) { + const response = await responsePromise; + const headers = response.headers(); + + // this was set in middleware + if (headers["cache-control"] === "max-age=10, stale-while-revalidate=999") { + break; + } + await page.waitForTimeout(1000); + responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.reload(); + } +}); + +test("Incremental Static Regeneration with data cache", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/isr-data-cache"); + + // Before doing anything else, we need to ensure that there was at least one revalidation, otherwise the first test will fail + // That's because the unstable_cache is not properly populated (build time generated key are different than runtime) + let tempTime = await page.getByTestId("time").textContent(); + do { + await page.waitForTimeout(1000); + tempTime = await page.getByTestId("time").textContent(); + await page.reload(); + } while (tempTime === (await page.getByTestId("time").textContent())); + + const originalFetchedDate = await page.getByTestId("fetched-date").textContent(); + const originalCachedDate = await page.getByTestId("cached-date").textContent(); + const originalTime = await page.getByTestId("time").textContent(); + await page.reload(); + + let finalTime = originalTime; + let finalCachedDate = originalCachedDate; + let finalFetchedDate = originalFetchedDate; + + // Wait 10 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(11000); + do { + await page.waitForTimeout(2000); + finalTime = await page.getByTestId("time").textContent(); + finalCachedDate = await page.getByTestId("cached-date").textContent(); + finalFetchedDate = await page.getByTestId("fetched-date").textContent(); + await page.reload(); + } while (originalTime === finalTime); + + expect(originalTime).not.toEqual(finalTime); + expect(originalCachedDate).toEqual(finalCachedDate); + expect(originalFetchedDate).toEqual(finalFetchedDate); +}); + +test.describe("dynamicParams set to true", () => { + test("should be HIT on a path that was prebuilt", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-true/1"); + expect(res?.status()).toEqual(200); + // TODO: sync this to aws + const cacheHeader = res?.headers()["x-nextjs-cache"] ?? res?.headers()["x-opennext-cache"]; + expect(cacheHeader).toEqual("HIT"); + const title = await page.getByTestId("title").textContent(); + const content = await page.getByTestId("content").textContent(); + expect(title).toEqual("Post 1"); + expect(content).toEqual("This is post 1"); + }); + + // In `next start` this test would fail on subsequent requests because `x-nextjs-cache` would be `HIT` + // However, once deployed to AWS, Cloudfront will cache `MISS` + // We are gonna skip this one for now, turborepo caching can cause this page to be STALE once deployed + test.skip("should SSR on a path that was not prebuilt", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-true/11"); + // TODO: sync this to aws + const cacheHeader = res?.headers()["x-nextjs-cache"] ?? res?.headers()["x-opennext-cache"]; + expect(cacheHeader).toEqual("MISS"); + const title = await page.getByTestId("title").textContent(); + const content = await page.getByTestId("content").textContent(); + expect(title).toEqual("Post 11"); + expect(content).toEqual("This is post 11"); + }); + + test("should 404 when you call notFound", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-true/21"); + expect(res?.status()).toEqual(404); + expect(res?.headers()["cache-control"]).toBe("private, no-cache, no-store, max-age=0, must-revalidate"); + await expect(page.getByText("404")).toBeAttached(); + }); + + test("should 500 for a path that throws an error", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-true/1337"); + expect(res?.status()).toEqual(500); + expect(res?.headers()["cache-control"]).toBe("private, no-cache, no-store, max-age=0, must-revalidate"); + }); +}); + +test.describe("dynamicParams set to false", () => { + test("should be HIT on a path that was prebuilt", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-false/1"); + expect(res?.status()).toEqual(200); + // TODO: sync this to aws + const cacheHeader = res?.headers()["x-nextjs-cache"] ?? res?.headers()["x-opennext-cache"]; + expect(cacheHeader).toEqual("HIT"); + const title = await page.getByTestId("title").textContent(); + const content = await page.getByTestId("content").textContent(); + expect(title).toEqual("Post 1"); + expect(content).toEqual("This is post 1"); + }); + + test("should 404 for a path that is not found", async ({ page }) => { + const res = await page.goto("/isr/dynamic-params-false/11"); + expect(res?.status()).toEqual(404); + expect(res?.headers()["cache-control"]).toBe("private, no-cache, no-store, max-age=0, must-revalidate"); + await expect(page.getByText("404")).toBeAttached(); + }); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/methods.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/methods.test.ts new file mode 100644 index 00000000..aa9229ff --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/methods.test.ts @@ -0,0 +1,170 @@ +import { expect, test } from "@playwright/test"; + +test.describe("all supported methods should work in route handlers", () => { + test("GET", async ({ request }) => { + const getRes = await request.get("/methods"); + const getData = await getRes.json(); + expect(getRes.status()).toEqual(200); + expect(getData.message).toEqual("OpenNext is awesome! :) :] :> :D"); + }); + + test("POST", async ({ request }) => { + const postRes = await request.post("/methods", { + headers: { + "Content-Type": "text/plain", + }, + data: "OpenNext is awesome! :] :) :> :D", + }); + expect(postRes.status()).toBe(202); + const postData = await postRes.json(); + expect(postData.message).toBe("ok"); + const errorPostRes = await request.post("/methods", { + headers: { + "Content-Type": "text/plain", + }, + data: "OpenNext is not awesome! :C", + }); + expect(errorPostRes.status()).toBe(403); + const errorData = await errorPostRes.json(); + expect(errorData.message).toBe("forbidden"); + }); + + test("PUT", async ({ request }) => { + const putRes = await request.put("/methods", { + data: { + message: "OpenNext PUT", + }, + }); + expect(putRes.status()).toEqual(201); + const putData = await putRes.json(); + expect(putData.message).toEqual("ok"); + }); + + test("PATCH", async ({ request }) => { + const timestampBefore = new Date(); + const patchRes = await request.patch("/methods", { + data: { message: "OpenNext PATCH" }, + }); + expect(patchRes.status()).toEqual(202); + const patchData = await patchRes.json(); + expect(patchData.message).toEqual("ok"); + expect(patchData.modified).toEqual(true); + expect(Date.parse(patchData.timestamp)).toBeGreaterThan(timestampBefore.getTime()); + }); + + test("DELETE", async ({ request }) => { + const deleteRes = await request.delete("/methods", { + params: { + command: "rm -rf / --no-preserve-root", + }, + }); + expect(deleteRes.status()).toEqual(204); + }); + + test("HEAD", async ({ request }) => { + const headRes = await request.head("/methods"); + expect(headRes.status()).toEqual(200); + const headers = headRes.headers(); + expect(headers["content-type"]).toEqual("text/html; charset=utf-8"); + // expect(headers["content-length"]).toEqual("1234567"); + expect(headers["special-header"]).toEqual("OpenNext is the best :) :] :> :D"); + }); + + test("OPTIONS", async ({ request }) => { + const optionsRes = await request.fetch("/methods", { + method: "OPTIONS", + }); + expect(optionsRes.status()).toEqual(204); + const headers = optionsRes.headers(); + expect(headers.allow).toBe("GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, LOVE"); + expect(headers.special).toBe("OpenNext is the best :) :] :> :D"); + }); +}); + +test("formData should work in POST route handler", async ({ request }) => { + const formData = new FormData(); + formData.append("name", "OpenNext [] () %&#!%$#"); + formData.append("email", "opennext@opennext.com"); + const postRes = await request.post("/methods/post/formdata", { + form: formData, + }); + expect(postRes.status()).toBe(202); + const postData = await postRes.json(); + expect(postData.message).toBe("ok"); +}); + +test("revalidate should work in GET route handler", async ({ request, page }) => { + let time = Date.parse((await request.get("/methods/get/revalidate").then((res) => res.json())).time); + let newTime: number; + let tempTime = time; + do { + await page.waitForTimeout(1000); + time = tempTime; + const newTimeRes = await request.get("/methods/get/revalidate"); + newTime = Date.parse((await newTimeRes.json()).time); + tempTime = newTime; + } while (time !== newTime); + const midTime = Date.parse((await request.get("/methods/get/revalidate").then((res) => res.json())).time); + + await page.waitForTimeout(1000); + // Expect that the time is still stale + expect(midTime).toEqual(newTime); + + // Wait 5 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(6000); + let finalTime = newTime; + do { + await page.waitForTimeout(2000); + finalTime = Date.parse((await request.get("/methods/get/revalidate").then((res) => res.json())).time); + } while (newTime === finalTime); + + expect(newTime).not.toEqual(finalTime); +}); + +test("should cache a static GET route", async ({ request }) => { + const res = await request.get("/methods/get/static"); + expect(res.headers()["cache-control"]).toContain("s-maxage=31536000"); +}); + +test("should be able to set cookies in route handler", async ({ request }) => { + const postRes = await request.post("/methods/post/cookies", { + form: { + username: "hakuna", + password: "matata", + }, + }); + expect(postRes.status()).toBe(202); + const postData = await postRes.json(); + expect(postData.message).toBe("ok"); + const cookies = postRes.headers()["set-cookie"]; + expect(cookies).toContain("auth_session=SUPER_SECRET_SESSION_ID_1234"); +}); + +test("should be able to redirect in route handler", async ({ request }) => { + const redirectRes = await request.get("/methods/get/redirect", { + // Disable auto-redirect to check initial response + maxRedirects: 0, + }); + expect(redirectRes.status()).toBe(307); + expect(redirectRes.headers().location).toBe("https://nextjs.org/"); + + // Check if the redirect works + const followedRes = await request.get("/methods/get/redirect"); + expect(followedRes.url()).toBe("https://nextjs.org/"); +}); + +test("dynamic segments should work in route handlers", async ({ request }) => { + const res = await request.get("/methods/get/dynamic-segments/this-is-a-slug"); + const data = await res.json(); + expect(data.slug).toBe("this-is-a-slug"); +}); + +test("query parameters should work in route handlers", async ({ request }) => { + const res = await request.get("/methods/get/query", { + params: { + query: "OpenNext is awesome!", + }, + }); + const data = await res.json(); + expect(data.query).toBe("OpenNext is awesome!"); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/middleware.cookies.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.cookies.test.ts new file mode 100644 index 00000000..55cf93e1 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.cookies.test.ts @@ -0,0 +1,36 @@ +import { expect, test } from "@playwright/test"; + +test.describe("Middleware Cookies", () => { + test("should be able to set cookies on response in middleware", async ({ page, context }) => { + await page.goto("/"); + + const cookies = await context.cookies(); + const from = cookies.find(({ name }) => name === "from"); + expect(from?.value).toEqual("middleware"); + + const love = cookies.find(({ name }) => name === "with"); + expect(love?.value).toEqual("love"); + }); + test("should be able to get cookies set in the middleware with Next's cookies().get()", async ({ + page, + }) => { + await page.goto("/cookies"); + + expect(await page.getByTestId("foo").textContent()).toBe("bar"); + }); + test("should not expose internal Next headers in response", async ({ page, context }) => { + const responsePromise = page.waitForResponse((response) => response.url().includes("/cookies")); + + await page.goto("/cookies"); + + const response = await responsePromise; + const headers = response.headers(); + + const cookies = await context.cookies(); + const fooCookie = cookies.find(({ name }) => name === "foo"); + expect(fooCookie?.value).toBe("bar"); + + expect(headers).not.toHaveProperty("x-middleware-set-cookie"); + expect(headers).not.toHaveProperty("x-middleware-next"); + }); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/middleware.redirect.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.redirect.test.ts new file mode 100644 index 00000000..45159b8a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.redirect.test.ts @@ -0,0 +1,38 @@ +import { expect, test } from "@playwright/test"; +import { validateMd5 } from "../../utils"; + +/* + * `curl -s https://opennext.js.org/share.png | md5sum` + * This is the MD5 hash of the image. It is used to validate the image content. + */ +const OPENNEXT_PNG_MD5 = "405f45cc3397b09717a13ebd6f1e027b"; + +test("Middleware Redirect", async ({ page, context }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Redirect" }).click(); + + // URL is immediately redirected + await page.waitForURL("/redirect-destination"); + let el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also redirect + await page.goto("/redirect"); + await page.waitForURL("/redirect-destination"); + expect(await context.cookies().then((res) => res.find((cookie) => cookie.name === "test")?.value)).toBe( + "success" + ); + el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); +}); + +test("Middleware Rewrite External Image", async ({ page }) => { + await page.goto("/rewrite-external"); + page.on("response", async (response) => { + expect(response.status()).toBe(200); + expect(response.headers()["content-type"]).toBe("image/png"); + expect(response.headers()["cache-control"]).toBe("max-age=600"); + const bodyBuffer = await response.body(); + expect(validateMd5(bodyBuffer, OPENNEXT_PNG_MD5)).toBe(true); + }); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/middleware.rewrite.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.rewrite.test.ts new file mode 100644 index 00000000..fb89df14 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/middleware.rewrite.test.ts @@ -0,0 +1,16 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Rewrite", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Rewrite" }).click(); + + await page.waitForURL("/rewrite"); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also rewrite + await page.goto("/rewrite"); + await page.waitForURL("/rewrite"); + el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/modals.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/modals.test.ts new file mode 100644 index 00000000..30b2a248 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/modals.test.ts @@ -0,0 +1,18 @@ +import { expect, test } from "@playwright/test"; + +test("Route modal and interception", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Albums" }).click(); + await page.getByRole("link", { name: "Song: I'm never gonna give you up Year: 1965" }).click(); + + await page.waitForURL(`/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`); + + const modal = page.getByText("Modal", { exact: true }); + await expect(modal).toBeVisible(); + + // Reload the page to load non intercepted modal + await page.reload(); + await page.waitForURL(`/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`); + const notModal = page.getByText("Not Modal", { exact: true }); + await expect(notModal).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/og.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/og.test.ts new file mode 100644 index 00000000..deb896cb --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/og.test.ts @@ -0,0 +1,39 @@ +import { expect, test } from "@playwright/test"; +import { validateMd5 } from "../../utils"; + +// This is the md5sums of the expected PNGs generated with `md5sum <file>` +const OG_MD5 = "6e5e794ac0c27598a331690f96f05d00"; +const API_OG_MD5 = "cac95fc3e2d4d52870c0536bb18ba85b"; + +test("Open-graph image to be in metatags and present", async ({ page, request }) => { + await page.goto("/og"); + + // Wait for meta tags to be present + const ogImageSrc = await page.locator('meta[property="og:image"]').getAttribute("content"); + const ogImageAlt = await page.locator('meta[property="og:image:alt"]').getAttribute("content"); + const ogImageType = await page.locator('meta[property="og:image:type"]').getAttribute("content"); + const ogImageWidth = await page.locator('meta[property="og:image:width"]').getAttribute("content"); + const ogImageHeight = await page.locator('meta[property="og:image:height"]').getAttribute("content"); + + // Verify meta tag exists and is the correct values + expect(ogImageSrc).not.toBe(null); + expect(ogImageAlt).toBe("OpenNext"); + expect(ogImageType).toBe("image/png"); + expect(ogImageWidth).toBe("1200"); + expect(ogImageHeight).toBe("630"); + + // Check if the image source is working + const response = await request.get(`/og/${ogImageSrc?.split("/").at(-1)}`); + expect(response.status()).toBe(200); + expect(response.headers()["content-type"]).toBe("image/png"); + expect(response.headers()["cache-control"]).toBe("public, immutable, no-transform, max-age=31536000"); + expect(validateMd5(await response.body(), OG_MD5)).toBe(true); +}); + +test("next/og (vercel/og) to work in API route", async ({ request }) => { + const response = await request.get("api/og?title=opennext"); + expect(response.status()).toBe(200); + expect(response.headers()["content-type"]).toBe("image/png"); + expect(response.headers()["cache-control"]).toBe("public, immutable, no-transform, max-age=31536000"); + expect(validateMd5(await response.body(), API_OG_MD5)).toBe(true); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/parallel.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/parallel.test.ts new file mode 100644 index 00000000..45ad695a --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/parallel.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test("Parallel routes", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Parallel" }).click(); + + await page.waitForURL("/parallel"); + + // Neither are selected, so A/B shouldn't be rendered + let routeA = page.getByText("Parallel Route A"); + let routeB = page.getByText("Parallel Route B"); + await expect(routeA).not.toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable A, which should be visible but not B + await page.locator('input[name="a"]').check(); + routeA = page.getByText("Parallel Route A"); + await expect(routeA).toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable B, both should be visible + await page.locator('input[name="b"]').check(); + routeB = page.getByText("Parallel Route B"); + await expect(routeA).toBeVisible(); + await expect(routeB).toBeVisible(); + + // Click on A, should go to a-page + await page.getByText("Go to a-page").click(); + await page.waitForURL("/parallel/a-page"); + + // Should render contents of a-page + routeA = page.getByText("A Page"); + await expect(routeA).toBeVisible(); + + // Click on B, should go to b-page + await page.getByText("Go to b-page").click(); + await page.waitForURL("/parallel/b-page"); + + // Should render contents of b-page + routeB = page.getByText("B Page"); + await expect(routeB).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/playwright.config.ts b/.conflict-base-0/examples/e2e/app-router/e2e/playwright.config.ts new file mode 100644 index 00000000..4c7ddb39 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("app-router"); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/query.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/query.test.ts new file mode 100644 index 00000000..ddfdd056 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/query.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from "@playwright/test"; + +/** + * Tests that query params are available in middleware and RSC + */ +test("SearchQuery", async ({ page }) => { + await page.goto("/search-query?searchParams=e2etest&multi=one&multi=two"); + + const propsEl = page.getByText("Search Params via Props: e2etest"); + const mwEl = page.getByText("Search Params via Middleware: mw/e2etest"); + const multiEl = page.getByText("Multi-value Params (key: multi): 2"); + const multiOne = page.getByText("one"); + const multiTwo = page.getByText("two"); + await expect(propsEl).toBeVisible(); + await expect(mwEl).toBeVisible(); + await expect(multiEl).toBeVisible(); + await expect(multiOne).toBeVisible(); + await expect(multiTwo).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/revalidateTag.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/revalidateTag.test.ts new file mode 100644 index 00000000..64c6df71 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/revalidateTag.test.ts @@ -0,0 +1,97 @@ +import { expect, test } from "@playwright/test"; + +test("Revalidate tag", async ({ page, request }) => { + test.setTimeout(45000); + // We need to hit the page twice to make sure it's properly cached + // Turbo might cache next build result, resulting in the tag being newer than the page + // This can lead to the cache thinking that revalidate tag has been called when it hasn't + // This is because S3 cache files are not uploaded if they have the same BuildId + let responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/revalidate-tag"); + await responsePromise; + + responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/revalidate-tag"); + let elLayout = page.getByText("Fetched time:"); + const time = await elLayout.textContent(); + let newTime: typeof time; + + let response = await responsePromise; + const headers = response.headers(); + const nextCacheHeader = headers["x-nextjs-cache"] ?? headers["x-opennext-cache"]; + expect(nextCacheHeader).toMatch(/^(HIT|STALE)$/); + + // Send revalidate tag request + + const result = await request.get("/api/revalidate-tag"); + expect(result.status()).toEqual(200); + const text = await result.text(); + expect(text).toEqual("ok"); + + responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.reload(); + elLayout = page.getByText("Fetched time:"); + newTime = await elLayout.textContent(); + + expect(newTime).not.toEqual(time); + + response = await responsePromise; + expect(response.headers()["x-nextjs-cache"]).toEqual("MISS"); + + //Check if nested page is also a miss + responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/revalidate-tag/nested"); + elLayout = page.getByText("Fetched time:"); + newTime = await elLayout.textContent(); + expect(newTime).not.toEqual(time); + + response = await responsePromise; + expect(response.headers()["x-nextjs-cache"]).toEqual("MISS"); + + // If we hit the page again, it should be a hit + responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/revalidate-tag/nested"); + + response = await responsePromise; + const headersNested = response.headers(); + const nextCacheHeaderNested = headersNested["x-nextjs-cache"] ?? headersNested["x-opennext-cache"]; + expect(nextCacheHeaderNested).toEqual("HIT"); +}); + +test("Revalidate path", async ({ page, request }) => { + await page.goto("/revalidate-path"); + + let elLayout = page.getByText("RequestID:"); + const initialReqId = await elLayout.textContent(); + + elLayout = page.getByText("Date:"); + const initialDate = await elLayout.textContent(); + + // Wait so that enough time passes for the data on the page to update when revalidating + await page.waitForTimeout(2000); + + // Send revalidate path request + const result = await request.get("/api/revalidate-path"); + expect(result.status()).toEqual(200); + const text = await result.text(); + expect(text).toEqual("ok"); + + await page.goto("/revalidate-path"); + elLayout = page.getByText("RequestID:"); + const newReqId = await elLayout.textContent(); + expect(newReqId).not.toEqual(initialReqId); + + elLayout = page.getByText("Date:"); + const newDate = await elLayout.textContent(); + expect(newDate).not.toEqual(initialDate); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/serverActions.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/serverActions.test.ts new file mode 100644 index 00000000..b4c9aa49 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/serverActions.test.ts @@ -0,0 +1,22 @@ +import { expect, test } from "@playwright/test"; + +test("Server Actions", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Server Actions" }).click(); + + await page.waitForURL("/server-actions"); + let el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); + + // Reload page + await page.reload(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/sse.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/sse.test.ts new file mode 100644 index 00000000..b1a0c792 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/sse.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +// NOTE: We don't await page load b/c we want to see the Loading page +test("Server Sent Events", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/sse"]').click(); + await page.waitForURL("/sse"); + + const msg0 = page.getByText(`Message 0: {"message":"open"`); + await expect(msg0).toBeVisible(); + + // 2nd message shouldn't arrive yet + let msg2 = page.getByText(`Message 2: {"message":"hello:2"`); + await expect(msg2).not.toBeVisible(); + await page.waitForTimeout(2000); + // 2nd message should arrive after 2s + msg2 = page.getByText(`Message 2: {"message":"hello:2"`); + await expect(msg2).toBeVisible(); + + // 3rd message shouldn't arrive yet + let msg3 = page.getByText(`Message 3: {"message":"hello:3"`); + await expect(msg3).not.toBeVisible(); + await page.waitForTimeout(2000); + // 3rd message should arrive after 2s + msg3 = page.getByText(`Message 3: {"message":"hello:3"`); + await expect(msg3).toBeVisible(); + + // 4th message shouldn't arrive yet + let msg4 = page.getByText(`Message 4: {"message":"hello:4"`); + await expect(msg4).not.toBeVisible(); + await page.waitForTimeout(2000); + // 4th message should arrive after 2s + msg4 = page.getByText(`Message 4: {"message":"hello:4"`); + await expect(msg4).toBeVisible(); + + let close = page.getByText(`Message 5: {"message":"close"`); + await expect(close).not.toBeVisible(); + + await page.waitForTimeout(2000); + close = page.getByText(`Message 5: {"message":"close"`); + await expect(close).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/ssr.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/ssr.test.ts new file mode 100644 index 00000000..8b3307a3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/ssr.test.ts @@ -0,0 +1,34 @@ +import { expect, test } from "@playwright/test"; + +// NOTE: We don't await page load b/c we want to see the Loading page +test("Server Side Render and loading.tsx", async ({ page }) => { + test.setTimeout(600000); + await page.goto("/"); + await page.getByRole("link", { name: "SSR" }).click(); + await page.waitForURL("/ssr"); + + let loading: any; + let lastTime = ""; + + for (let i = 0; i < 5; i++) { + void page.reload(); + + loading = page.getByText("Loading..."); + await expect(loading).toBeVisible(); + const el = page.getByText("Time:"); + await expect(el).toBeVisible(); + const time = await el.textContent(); + expect(time).not.toEqual(lastTime); + lastTime = time!; + await page.waitForTimeout(1000); + } +}); + +test("Fetch cache properly cached", async ({ page }) => { + await page.goto("/ssr"); + const originalDate = await page.getByText("Cached fetch:").textContent(); + await page.waitForTimeout(2000); + await page.reload(); + const newDate = await page.getByText("Cached fetch:").textContent(); + expect(originalDate).toEqual(newDate); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/e2e/trailing.test.ts b/.conflict-base-0/examples/e2e/app-router/e2e/trailing.test.ts new file mode 100644 index 00000000..de59a408 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/e2e/trailing.test.ts @@ -0,0 +1,20 @@ +import { expect, test } from "@playwright/test"; + +test("trailingSlash redirect", async ({ page }) => { + const response = await page.goto("/ssr/"); + + expect(response?.request().redirectedFrom()?.url()).toMatch(/\/ssr\/$/); + expect(response?.request().url()).toMatch(/\/ssr$/); +}); + +test("trailingSlash redirect with search parameters", async ({ page }) => { + const response = await page.goto("/ssr/?happy=true"); + + expect(response?.request().redirectedFrom()?.url()).toMatch(/\/ssr\/\?happy=true$/); + expect(response?.request().url()).toMatch(/\/ssr\?happy=true$/); +}); + +test("trailingSlash redirect to external domain", async ({ page, baseURL }) => { + const response = await page.goto(`${baseURL}//sst.dev/`); + expect(response?.status()).toBe(404); +}); diff --git a/.conflict-base-0/examples/e2e/app-router/middleware.ts b/.conflict-base-0/examples/e2e/app-router/middleware.ts new file mode 100644 index 00000000..71081bc4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/middleware.ts @@ -0,0 +1,80 @@ +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +export function middleware(request: NextRequest) { + const path = request.nextUrl.pathname; //new URL(request.url).pathname; + + const host = request.headers.get("host"); + const protocol = host?.startsWith("localhost") ? "http" : "https"; + if (path === "/redirect") { + const u = new URL("/redirect-destination", `${protocol}://${host}`); + return NextResponse.redirect(u, { + headers: { "set-cookie": "test=success" }, + }); + } + if (path === "/rewrite") { + const u = new URL("/rewrite-destination", `${protocol}://${host}`); + return NextResponse.rewrite(u); + } + if (path === "/api/middleware") { + return new NextResponse(JSON.stringify({ hello: "middleware" }), { + status: 200, + headers: { + "content-type": "application/json", + }, + }); + } + if (path === "/rewrite-external") { + const u = new URL("https://opennext.js.org/share.png"); + return NextResponse.rewrite(u); + } + if (path === "/cookies") { + const res = NextResponse.next(); + res.cookies.set("foo", "bar"); + return res; + } + const requestHeaders = new Headers(request.headers); + // Setting the Request Headers, this should be available in RSC + requestHeaders.set("request-header", "request-header"); + requestHeaders.set("search-params", `mw/${request.nextUrl.searchParams.get("searchParams") || ""}`); + const responseHeaders = new Headers(); + // Response headers should show up in the client's response headers + responseHeaders.set("response-header", "response-header"); + + // Set the cache control header with custom swr + // For: isr.test.ts + if (path === "/isr" && !request.headers.get("x-prerender-revalidate")) { + responseHeaders.set("cache-control", "max-age=10, stale-while-revalidate=999"); + } + + // It is so that cloudfront doesn't cache the response + if ( + path.startsWith("/revalidate-tag") || + path.startsWith("/revalidate-path") || + path.startsWith("/api/after/ssg") + ) { + responseHeaders.set("cache-control", "private, no-cache, no-store, max-age=0, must-revalidate"); + } + + const r = NextResponse.next({ + headers: responseHeaders, + request: { + headers: requestHeaders, + }, + }); + + // Set cookies in middleware + // For: middleware.cookies.test.ts + r.cookies.set("from", "middleware", { + expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365), + }); + r.cookies.set("with", "love", { + expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365), + }); + + return r; +} + +export const config = { + matcher: ["/((?!_next|favicon.ico|match|static|fonts|api/auth|og).*)"], +}; diff --git a/.conflict-base-0/examples/e2e/app-router/next.config.ts b/.conflict-base-0/examples/e2e/app-router/next.config.ts new file mode 100644 index 00000000..e629b612 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/next.config.ts @@ -0,0 +1,79 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + poweredByHeader: false, + cleanDistDir: true, + transpilePackages: ["@example/shared"], + output: "standalone", + // outputFileTracingRoot: "../sst", + typescript: { + ignoreBuildErrors: true, + }, + eslint: { + ignoreDuringBuilds: true, + }, + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "opennext.js.org", + }, + ], + }, + redirects: async () => { + return [ + { + source: "/next-config-redirect-missing", + destination: "/config-redirect?missing=true", + permanent: true, + missing: [{ type: "cookie", key: "missing-cookie" }], + }, + { + source: "/next-config-redirect-not-missing", + destination: "/config-redirect?missing=true", + permanent: true, + missing: [{ type: "cookie", key: "from" }], // middleware sets this cookie + }, + { + source: "/next-config-redirect-has", + destination: "/config-redirect?has=true", + permanent: true, + has: [{ type: "cookie", key: "from" }], + }, + { + source: "/next-config-redirect-has-with-value", + destination: "/config-redirect?hasWithValue=true", + permanent: true, + has: [{ type: "cookie", key: "from", value: "middleware" }], + }, + { + source: "/next-config-redirect-has-with-bad-value", + destination: "/config-redirect?hasWithBadValue=true", + permanent: true, + has: [{ type: "cookie", key: "from", value: "wrongvalue" }], + }, + { + source: "/next-config-redirect-without-locale-support", + destination: "https://opennext.js.org/", + permanent: false, + basePath: false, + locale: false, + }, + ]; + }, + async headers() { + return [ + { + source: "/(.*)", + headers: [ + { + key: "e2e-headers", + value: "next.config.js", + }, + ], + }, + ]; + }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/e2e/app-router/open-next.config.ts b/.conflict-base-0/examples/e2e/app-router/open-next.config.ts new file mode 100644 index 00000000..40326044 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/open-next.config.ts @@ -0,0 +1,24 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; +import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/r2-incremental-cache"; +import shardedTagCache from "@opennextjs/cloudflare/overrides/tag-cache/do-sharded-tag-cache"; +import doQueue from "@opennextjs/cloudflare/overrides/queue/do-queue"; +import queueCache from "@opennextjs/cloudflare/overrides/queue/queue-cache"; +import { purgeCache } from "@opennextjs/cloudflare/overrides/cache-purge/index"; + +export default defineCloudflareConfig({ + incrementalCache: r2IncrementalCache, + // With such a configuration, we could have up to 12 * (8 + 2) = 120 Durable Objects instances + tagCache: shardedTagCache({ + baseShardSize: 12, + shardReplication: { + numberOfSoftReplicas: 8, + numberOfHardReplicas: 2, + regionalReplication: { + defaultRegion: "enam", + }, + }, + }), + cachePurge: purgeCache({ type: "durableObject" }), + enableCacheInterception: true, + queue: queueCache(doQueue), +}); diff --git a/.conflict-base-0/examples/e2e/app-router/package.json b/.conflict-base-0/examples/e2e/app-router/package.json new file mode 100644 index 00000000..3101e531 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/package.json @@ -0,0 +1,35 @@ +{ + "name": "app-router", + "version": "0.1.4", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --streaming --build-command \"npx turbo build\"", + "dev": "next dev --turbopack --port 3001", + "build": "next build", + "start": "next start --port 3001", + "lint": "next lint", + "clean": "rm -rf .turbo node_modules .next .open-next", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts" + }, + "dependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@example/shared": "workspace:*", + "next": "catalog:e2e", + "react": "catalog:e2e", + "react-dom": "catalog:e2e" + }, + "devDependencies": { + "@playwright/test": "catalog:", + "@types/node": "catalog:e2e", + "@types/react": "catalog:e2e", + "@types/react-dom": "catalog:e2e", + "autoprefixer": "catalog:e2e", + "postcss": "catalog:e2e", + "tailwindcss": "catalog:e2e", + "typescript": "catalog:default", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/e2e/app-router/postcss.config.js b/.conflict-base-0/examples/e2e/app-router/postcss.config.js new file mode 100644 index 00000000..e873f1a4 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/.conflict-base-0/examples/e2e/app-router/public/favicon.ico b/.conflict-base-0/examples/e2e/app-router/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ba005f2c893d9bdce751162e8be142627758eb4 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-router/public/static/corporate_holiday_card.jpg b/.conflict-base-0/examples/e2e/app-router/public/static/corporate_holiday_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0df96ae239c2f5f46bcf9080a2273379254eaf1a GIT binary patch literal 120302 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 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-router/public/static/frank.webp b/.conflict-base-0/examples/e2e/app-router/public/static/frank.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2cc67f0ebd9741dc6e036af19726d3a6b84423e GIT binary patch literal 8830 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/app-router/tailwind.config.ts b/.conflict-base-0/examples/e2e/app-router/tailwind.config.ts new file mode 100644 index 00000000..66dcdc6e --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/tailwind.config.ts @@ -0,0 +1,15 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: ["./app/**/*.{js,ts,jsx,tsx,mdx}", "../../examples/shared/**/*.{jsx,tsx}"], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/.conflict-base-0/examples/e2e/app-router/tsconfig.json b/.conflict-base-0/examples/e2e/app-router/tsconfig.json new file mode 100644 index 00000000..7c5f4684 --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"], + "@example/shared": ["../shared"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "../utils.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/e2e/app-router/wrangler.jsonc b/.conflict-base-0/examples/e2e/app-router/wrangler.jsonc new file mode 100644 index 00000000..94bdb2dd --- /dev/null +++ b/.conflict-base-0/examples/e2e/app-router/wrangler.jsonc @@ -0,0 +1,45 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "app-router", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + }, + "durable_objects": { + "bindings": [ + { + "name": "NEXT_CACHE_DO_QUEUE", + "class_name": "DOQueueHandler" + }, + { + "name": "NEXT_TAG_CACHE_DO_SHARDED", + "class_name": "DOShardedTagCache" + }, + { + "name": "NEXT_CACHE_DO_PURGE", + "class_name": "BucketCachePurge" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_sqlite_classes": ["DOQueueHandler", "DOShardedTagCache", "BucketCachePurge"] + } + ], + "r2_buckets": [ + { + "binding": "NEXT_INC_CACHE_R2_BUCKET", + "bucket_name": "cache" + } + ], + "services": [ + { + "binding": "WORKER_SELF_REFERENCE", + "service": "app-router" + } + ] +} diff --git a/.conflict-base-0/examples/e2e/experimental/.gitignore b/.conflict-base-0/examples/e2e/experimental/.gitignore new file mode 100644 index 00000000..931941e7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/.gitignore @@ -0,0 +1,47 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ \ No newline at end of file diff --git a/.conflict-base-0/examples/e2e/experimental/README.md b/.conflict-base-0/examples/e2e/experimental/README.md new file mode 100644 index 00000000..9fbf1369 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/README.md @@ -0,0 +1,3 @@ +# Experimental + +This project is meant to test experimental features that are only available on canary builds of Next.js. diff --git a/.conflict-base-0/examples/e2e/experimental/e2e/nodeMiddleware.test.ts b/.conflict-base-0/examples/e2e/experimental/e2e/nodeMiddleware.test.ts new file mode 100644 index 00000000..0856301f --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/e2e/nodeMiddleware.test.ts @@ -0,0 +1,32 @@ +import { expect, test } from "@playwright/test"; + +// See https://github.com/opennextjs/opennextjs-cloudflare/issues/617 +test.describe("Node Middleware", () => { + test.skip("Node middleware should add headers", async ({ request }) => { + const resp = await request.get("/"); + expect(resp.status()).toEqual(200); + const headers = resp.headers(); + expect(headers["x-middleware-test"]).toEqual("1"); + expect(headers["x-random-node"]).toBeDefined(); + }); + + test.skip("Node middleware should return json", async ({ request }) => { + const resp = await request.get("/api/hello"); + expect(resp.status()).toEqual(200); + const json = await resp.json(); + expect(json).toEqual({ name: "World" }); + }); + + test.skip("Node middleware should redirect", async ({ page }) => { + await page.goto("/redirect"); + await page.waitForURL("/"); + const el = page.getByText("Incremental PPR"); + await expect(el).toBeVisible(); + }); + + test.skip("Node middleware should rewrite", async ({ page }) => { + await page.goto("/rewrite"); + const el = page.getByText("Incremental PPR"); + await expect(el).toBeVisible(); + }); +}); diff --git a/.conflict-base-0/examples/e2e/experimental/e2e/playwright.config.ts b/.conflict-base-0/examples/e2e/experimental/e2e/playwright.config.ts new file mode 100644 index 00000000..b27f8b9c --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("experimental"); diff --git a/.conflict-base-0/examples/e2e/experimental/e2e/ppr.test.ts b/.conflict-base-0/examples/e2e/experimental/e2e/ppr.test.ts new file mode 100644 index 00000000..369c02a9 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/e2e/ppr.test.ts @@ -0,0 +1,24 @@ +import { expect, test } from "@playwright/test"; + +test.describe("PPR", () => { + test("PPR should show loading first", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Incremental PPR" }).click(); + await page.waitForURL("/ppr"); + const loading = page.getByText("Loading..."); + await expect(loading).toBeVisible(); + const el = page.getByText("Dynamic Component"); + await expect(el).toBeVisible(); + }); + + test("PPR rsc prefetch request should be cached", async ({ request }) => { + const resp = await request.get("/ppr", { + headers: { rsc: "1", "next-router-prefetch": "1" }, + }); + expect(resp.status()).toEqual(200); + const headers = resp.headers(); + expect(headers["x-nextjs-postponed"]).toEqual("1"); + expect(headers["x-nextjs-cache"]).toEqual("HIT"); + expect(headers["cache-control"]).toEqual("s-maxage=31536000"); + }); +}); diff --git a/.conflict-base-0/examples/e2e/experimental/e2e/use-cache.test.ts b/.conflict-base-0/examples/e2e/experimental/e2e/use-cache.test.ts new file mode 100644 index 00000000..3036789f --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/e2e/use-cache.test.ts @@ -0,0 +1,127 @@ +import { expect, test } from "@playwright/test"; + +test.describe("Composable Cache", () => { + test("cached component should work in ssr", async ({ page }) => { + await page.goto("/use-cache/ssr"); + let fullyCachedElt = page.getByTestId("fully-cached"); + let isrElt = page.getByTestId("isr"); + await expect(fullyCachedElt).toBeVisible(); + await expect(isrElt).toBeVisible(); + + const initialFullyCachedText = await fullyCachedElt.textContent(); + const initialIsrText = await isrElt.textContent(); + + let isrText = initialIsrText; + + do { + await page.reload(); + fullyCachedElt = page.getByTestId("fully-cached"); + isrElt = page.getByTestId("isr"); + await expect(fullyCachedElt).toBeVisible(); + await expect(isrElt).toBeVisible(); + isrText = await isrElt.textContent(); + await page.waitForTimeout(1000); + } while (isrText === initialIsrText); + const fullyCachedText = await fullyCachedElt.textContent(); + expect(fullyCachedText).toEqual(initialFullyCachedText); + }); + + test("revalidateTag should work for fullyCached component", async ({ page, request }) => { + await page.goto("/use-cache/ssr"); + const fullyCachedElt = page.getByTestId("fully-cached-with-tag"); + await expect(fullyCachedElt).toBeVisible(); + + const initialFullyCachedText = await fullyCachedElt.textContent(); + + const resp = await request.get("/api/revalidate"); + expect(resp.status()).toEqual(200); + expect(await resp.text()).toEqual("DONE"); + + await page.reload(); + await expect(fullyCachedElt).toBeVisible(); + const newFullyCachedText = await fullyCachedElt.textContent(); + expect(newFullyCachedText).not.toEqual(initialFullyCachedText); + }); + + test("cached component should work in isr", async ({ page }) => { + await page.goto("/use-cache/isr"); + + let fullyCachedElt = page.getByTestId("fully-cached"); + let isrElt = page.getByTestId("isr"); + + await expect(fullyCachedElt).toBeVisible(); + await expect(isrElt).toBeVisible(); + + let initialFullyCachedText = await fullyCachedElt.textContent(); + let initialIsrText = await isrElt.textContent(); + + // We have to force reload until ISR has triggered at least once, otherwise the test will be flakey + + let isrText = initialIsrText; + + while (isrText === initialIsrText) { + await page.reload(); + isrElt = page.getByTestId("isr"); + fullyCachedElt = page.getByTestId("fully-cached"); + await expect(isrElt).toBeVisible(); + isrText = await isrElt.textContent(); + await expect(fullyCachedElt).toBeVisible(); + initialFullyCachedText = await fullyCachedElt.textContent(); + await page.waitForTimeout(1000); + } + initialIsrText = isrText; + + do { + await page.reload(); + fullyCachedElt = page.getByTestId("fully-cached"); + isrElt = page.getByTestId("isr"); + await expect(fullyCachedElt).toBeVisible(); + await expect(isrElt).toBeVisible(); + isrText = await isrElt.textContent(); + await page.waitForTimeout(1000); + } while (isrText === initialIsrText); + const fullyCachedText = await fullyCachedElt.textContent(); + expect(fullyCachedText).toEqual(initialFullyCachedText); + }); + + test("cached fetch should work in ISR", async ({ page }) => { + await page.goto("/use-cache/fetch"); + + let dateElt = page.getByTestId("date"); + await expect(dateElt).toBeVisible(); + + let initialDate = await dateElt.textContent(); + + let isrElt = page.getByTestId("isr"); + await expect(isrElt).toBeVisible(); + let initialIsrText = await isrElt.textContent(); + + // We have to force reload until ISR has triggered at least once, otherwise the test will be flakey + + let isrText = initialIsrText; + + while (isrText === initialIsrText) { + await page.reload(); + isrElt = page.getByTestId("isr"); + dateElt = page.getByTestId("date"); + await expect(isrElt).toBeVisible(); + isrText = await isrElt.textContent(); + await expect(dateElt).toBeVisible(); + initialDate = await dateElt.textContent(); + await page.waitForTimeout(1000); + } + initialIsrText = isrText; + + do { + await page.reload(); + dateElt = page.getByTestId("date"); + isrElt = page.getByTestId("isr"); + await expect(dateElt).toBeVisible(); + await expect(isrElt).toBeVisible(); + isrText = await isrElt.textContent(); + await page.waitForTimeout(1000); + } while (isrText === initialIsrText); + const fullyCachedText = await dateElt.textContent(); + expect(fullyCachedText).toEqual(initialDate); + }); +}); diff --git a/.conflict-base-0/examples/e2e/experimental/next.config.ts b/.conflict-base-0/examples/e2e/experimental/next.config.ts new file mode 100644 index 00000000..ee351d65 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/next.config.ts @@ -0,0 +1,23 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ + cleanDistDir: true, + output: "standalone", + eslint: { + ignoreDuringBuilds: true, + }, + typescript: { + // Ignore type errors during build for now, we'll need to figure this out later + ignoreBuildErrors: true, + }, + experimental: { + ppr: "incremental", + // Node middleware is not supported yet in cloudflare + // See https://github.com/opennextjs/opennextjs-cloudflare/issues/617 + // nodeMiddleware: true, + dynamicIO: true, + }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/e2e/experimental/open-next.config.ts b/.conflict-base-0/examples/e2e/experimental/open-next.config.ts new file mode 100644 index 00000000..ba0aacef --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/open-next.config.ts @@ -0,0 +1,17 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; +import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/r2-incremental-cache"; +import shardedTagCache from "@opennextjs/cloudflare/overrides/tag-cache/do-sharded-tag-cache"; +import doQueue from "@opennextjs/cloudflare/overrides/queue/do-queue"; + +export default defineCloudflareConfig({ + incrementalCache: r2IncrementalCache, + // With such a configuration, we could have up to 12 * (8 + 2) = 120 Durable Objects instances + tagCache: shardedTagCache({ + baseShardSize: 12, + shardReplication: { + numberOfSoftReplicas: 8, + numberOfHardReplicas: 2, + }, + }), + queue: doQueue, +}); diff --git a/.conflict-base-0/examples/e2e/experimental/package.json b/.conflict-base-0/examples/e2e/experimental/package.json new file mode 100644 index 00000000..565d7141 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/package.json @@ -0,0 +1,30 @@ +{ + "name": "experimental", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev --turbopack --port 3004", + "build": "next build", + "start": "next start --port 3004", + "lint": "next lint", + "clean": "rm -rf .turbo node_modules .next .open-next", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts" + }, + "dependencies": { + "@opennextjs/cloudflare": "workspace:*", + "next": "15.4.0-canary.14", + "react": "catalog:e2e", + "react-dom": "catalog:e2e" + }, + "devDependencies": { + "@playwright/test": "catalog:", + "@types/node": "catalog:e2e", + "@types/react": "catalog:e2e", + "@types/react-dom": "catalog:e2e", + "typescript": "catalog:default", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/api/revalidate/route.ts b/.conflict-base-0/examples/e2e/experimental/src/app/api/revalidate/route.ts new file mode 100644 index 00000000..0d55d697 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/api/revalidate/route.ts @@ -0,0 +1,6 @@ +import { revalidateTag } from "next/cache"; + +export function GET() { + revalidateTag("fullyTagged"); + return new Response("DONE"); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/favicon.ico b/.conflict-base-0/examples/e2e/experimental/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/globals.css b/.conflict-base-0/examples/e2e/experimental/src/app/globals.css new file mode 100644 index 00000000..dc19cef7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/globals.css @@ -0,0 +1,42 @@ +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/layout.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/layout.tsx new file mode 100644 index 00000000..e8ae52f0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/layout.tsx @@ -0,0 +1,31 @@ +import "./globals.css"; +import type { Metadata } from "next"; + +import { Geist, Geist_Mono } from "next/font/google"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html lang="en"> + <body className={[geistSans.variable, geistMono.variable].join(" ")}>{children}</body> + </html> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/page.module.css b/.conflict-base-0/examples/e2e/experimental/src/app/page.module.css new file mode 100644 index 00000000..5f59de0d --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/page.module.css @@ -0,0 +1,168 @@ +.page { + --gray-rgb: 0, 0, 0; + --gray-alpha-200: rgba(var(--gray-rgb), 0.08); + --gray-alpha-100: rgba(var(--gray-rgb), 0.05); + + --button-primary-hover: #383838; + --button-secondary-hover: #f2f2f2; + + display: grid; + grid-template-rows: 20px 1fr 20px; + align-items: center; + justify-items: center; + min-height: 100svh; + padding: 80px; + gap: 64px; + font-family: var(--font-geist-sans); +} + +@media (prefers-color-scheme: dark) { + .page { + --gray-rgb: 255, 255, 255; + --gray-alpha-200: rgba(var(--gray-rgb), 0.145); + --gray-alpha-100: rgba(var(--gray-rgb), 0.06); + + --button-primary-hover: #ccc; + --button-secondary-hover: #1a1a1a; + } +} + +.main { + display: flex; + flex-direction: column; + gap: 32px; + grid-row-start: 2; +} + +.main ol { + font-family: var(--font-geist-mono); + padding-left: 0; + margin: 0; + font-size: 14px; + line-height: 24px; + letter-spacing: -0.01em; + list-style-position: inside; +} + +.main li:not(:last-of-type) { + margin-bottom: 8px; +} + +.main code { + font-family: inherit; + background: var(--gray-alpha-100); + padding: 2px 4px; + border-radius: 4px; + font-weight: 600; +} + +.ctas { + display: flex; + gap: 16px; +} + +.ctas a { + appearance: none; + border-radius: 128px; + height: 48px; + padding: 0 20px; + border: none; + border: 1px solid transparent; + transition: + background 0.2s, + color 0.2s, + border-color 0.2s; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + line-height: 20px; + font-weight: 500; +} + +a.primary { + background: var(--foreground); + color: var(--background); + gap: 8px; +} + +a.secondary { + border-color: var(--gray-alpha-200); + min-width: 158px; +} + +.footer { + grid-row-start: 3; + display: flex; + gap: 24px; +} + +.footer a { + display: flex; + align-items: center; + gap: 8px; +} + +.footer img { + flex-shrink: 0; +} + +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + a.primary:hover { + background: var(--button-primary-hover); + border-color: transparent; + } + + a.secondary:hover { + background: var(--button-secondary-hover); + border-color: transparent; + } + + .footer a:hover { + text-decoration: underline; + text-underline-offset: 4px; + } +} + +@media (max-width: 600px) { + .page { + padding: 32px; + padding-bottom: 80px; + } + + .main { + align-items: center; + } + + .main ol { + text-align: center; + } + + .ctas { + flex-direction: column; + } + + .ctas a { + font-size: 14px; + height: 40px; + padding: 0 16px; + } + + a.secondary { + min-width: auto; + } + + .footer { + flex-wrap: wrap; + align-items: center; + justify-content: center; + } +} + +@media (prefers-color-scheme: dark) { + .logo { + filter: invert(); + } +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/page.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/page.tsx new file mode 100644 index 00000000..041ed7dc --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/page.tsx @@ -0,0 +1,14 @@ +import Link from "next/link"; +import styles from "./page.module.css"; + +export default function Home() { + return ( + <div className={styles.page}> + <main className={styles.main}> + <Link href="/ppr"> + <h1 className={styles.title}>Incremental PPR</h1> + </Link> + </main> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/ppr/page.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/ppr/page.tsx new file mode 100644 index 00000000..c252506b --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/ppr/page.tsx @@ -0,0 +1,16 @@ +import { DynamicComponent } from "@/components/dynamic"; +import { StaticComponent } from "@/components/static"; +import { Suspense } from "react"; + +export const experimental_ppr = true; + +export default function PPRPage() { + return ( + <div> + <StaticComponent /> + <Suspense fallback={<div>Loading...</div>}> + <DynamicComponent /> + </Suspense> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx new file mode 100644 index 00000000..f7ebacb7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/fetch/page.tsx @@ -0,0 +1,22 @@ +import { ISRComponent } from "@/components/cached"; +import { Suspense } from "react"; + +async function getFromFetch() { + "use cache"; + // This is a simple fetch to ensure that the cache is working with IO inside + const res = await fetch("https://opennext.js.org"); + return res.headers.get("Date"); +} + +export default async function Page() { + const date = await getFromFetch(); + return ( + <div> + <h1>Cache</h1> + <p data-testid="date">{date}</p> + <Suspense fallback={<p>Loading...</p>}> + <ISRComponent /> + </Suspense> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/isr/page.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/isr/page.tsx new file mode 100644 index 00000000..5d594ca3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/isr/page.tsx @@ -0,0 +1,17 @@ +import { FullyCachedComponent, ISRComponent } from "@/components/cached"; +import { Suspense } from "react"; + +export default async function Page() { + // Not working for now, need a patch in next to disable full revalidation during ISR revalidation + return ( + <div> + <h1>Cache</h1> + <Suspense fallback={<p>Loading...</p>}> + <FullyCachedComponent /> + </Suspense> + <Suspense fallback={<p>Loading...</p>}> + <ISRComponent /> + </Suspense> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/layout.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/layout.tsx new file mode 100644 index 00000000..f75a88df --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/layout.tsx @@ -0,0 +1,14 @@ +import { Suspense } from "react"; + +export default function Layout({ + children, +}: Readonly<{ + // For some reason using ReactNode here causes a type error + children: any; +}>) { + return ( + <div> + <Suspense fallback={<p>Loading...</p>}>{children}</Suspense> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx new file mode 100644 index 00000000..43beae6c --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/app/use-cache/ssr/page.tsx @@ -0,0 +1,23 @@ +import { FullyCachedComponent, FullyCachedComponentWithTag, ISRComponent } from "@/components/cached"; +import { headers } from "next/headers"; +import { Suspense } from "react"; + +export default async function Page() { + // To opt into SSR + const _headers = await headers(); + return ( + <div> + <h1>Cache</h1> + <p>{_headers.get("accept") ?? "No accept headers"}</p> + <Suspense fallback={<p>Loading...</p>}> + <FullyCachedComponent /> + </Suspense> + <Suspense fallback={<p>Loading...</p>}> + <FullyCachedComponentWithTag /> + </Suspense> + <Suspense fallback={<p>Loading...</p>}> + <ISRComponent /> + </Suspense> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/components/cached.tsx b/.conflict-base-0/examples/e2e/experimental/src/components/cached.tsx new file mode 100644 index 00000000..2f299ad8 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/components/cached.tsx @@ -0,0 +1,33 @@ +import { unstable_cacheLife, unstable_cacheTag } from "next/cache"; + +export async function FullyCachedComponent() { + "use cache"; + return ( + <div> + <p data-testid="fully-cached">{Date.now()}</p> + </div> + ); +} + +export async function FullyCachedComponentWithTag() { + "use cache"; + unstable_cacheTag("fullyTagged"); + return ( + <div> + <p data-testid="fully-cached-with-tag">{Date.now()}</p> + </div> + ); +} + +export async function ISRComponent() { + "use cache"; + unstable_cacheLife({ + stale: 1, + revalidate: 5, + }); + return ( + <div> + <p data-testid="isr">{Date.now()}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/components/dynamic.tsx b/.conflict-base-0/examples/e2e/experimental/src/components/dynamic.tsx new file mode 100644 index 00000000..995e6630 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/components/dynamic.tsx @@ -0,0 +1,15 @@ +import { setTimeout } from "node:timers/promises"; +import { headers } from "next/headers"; + +export async function DynamicComponent() { + const _headers = await headers(); + // Simulate a delay to mimic server-side calls + await setTimeout(1000, new Date().toString()); + return ( + <div> + <h1>Dynamic Component</h1> + <p>This component should be SSR</p> + <p>{_headers.get("referer")}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/components/static.tsx b/.conflict-base-0/examples/e2e/experimental/src/components/static.tsx new file mode 100644 index 00000000..8caf6a67 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/components/static.tsx @@ -0,0 +1,8 @@ +export function StaticComponent() { + return ( + <div> + <h1>Static Component</h1> + <p>This is a static component that does not change.</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/experimental/src/middleware.ts b/.conflict-base-0/examples/e2e/experimental/src/middleware.ts new file mode 100644 index 00000000..78027324 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/src/middleware.ts @@ -0,0 +1,30 @@ +// Node middleware is not supported yet in cloudflare +// See https://github.com/opennextjs/opennextjs-cloudflare/issues/617 + +// import crypto from "node:crypto"; +import { type NextRequest, NextResponse } from "next/server"; + +export default function middleware(request: NextRequest) { + if (request.nextUrl.pathname === "/api/hello") { + return NextResponse.json({ + name: "World", + }); + } + if (request.nextUrl.pathname === "/redirect") { + return NextResponse.redirect(new URL("/", request.url)); + } + if (request.nextUrl.pathname === "/rewrite") { + return NextResponse.rewrite(new URL("/", request.url)); + } + + return NextResponse.next({ + headers: { + "x-middleware-test": "1", + // "x-random-node": crypto.randomUUID(), + }, + }); +} + +// export const config = { +// runtime: "nodejs", +// }; diff --git a/.conflict-base-0/examples/e2e/experimental/tsconfig.json b/.conflict-base-0/examples/e2e/experimental/tsconfig.json new file mode 100644 index 00000000..7df89e76 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/.conflict-base-0/examples/e2e/experimental/wrangler.jsonc b/.conflict-base-0/examples/e2e/experimental/wrangler.jsonc new file mode 100644 index 00000000..4348c424 --- /dev/null +++ b/.conflict-base-0/examples/e2e/experimental/wrangler.jsonc @@ -0,0 +1,44 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "experimental", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + }, + "vars": { + "NEXT_PRIVATE_DEBUG_CACHE": true + }, + "durable_objects": { + "bindings": [ + { + "name": "NEXT_CACHE_DO_QUEUE", + "class_name": "DOQueueHandler" + }, + { + "name": "NEXT_TAG_CACHE_DO_SHARDED", + "class_name": "DOShardedTagCache" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_sqlite_classes": ["DOQueueHandler", "DOShardedTagCache"] + } + ], + "r2_buckets": [ + { + "binding": "NEXT_INC_CACHE_R2_BUCKET", + "bucket_name": "cache" + } + ], + "services": [ + { + "binding": "WORKER_SELF_REFERENCE", + "service": "experimental" + } + ] +} diff --git a/.conflict-base-0/examples/e2e/pages-router/.env.production b/.conflict-base-0/examples/e2e/pages-router/.env.production new file mode 100644 index 00000000..82e6f9e7 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/.env.production @@ -0,0 +1 @@ +SOME_PROD_VAR=bar \ No newline at end of file diff --git a/.conflict-base-0/examples/e2e/pages-router/.gitignore b/.conflict-base-0/examples/e2e/pages-router/.gitignore new file mode 100644 index 00000000..93e8ff69 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/.gitignore @@ -0,0 +1,43 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-next +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/.conflict-base-0/examples/e2e/pages-router/README.md b/.conflict-base-0/examples/e2e/pages-router/README.md new file mode 100644 index 00000000..ecdf4f78 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/README.md @@ -0,0 +1,3 @@ +# Pages Router + +This project uses the Pages Router exclusively. diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/404.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/404.test.ts new file mode 100644 index 00000000..ca6c499d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/404.test.ts @@ -0,0 +1,9 @@ +import { expect, test } from "@playwright/test"; + +test("should return 404 on a route not corresponding to any route", async ({ page }) => { + const result = await page.goto("/not-existing/route"); + expect(result).toBeDefined(); + expect(result?.status()).toBe(404); + const headers = result?.headers(); + expect(headers?.["cache-control"]).toBe("private, no-cache, no-store, max-age=0, must-revalidate"); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/amp.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/amp.test.ts new file mode 100644 index 00000000..10ccbdc6 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/amp.test.ts @@ -0,0 +1,15 @@ +import { expect, test } from "@playwright/test"; + +test.describe("next/amp", () => { + // TODO: fix the generated error + // AMP Optimizer ERROR Could not download runtime version from undefined. Falling back to https://cdn.ampproject.org + test.skip("should load and display the timeago component", async ({ page }) => { + await page.goto("/amp"); + const timeago = await page.getByTestId("amp-timeago").textContent(); + // We can safely assume this will always show `just now` as its using `format()` from `timeago.js`. + // It will show `just now` if the time is less than 10s ago. + expect(timeago).toBe("just now"); + const htmlEl = page.locator("html"); + await expect(htmlEl).toHaveAttribute("amp"); + }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/api.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/api.test.ts new file mode 100755 index 00000000..cd4f7163 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/api.test.ts @@ -0,0 +1,43 @@ +import { expect, test } from "@playwright/test"; + +test("should not fail on an api route", async ({ page }) => { + const result = await page.goto("/api/hello"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ hello: "OpenNext rocks!" }); +}); + +test("should work with dynamic api route", async ({ page }) => { + const result = await page.goto("/api/dynamic/opennext"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ slug: "opennext" }); +}); + +test("should work with catch all api route", async ({ page }) => { + const result = await page.goto("/api/dynamic/catch-all/first/second/third"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ slug: ["first", "second", "third"] }); +}); + +test("dynamic route should take precedence over catch all", async ({ page }) => { + const result = await page.goto("/api/dynamic/catch-all"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ slug: "catch-all" }); +}); + +test("should work with optional catch all api route", async ({ page }) => { + const result = await page.goto("/api/dynamic/catch-all-optional"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ optional: "true" }); +}); + +test("predefined api route should take presedence", async ({ page }) => { + const result = await page.goto("/api/dynamic/precedence"); + expect(result?.status()).toBe(200); + const body = await result?.json(); + expect(body).toEqual({ precedence: "true" }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/data.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/data.test.ts new file mode 100644 index 00000000..e0aaaaaa --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/data.test.ts @@ -0,0 +1,21 @@ +import { expect, test } from "@playwright/test"; + +test("fix _next/data", async ({ page }) => { + await page.goto("/"); + + const isrJson = page.waitForResponse("/_next/data/*/en/isr.json"); + await page.locator('[href="/isr/"]').click(); + const response = await isrJson; + expect(response.ok()).toBe(true); + expect(response.request().url()).toMatch(/\/_next\/data\/.*\/en\/isr\.json$/); + await page.waitForURL("/isr/"); + + const homeJson = page.waitForResponse("/_next/data/*/en.json"); + await page.locator('[href="/"]').click(); + const response2 = await homeJson; + expect(response2.ok()).toBe(true); + expect(response2.request().url()).toMatch(/\/_next\/data\/.*\/en\.json$/); + await page.waitForURL("/"); + const body = await response2.json(); + expect(body).toEqual({ pageProps: { hello: "world" }, __N_SSG: true }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/fallback.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/fallback.test.ts new file mode 100755 index 00000000..75571d79 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/fallback.test.ts @@ -0,0 +1,40 @@ +import { expect, test } from "@playwright/test"; + +test.describe("fallback", () => { + test("should work with fully static fallback", async ({ page }) => { + await page.goto("/fallback-intercepted/static/"); + const h1 = page.locator("h1"); + await expect(h1).toHaveText("Static Fallback Page"); + const p = page.getByTestId("message"); + await expect(p).toHaveText("This is a fully static page."); + }); + + test("should work with static fallback", async ({ page }) => { + await page.goto("/fallback-intercepted/ssg/"); + const h1 = page.locator("h1"); + await expect(h1).toHaveText("Static Fallback Page"); + const p = page.getByTestId("message"); + await expect(p).toHaveText("This is a static ssg page."); + }); + + test("should work with fallback intercepted by dynamic route", async ({ page }) => { + await page.goto("/fallback-intercepted/something/"); + const h1 = page.locator("h1"); + await expect(h1).toHaveText("Dynamic Fallback Page"); + const p = page.getByTestId("message"); + await expect(p).toHaveText("This is a dynamic fallback page."); + }); + + test("should work with fallback page pregenerated", async ({ page }) => { + await page.goto("/fallback-intercepted/fallback/"); + const h1 = page.locator("h1"); + await expect(h1).toHaveText("Static Fallback Page"); + const p = page.getByTestId("message"); + await expect(p).toHaveText("This is a static fallback page."); + }); + + test("should 404 on page not pregenerated", async ({ request }) => { + const res = await request.get("/fallback/not-generated"); + expect(res.status()).toBe(404); + }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/head.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/head.test.ts new file mode 100644 index 00000000..63570df2 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/head.test.ts @@ -0,0 +1,21 @@ +import { expect, test } from "@playwright/test"; + +test.describe("next/head", () => { + test("should have the correct title", async ({ page }) => { + await page.goto("/head"); + const title = await page.title(); + expect(title).toBe("OpenNext head"); + }); + test("should have the correct meta tags", async ({ page }) => { + await page.goto("/head"); + const ogTitle = await page.locator('meta[property="og:title"]').getAttribute("content"); + const ogDesc = await page.locator('meta[name="description"]').getAttribute("content"); + const time = await page.locator('meta[property="time"]').getAttribute("content"); + expect(ogTitle).toBe("OpenNext pages router head bar"); + expect(ogDesc).toBe( + "OpenNext takes the Next.js build output and converts it into packages that can be deployed across a variety of environments. Natively OpenNext has support for AWS Lambda, Cloudflare, and classic Node.js Server." + ); + + expect(new Date(time!).getTime()).toBeLessThan(Date.now()); + }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/header.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/header.test.ts new file mode 100644 index 00000000..9c4e4f7c --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/header.test.ts @@ -0,0 +1,12 @@ +import { expect, test } from "@playwright/test"; + +test("should test if poweredByHeader adds the correct headers ", async ({ page }) => { + const result = await page.goto("/"); + expect(result).toBeDefined(); + expect(result?.status()).toBe(200); + const headers = result?.headers(); + + // Both these headers should be present cause poweredByHeader is true in pagesRouter + expect(headers?.["x-powered-by"]).toBe("Next.js"); + expect(headers?.["x-opennext"]).toBe("1"); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/i18n.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/i18n.test.ts new file mode 100644 index 00000000..ae5f6a31 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/i18n.test.ts @@ -0,0 +1,17 @@ +import { expect, test } from "@playwright/test"; + +test("Next config headers with i18n", async ({ page }) => { + const responsePromise = page.waitForResponse((response) => { + return response.status() === 200; + }); + await page.goto("/"); + + const response = await responsePromise; + // Response header should be set + const headers = response.headers(); + // Headers from next.config.js should be set + expect(headers["x-custom-header"]).toEqual("my custom header value"); + + // Headers from middleware should be set + expect(headers["x-from-middleware"]).toEqual("true"); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/isr.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/isr.test.ts new file mode 100644 index 00000000..713bc862 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/isr.test.ts @@ -0,0 +1,41 @@ +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.locator("[href='/isr/']").click(); + await page.waitForURL("/isr/"); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("Time:"); + // Track the static time + let time = await el.textContent(); + let newTime: typeof time; + let tempTime = time; + do { + await page.waitForTimeout(1000); + await page.reload(); + time = tempTime; + el = page.getByText("Time:"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + await page.waitForTimeout(1000); + el = page.getByText("Time:"); + const midTime = await el.textContent(); + // Expect that the time is still stale + expect(midTime).toEqual(newTime); + + // Wait 10 + 1 seconds for ISR to regenerate time + await page.waitForTimeout(11000); + let finalTime = newTime; + do { + await page.waitForTimeout(2000); + el = page.getByText("Time:"); + finalTime = await el.textContent(); + await page.reload(); + } while (newTime === finalTime); + + expect(newTime).not.toEqual(finalTime); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/playwright.config.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/playwright.config.ts new file mode 100644 index 00000000..024a648d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../../common/config-e2e"; + +export default configurePlaywright("pages-router"); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/redirect.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/redirect.test.ts new file mode 100644 index 00000000..b30e3131 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/redirect.test.ts @@ -0,0 +1,25 @@ +import { expect, test } from "@playwright/test"; + +test("Single redirect", async ({ page }) => { + await page.goto("/next-config-redirect-without-locale-support/"); + + await page.waitForURL("https://opennext.js.org/"); + const el = page.getByRole("heading", { name: "OpenNext" }); + await expect(el).toBeVisible(); +}); + +test("Redirect with default locale support", async ({ page }) => { + await page.goto("/redirect-with-locale/"); + + await page.waitForURL("/ssr/"); + const el = page.getByText("SSR"); + await expect(el).toBeVisible(); +}); + +test("Redirect with locale support", async ({ page }) => { + await page.goto("/nl/redirect-with-locale/"); + + await page.waitForURL("/nl/ssr/"); + const el = page.getByText("SSR"); + await expect(el).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/revalidate.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/revalidate.test.ts new file mode 100644 index 00000000..4b3fdd5d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/revalidate.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from "@playwright/test"; + +test("`res.revalidate` should revalidate the ssg page", async ({ page, request }) => { + await page.goto("/ssg/"); + const initialTime = await page.getByTestId("time").textContent(); + + await page.reload(); + const newTime = await page.getByTestId("time").textContent(); + + expect(initialTime).toBe(newTime); + + const revalidateResult = await request.post("/api/revalidate"); + expect(revalidateResult.status()).toBe(200); + expect(await revalidateResult.json()).toEqual({ hello: "OpenNext rocks!" }); + + await page.reload(); + const revalidatedTime = await page.getByTestId("time").textContent(); + expect(initialTime).not.toBe(revalidatedTime); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/rewrite.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/rewrite.test.ts new file mode 100644 index 00000000..0786b652 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/rewrite.test.ts @@ -0,0 +1,37 @@ +import { expect, test } from "@playwright/test"; +import { validateMd5 } from "../../utils"; + +const EXT_PNG_MD5 = "405f45cc3397b09717a13ebd6f1e027b"; + +test("Single Rewrite", async ({ page }) => { + await page.goto("/rewrite"); + + const el = page.getByText("Nextjs Pages Router"); + await expect(el).toBeVisible(); +}); + +test("Rewrite with query", async ({ page }) => { + await page.goto("/rewriteUsingQuery?d=ssr"); + + const el = page.getByText("SSR"); + await expect(el).toBeVisible(); +}); + +test("Rewrite to external image", async ({ request }) => { + const response = await request.get("/external-on-image"); + expect(response.status()).toBe(200); + expect(response.headers()["content-type"]).toBe("image/png"); + expect(validateMd5(await response.body(), EXT_PNG_MD5)).toBe(true); +}); + +test("Rewrite with query in destination", async ({ request }) => { + const response = await request.get("/rewriteWithQuery"); + expect(response.status()).toBe(200); + expect(await response.json()).toEqual({ query: { q: "1" } }); +}); + +test("Rewrite with query should merge query params", async ({ request }) => { + const response = await request.get("/rewriteWithQuery?b=2"); + expect(response.status()).toBe(200); + expect(await response.json()).toEqual({ query: { q: "1", b: "2" } }); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/ssr.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/ssr.test.ts new file mode 100644 index 00000000..c1d81f66 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/ssr.test.ts @@ -0,0 +1,33 @@ +import { expect, test } from "@playwright/test"; + +test("Server Side Render", async ({ page }) => { + await page.goto("/"); + await page.locator('[href="/ssr/"]').click(); + + await page.waitForURL("/ssr/"); + let el = page.getByText("Time:"); + await expect(el).toBeVisible(); + let time = await el.textContent(); + + await page.reload(); + + el = page.getByText("Time:"); + let newTime = await el.textContent(); + await expect(el).toBeVisible(); + + for (let i = 0; i < 5; i++) { + await page.reload(); + el = page.getByText("Time:"); + newTime = await el.textContent(); + await expect(el).toBeVisible(); + expect(time).not.toEqual(newTime); + time = newTime; + await page.waitForTimeout(250); + } +}); + +test("Server Side Render with env", async ({ page }) => { + await page.goto("/ssr/"); + const el = page.getByText("Env:"); + expect(await el.textContent()).toEqual("Env: bar"); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/streaming.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/streaming.test.ts new file mode 100644 index 00000000..348ec26e --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/streaming.test.ts @@ -0,0 +1,48 @@ +import { expect, test } from "@playwright/test"; + +const SADE_SMOOTH_OPERATOR_LYRIC = `Diamond life, lover boy +He move in space with minimum waste and maximum joy +City lights and business nights +When you require streetcar desire for higher heights +No place for beginners or sensitive hearts +When sentiment is left to chance +No place to be ending but somewhere to start +No need to ask, he's a smooth operator +Smooth operator, smooth operator +Smooth operator`; + +test("streaming should work in api route", async ({ page }) => { + await page.goto("/sse"); + + // wait for first line to be present + await page.getByTestId("line").first().waitFor(); + const initialLines = await page.getByTestId("line").count(); + // fail if all lines appear at once + // this is a safeguard to ensure that the response is streamed and not buffered all at once + expect(initialLines).toBe(1); + + const seenLines: Array<{ line: string; time: number }> = []; + const startTime = Date.now(); + + // we loop until we see all lines + while (seenLines.length < SADE_SMOOTH_OPERATOR_LYRIC.split("\n").length) { + const lines = await page.getByTestId("line").all(); + if (lines.length > seenLines.length) { + expect(lines.length).toBe(seenLines.length + 1); + const newLine = lines[lines.length - 1]; + seenLines.push({ + line: await newLine.innerText(), + time: Date.now() - startTime, + }); + } + // wait for a bit before checking again + await page.waitForTimeout(200); + } + + expect(seenLines.map((n) => n.line)).toEqual(SADE_SMOOTH_OPERATOR_LYRIC.split("\n")); + for (let i = 1; i < seenLines.length; i++) { + expect(seenLines[i].time - seenLines[i - 1].time).toBeGreaterThan(500); + } + + await expect(page.getByTestId("video")).toBeVisible(); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/e2e/trailing.test.ts b/.conflict-base-0/examples/e2e/pages-router/e2e/trailing.test.ts new file mode 100644 index 00000000..7b20c19b --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/e2e/trailing.test.ts @@ -0,0 +1,15 @@ +import { expect, test } from "@playwright/test"; + +test("trailingSlash redirect", async ({ page }) => { + const response = await page.goto("/ssr"); + + expect(response?.request().redirectedFrom()?.url()).toMatch(/\/ssr$/); + expect(response?.request().url()).toMatch(/\/ssr\/$/); +}); + +test("trailingSlash redirect with search parameters", async ({ page }) => { + const response = await page.goto("/ssr?happy=true"); + + expect(response?.request().redirectedFrom()?.url()).toMatch(/\/ssr\?happy=true$/); + expect(response?.request().url()).toMatch(/\/ssr\/\?happy=true$/); +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/next.config.ts b/.conflict-base-0/examples/e2e/pages-router/next.config.ts new file mode 100644 index 00000000..1fafa825 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/next.config.ts @@ -0,0 +1,68 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + transpilePackages: ["@example/shared", "react", "react-dom"], + i18n: { + locales: ["en", "nl"], + defaultLocale: "en", + }, + cleanDistDir: true, + reactStrictMode: true, + output: "standalone", + // outputFileTracingRoot: "../sst", + typescript: { + ignoreBuildErrors: true, + }, + eslint: { + ignoreDuringBuilds: true, + }, + headers: async () => [ + { + source: "/", + headers: [ + { + key: "x-custom-header", + value: "my custom header value", + }, + ], + }, + ], + rewrites: async () => [ + { source: "/rewrite", destination: "/", locale: false }, + { source: "/rewriteWithQuery", destination: "/api/query?q=1" }, + { + source: "/rewriteUsingQuery", + destination: "/:destination/", + locale: false, + has: [ + { + type: "query", + key: "d", + value: "(?<destination>\\w+)", + }, + ], + }, + { + source: "/external-on-image", + destination: "https://opennext.js.org/share.png", + }, + ], + redirects: async () => [ + { + source: "/next-config-redirect-without-locale-support/", + destination: "https://opennext.js.org/", + permanent: false, + basePath: false, + locale: false, + }, + { + source: "/redirect-with-locale/", + destination: "/ssr/", + permanent: false, + }, + ], + trailingSlash: true, + poweredByHeader: true, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/e2e/pages-router/open-next.config.ts b/.conflict-base-0/examples/e2e/pages-router/open-next.config.ts new file mode 100644 index 00000000..b255c484 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/open-next.config.ts @@ -0,0 +1,8 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; +import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/r2-incremental-cache"; +import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue"; + +export default defineCloudflareConfig({ + incrementalCache: r2IncrementalCache, + queue: memoryQueue, +}); diff --git a/.conflict-base-0/examples/e2e/pages-router/package.json b/.conflict-base-0/examples/e2e/pages-router/package.json new file mode 100644 index 00000000..ab2d9f9d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/package.json @@ -0,0 +1,35 @@ +{ + "name": "pages-router", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --build-command \"npx turbo build\"", + "dev": "next dev --turbopack --port 3002", + "build": "next build", + "start": "next start --port 3002", + "lint": "next lint", + "clean": "rm -rf .turbo node_modules .next .open-next", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts" + }, + "dependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@example/shared": "workspace:*", + "next": "catalog:e2e", + "react": "catalog:e2e", + "react-dom": "catalog:e2e" + }, + "devDependencies": { + "@playwright/test": "catalog:", + "@types/node": "catalog:e2e", + "@types/react": "catalog:e2e", + "@types/react-dom": "catalog:e2e", + "autoprefixer": "catalog:e2e", + "postcss": "catalog:e2e", + "tailwindcss": "catalog:e2e", + "typescript": "catalog:default", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/e2e/pages-router/postcss.config.js b/.conflict-base-0/examples/e2e/pages-router/postcss.config.js new file mode 100644 index 00000000..148e1d1b --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/postcss.config.js @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + tailwindcss: { + content: ["./src/**/*.{js,ts,jsx,tsx,mdx}", "../../examples/shared/**/*.{jsx,tsx}"], + }, + autoprefixer: {}, + }, +}; diff --git a/.conflict-base-0/examples/e2e/pages-router/public/favicon.ico b/.conflict-base-0/examples/e2e/pages-router/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ba005f2c893d9bdce751162e8be142627758eb4 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/pages-router/public/static/frank.webp b/.conflict-base-0/examples/e2e/pages-router/public/static/frank.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2cc67f0ebd9741dc6e036af19726d3a6b84423e GIT binary patch literal 8830 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/e2e/pages-router/src/middleware.ts b/.conflict-base-0/examples/e2e/pages-router/src/middleware.ts new file mode 100644 index 00000000..6be9a775 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/middleware.ts @@ -0,0 +1,14 @@ +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +export function middleware(request: NextRequest) { + return NextResponse.next({ + headers: { + "x-from-middleware": "true", + }, + }); +} + +export const config = { + matcher: ["/"], +}; diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/_app.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/_app.tsx new file mode 100644 index 00000000..8db0344e --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/_app.tsx @@ -0,0 +1,7 @@ +import "@/styles/globals.css"; + +import type { AppProps } from "next/app"; + +export default function App({ Component, pageProps }: AppProps) { + return <Component {...pageProps} />; +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/_document.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/_document.tsx new file mode 100644 index 00000000..574203a2 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Head, Html, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + <Html lang="en"> + <Head /> + <body> + <Main /> + <NextScript /> + </body> + </Html> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/amp/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/amp/index.tsx new file mode 100644 index 00000000..f22cc320 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/amp/index.tsx @@ -0,0 +1,39 @@ +/* + * When doing `next build` you would get the error below: + * TypeScript error: Property 'amp-timeago' does not exist on type 'JSX.IntrinsicElements'. + * https://stackoverflow.com/questions/50585952/property-amp-img-does-not-exist-on-type-jsx-intrinsicelements/50601125#50601125 + * The workaround in that SO post doesn't work in this (mono)repo so I ended up using @ts-expect-error and @ts-ignore + * + */ + +export const config = { amp: true }; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + }, + }; +} + +function MyAmpPage({ time }: { time: string }) { + const date = new Date(time); + + return ( + <div> + <p>Some time: {date.toJSON()}</p> + {/* @ts-expect-error AMP Component not recognized by TypeScript */} + <amp-timeago + width="0" + height="15" + datetime={date.toJSON()} + layout="responsive" + data-testid="amp-timeago" + > + .{/* @ts-ignore */} + </amp-timeago> + </div> + ); +} + +export default MyAmpPage; diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts new file mode 100755 index 00000000..eb0b9380 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/[slug].ts @@ -0,0 +1,6 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { slug } = req.query; + res.status(200).json({ slug }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts new file mode 100755 index 00000000..ac3a212f --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all-optional/[[...slug]].ts @@ -0,0 +1,5 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({ optional: "true" }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts new file mode 100755 index 00000000..c07fb5f3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/catch-all/[...slug].ts @@ -0,0 +1,9 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { slug } = req.query; + if (!Array.isArray(slug)) { + return res.status(500).json({ error: "Invalid" }); + } + res.status(200).json({ slug }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts new file mode 100755 index 00000000..2f97dd3b --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/dynamic/precedence/index.ts @@ -0,0 +1,5 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({ precedence: "true" }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/hello.ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/hello.ts new file mode 100755 index 00000000..6504522d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/hello.ts @@ -0,0 +1,10 @@ +// Next.js API route support: https://nextjs.org/docs/pages/building-your-application/routing/api-routes +import type { NextApiRequest, NextApiResponse } from "next"; + +type Data = { + hello: string; +}; + +export default function handler(req: NextApiRequest, res: NextApiResponse<Data>) { + res.status(200).json({ hello: "OpenNext rocks!" }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/query.ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/query.ts new file mode 100644 index 00000000..a850c81b --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/query.ts @@ -0,0 +1,5 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({ query: req.query }); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/revalidate.ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/revalidate.ts new file mode 100644 index 00000000..007bb9f5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/revalidate.ts @@ -0,0 +1,11 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + try { + await res.revalidate("/ssg/"); + return res.json({ hello: "OpenNext rocks!" }); + } catch (e) { + console.error(e); + return res.status(500).json({ error: "An error occurred" }); + } +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/api/streaming/index.ts b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/streaming/index.ts new file mode 100644 index 00000000..8860b1b5 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/api/streaming/index.ts @@ -0,0 +1,42 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +const SADE_SMOOTH_OPERATOR_LYRIC = `Diamond life, lover boy +He move in space with minimum waste and maximum joy +City lights and business nights +When you require streetcar desire for higher heights +No place for beginners or sensitive hearts +When sentiment is left to chance +No place to be ending but somewhere to start +No need to ask, he's a smooth operator +Smooth operator, smooth operator +Smooth operator`; + +function sleep(ms: number) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + if (req.method !== "GET") { + return res.status(405).json({ message: "Method not allowed" }); + } + + res.setHeader("Content-Type", "text/event-stream"); + res.setHeader("Connection", "keep-alive"); + res.setHeader("Cache-Control", "no-cache, no-transform"); + res.setHeader("Transfer-Encoding", "chunked"); + + res.write(`data: ${JSON.stringify({ type: "start", model: "ai-lyric-model" })}\n\n`); + await sleep(1000); + + const lines = SADE_SMOOTH_OPERATOR_LYRIC.split("\n"); + for (const line of lines) { + res.write(`data: ${JSON.stringify({ type: "content", body: line })}\n\n`); + await sleep(1000); + } + + res.write(`data: ${JSON.stringify({ type: "complete" })}\n\n`); + + res.end(); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx new file mode 100755 index 00000000..cdfcd57f --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[...slugs].tsx @@ -0,0 +1,18 @@ +import type { InferGetServerSidePropsType } from "next"; + +export function getServerSideProps() { + return { + props: { + message: "This is a dynamic fallback page.", + }, + }; +} + +export default function Page({ message }: InferGetServerSidePropsType<typeof getServerSideProps>) { + return ( + <div> + <h1>Dynamic Fallback Page</h1> + <p data-testid="message">{message}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx new file mode 100755 index 00000000..04304638 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/[slug].tsx @@ -0,0 +1,31 @@ +import type { InferGetStaticPropsType } from "next"; + +export function getStaticPaths() { + return { + paths: [ + { + params: { + slug: "fallback", + }, + }, + ], + fallback: false, + }; +} + +export function getStaticProps() { + return { + props: { + message: "This is a static fallback page.", + }, + }; +} + +export default function Page({ message }: InferGetStaticPropsType<typeof getStaticProps>) { + return ( + <div> + <h1>Static Fallback Page</h1> + <p data-testid="message">{message}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx new file mode 100755 index 00000000..60ca3b0d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/ssg.tsx @@ -0,0 +1,18 @@ +import type { InferGetStaticPropsType } from "next"; + +export function getStaticProps() { + return { + props: { + message: "This is a static ssg page.", + }, + }; +} + +export default function Page({ message }: InferGetStaticPropsType<typeof getStaticProps>) { + return ( + <div> + <h1>Static Fallback Page</h1> + <p data-testid="message">{message}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx new file mode 100755 index 00000000..f40ddb4d --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback-intercepted/static.tsx @@ -0,0 +1,8 @@ +export default function Page() { + return ( + <div> + <h1>Static Fallback Page</h1> + <p data-testid="message">This is a fully static page.</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback/[slug].tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback/[slug].tsx new file mode 100755 index 00000000..04304638 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/fallback/[slug].tsx @@ -0,0 +1,31 @@ +import type { InferGetStaticPropsType } from "next"; + +export function getStaticPaths() { + return { + paths: [ + { + params: { + slug: "fallback", + }, + }, + ], + fallback: false, + }; +} + +export function getStaticProps() { + return { + props: { + message: "This is a static fallback page.", + }, + }; +} + +export default function Page({ message }: InferGetStaticPropsType<typeof getStaticProps>) { + return ( + <div> + <h1>Static Fallback Page</h1> + <p data-testid="message">{message}</p> + </div> + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/head/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/head/index.tsx new file mode 100644 index 00000000..7c9f3bae --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/head/index.tsx @@ -0,0 +1,28 @@ +import type { InferGetServerSidePropsType } from "next"; +import Head from "next/head"; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + envVar: process.env.SOME_PROD_VAR, + }, + }; +} + +export default function Page({ time, envVar }: InferGetServerSidePropsType<typeof getServerSideProps>) { + return ( + <div> + <Head> + <title>OpenNext head + + + + +

This is a page!

+ + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/index.tsx new file mode 100644 index 00000000..fdb582c2 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/index.tsx @@ -0,0 +1,34 @@ +import Nav from "@example/shared/components/Nav"; +import Head from "next/head"; + +// Not used, but necessary to get prefetching to work +export function getStaticProps() { + return { + props: { + hello: "world", + }, + }; +} + +export default function Home() { + return ( + <> + + Nextjs Pages Router + + + +
+

Nextjs Pages Router

+
+ + +
+
+ + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/isr/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/isr/index.tsx new file mode 100644 index 00000000..4992afd6 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/isr/index.tsx @@ -0,0 +1,20 @@ +import type { InferGetStaticPropsType } from "next"; +import Link from "next/link"; + +export async function getStaticProps() { + return { + props: { + time: new Date().toISOString(), + }, + revalidate: 10, + }; +} + +export default function Page({ time }: InferGetStaticPropsType) { + return ( +
+
Time: {time}
+ Home +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/sse/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/sse/index.tsx new file mode 100644 index 00000000..9e29879c --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/sse/index.tsx @@ -0,0 +1,74 @@ +"use client"; + +import { useEffect, useState } from "react"; + +type Event = { + type: "start" | "content" | "complete"; + model?: string; + body?: string; +}; + +export default function SSE() { + const [events, setEvents] = useState([]); + const [finished, setFinished] = useState(false); + + useEffect(() => { + const e = new EventSource("/api/streaming"); + + e.onmessage = (msg) => { + console.log(msg); + try { + const data = JSON.parse(msg.data) as Event; + if (data.type === "complete") { + e.close(); + setFinished(true); + } + if (data.type === "content") { + setEvents((prev) => prev.concat(data)); + } + } catch (err) { + console.error(err, msg); + } + }; + }, []); + + return ( +
+

+ Sade - Smooth Operator +

+
+ {events.map((e, i) => ( +

+ {e.body} +

+ ))} +
+ {finished && ( + + )} +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/ssg/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/ssg/index.tsx new file mode 100644 index 00000000..34bad8de --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/ssg/index.tsx @@ -0,0 +1,21 @@ +import type { InferGetStaticPropsType } from "next"; +import Link from "next/link"; + +export async function getStaticProps() { + return { + props: { + time: new Date().toISOString(), + }, + }; +} + +export default function Page({ time }: InferGetStaticPropsType) { + return ( +
+
+ Time: {time} +
+ Home +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/pages/ssr/index.tsx b/.conflict-base-0/examples/e2e/pages-router/src/pages/ssr/index.tsx new file mode 100644 index 00000000..10163903 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/pages/ssr/index.tsx @@ -0,0 +1,20 @@ +import type { InferGetServerSidePropsType } from "next"; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + envVar: process.env.SOME_PROD_VAR, + }, + }; +} + +export default function Page({ time, envVar }: InferGetServerSidePropsType) { + return ( + <> +

SSR

+
Time: {time}
+
Env: {envVar}
+ + ); +} diff --git a/.conflict-base-0/examples/e2e/pages-router/src/styles/globals.css b/.conflict-base-0/examples/e2e/pages-router/src/styles/globals.css new file mode 100644 index 00000000..e5414503 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/src/styles/globals.css @@ -0,0 +1,95 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --max-width: 1100px; + --border-radius: 12px; + --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", + "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace; + + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; + + --primary-glow: conic-gradient( + from 180deg at 50% 50%, + #16abff33 0deg, + #0885ff33 55deg, + #54d6ff33 120deg, + #0071ff33 160deg, + transparent 360deg + ); + --secondary-glow: radial-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); + + --tile-start-rgb: 239, 245, 249; + --tile-end-rgb: 228, 232, 233; + --tile-border: conic-gradient(#00000080, #00000040, #00000030, #00000020, #00000010, #00000010, #00000080); + + --callout-rgb: 238, 240, 241; + --callout-border-rgb: 172, 175, 176; + --card-rgb: 180, 185, 188; + --card-border-rgb: 131, 134, 135; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + + --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); + --secondary-glow: linear-gradient( + to bottom right, + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0.3) + ); + + --tile-start-rgb: 2, 13, 46; + --tile-end-rgb: 2, 5, 19; + --tile-border: conic-gradient( + #ffffff80, + #ffffff40, + #ffffff30, + #ffffff20, + #ffffff10, + #ffffff10, + #ffffff80 + ); + + --callout-rgb: 20, 20, 20; + --callout-border-rgb: 108, 108, 108; + --card-rgb: 100, 100, 100; + --card-border-rgb: 200, 200, 200; + } +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) + rgb(var(--background-start-rgb)); +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/.conflict-base-0/examples/e2e/pages-router/tsconfig.json b/.conflict-base-0/examples/e2e/pages-router/tsconfig.json new file mode 100644 index 00000000..1094daea --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"], + "@example/shared": ["../shared"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../utils.ts"], + "exclude": ["node_modules", "open-next.config.ts"] +} diff --git a/.conflict-base-0/examples/e2e/pages-router/wrangler.jsonc b/.conflict-base-0/examples/e2e/pages-router/wrangler.jsonc new file mode 100644 index 00000000..6c5c5227 --- /dev/null +++ b/.conflict-base-0/examples/e2e/pages-router/wrangler.jsonc @@ -0,0 +1,23 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "pages-router", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + }, + "r2_buckets": [ + { + "binding": "NEXT_INC_CACHE_R2_BUCKET", + "bucket_name": "cache" + } + ], + "services": [ + { + "binding": "WORKER_SELF_REFERENCE", + "service": "pages-router" + } + ] +} diff --git a/.conflict-base-0/examples/e2e/shared/api/index.ts b/.conflict-base-0/examples/e2e/shared/api/index.ts new file mode 100644 index 00000000..0f68c53f --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/api/index.ts @@ -0,0 +1,37 @@ +"use server"; +import data from "./songs.json"; + +export type Song = (typeof data.songs)[0]; +export type Album = { album: string; artist: string; songs: Song[] }; +const albumsMap: { [key: string]: Song[] } = {}; + +const albums: Album[] = []; +data.songs.forEach((s) => { + if (!albumsMap[s.album]) { + albumsMap[s.album] = [s]; + } else { + albumsMap[s.album].push(s); + } +}); + +Object.entries(albumsMap).forEach(([key, album]) => { + albums.push({ + album: album[0].album, + artist: album[0].artist, + songs: album, + }); +}); + +export async function getAlbums() { + return albums; +} + +export async function getSongs() { + return data.songs; +} + +export async function getSong(album: string, title: string) { + return data.songs.find( + (song) => song.album === decodeURIComponent(album) && song.title === decodeURIComponent(title) + ); +} diff --git a/.conflict-base-0/examples/e2e/shared/api/songs.json b/.conflict-base-0/examples/e2e/shared/api/songs.json new file mode 100644 index 00000000..1edb339b --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/api/songs.json @@ -0,0 +1,36 @@ +{ + "songs": [ + { + "rank": 1, + "title": "I'm never gonna give you up", + "artist": "Rick Astley", + "album": "Hold Me In Your Arms", + "year": "1965", + "videoId": "dQw4w9WgXcQ" + }, + { + "rank": 2, + "title": "My Wang", + "artist": "Frank Wangnatra", + "album": "@franjiewang", + "year": "2023", + "videoId": "qQzdAsjWGPg" + }, + { + "rank": 3, + "title": "Excuse me miSST", + "artist": "Jay-Air", + "album": "@Jayair", + "year": "2023", + "videoId": "tnDh0JhmaFw" + }, + { + "rank": 4, + "title": "I don't want another CONSOLE-RRY", + "artist": "Dax", + "album": "@thxdr", + "year": "2023", + "videoId": "4JI70_9acgE" + } + ] +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Album/Album.tsx b/.conflict-base-0/examples/e2e/shared/components/Album/Album.tsx new file mode 100644 index 00000000..698acfcc --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Album/Album.tsx @@ -0,0 +1,17 @@ +import type { Album } from "../../api/index"; +import Song from "./Song"; + +type Props = { + album: Album; +}; +export default function Album({ album }: Props) { + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + ))} +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Album/Song.tsx b/.conflict-base-0/examples/e2e/shared/components/Album/Song.tsx new file mode 100644 index 00000000..3d878f9f --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Album/Song.tsx @@ -0,0 +1,23 @@ +import type { Song } from "../../api/index"; + +type Props = { + song: Song; + play?: boolean; +}; +export default function Song({ song, play }: Props) { + return ( +
+
Song: {song.title}
+
Year: {song.year}
+ {play && ( + + )} +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Album/index.tsx b/.conflict-base-0/examples/e2e/shared/components/Album/index.tsx new file mode 100644 index 00000000..ada01e1d --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Album/index.tsx @@ -0,0 +1,21 @@ +import Link from "next/link"; + +import type { Album } from "../../api/index"; +import Song from "./Song"; + +type Props = { + album: Album; +}; +export default function Album({ album }: Props) { + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + + + ))} +
+ ); +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Filler/index.tsx b/.conflict-base-0/examples/e2e/shared/components/Filler/index.tsx new file mode 100644 index 00000000..543e48eb --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Filler/index.tsx @@ -0,0 +1,13 @@ +interface FillerProps { + // Size in kb of the filler + size: number; +} + +//This component is there to demonstrate how you could bypass streaming buffering in aws lambda. +//Hopefully, this will be fixed in the future and this component will be removed. +// https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/issues/94 +export default function Filler({ size }: FillerProps) { + const str = "a".repeat(size * 1024); + const byteSize = new TextEncoder().encode(str).length; + return ; +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Modal/index.tsx b/.conflict-base-0/examples/e2e/shared/components/Modal/index.tsx new file mode 100644 index 00000000..1ebe754b --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Modal/index.tsx @@ -0,0 +1,51 @@ +"use client"; +import { useCallback, useEffect, useRef } from "react"; + +import { useRouter } from "next/navigation"; +import type { MouseEventHandler } from "react"; + +export default function Modal({ children }: { children: React.ReactNode }) { + const overlay = useRef(null); + const wrapper = useRef(null); + const router = useRouter(); + + const onDismiss = useCallback(() => { + router.back(); + }, [router]); + + const onClick: MouseEventHandler = useCallback( + (e) => { + if (onDismiss && (e.target === overlay.current || e.target === wrapper.current)) { + onDismiss(); + } + }, + [onDismiss, overlay, wrapper] + ); + + const onKeyDown = useCallback( + (e: KeyboardEvent) => { + if (e.key === "Escape") onDismiss(); + }, + [onDismiss] + ); + + useEffect(() => { + document.addEventListener("keydown", onKeyDown); + return () => document.removeEventListener("keydown", onKeyDown); + }, [onKeyDown]); + + return ( +
+
+ {children} +
+
+ ); +} diff --git a/.conflict-base-0/examples/e2e/shared/components/Nav/index.tsx b/.conflict-base-0/examples/e2e/shared/components/Nav/index.tsx new file mode 100644 index 00000000..1eb3ceed --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/components/Nav/index.tsx @@ -0,0 +1,27 @@ +"use client"; +import Link from "next/link"; +import type { PropsWithChildren } from "react"; + +type Props = PropsWithChildren & { + href: string; + title: string; + icon?: string; +}; +export default function Nav(p: Props) { + const { children, href, title, icon = "/static/frank.webp" } = p; + return ( + +
+
{title}
+
+ +
+
+
{children}
+ + ); +} diff --git a/.conflict-base-0/examples/e2e/shared/package.json b/.conflict-base-0/examples/e2e/shared/package.json new file mode 100644 index 00000000..a9db0dc3 --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/package.json @@ -0,0 +1,19 @@ +{ + "name": "@example/shared", + "version": "0.0.0", + "private": true, + "scripts": { + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + "react": "catalog:e2e", + "react-dom": "catalog:e2e" + }, + "devDependencies": { + "@types/react": "catalog:e2e", + "@types/react-dom": "catalog:e2e" + }, + "peerDependencies": { + "next": "catalog:e2e" + } +} diff --git a/.conflict-base-0/examples/e2e/shared/sst-env.d.ts b/.conflict-base-0/examples/e2e/shared/sst-env.d.ts new file mode 100644 index 00000000..59d33569 --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/.conflict-base-0/examples/e2e/shared/tsconfig.json b/.conflict-base-0/examples/e2e/shared/tsconfig.json new file mode 100644 index 00000000..e4729ed0 --- /dev/null +++ b/.conflict-base-0/examples/e2e/shared/tsconfig.json @@ -0,0 +1,32 @@ +{ + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "NodeNext", + "noUnusedLocals": true, + "noUnusedParameters": true, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "removeComments": true, + "resolveJsonModule": true, + "sourceMap": true, + "baseUrl": ".", + "jsx": "react-jsx", + "lib": ["ES2022", "DOM"], + "module": "NodeNext", + "target": "ESNext", + "paths": { + "~/*": ["./*"] + } + } +} diff --git a/.conflict-base-0/examples/e2e/utils.ts b/.conflict-base-0/examples/e2e/utils.ts new file mode 100644 index 00000000..8c72f88c --- /dev/null +++ b/.conflict-base-0/examples/e2e/utils.ts @@ -0,0 +1,5 @@ +import { createHash } from "node:crypto"; + +export function validateMd5(data: Buffer, expectedHash: string) { + return createHash("md5").update(data).digest("hex") === expectedHash; +} diff --git a/.conflict-base-0/examples/middleware/.env b/.conflict-base-0/examples/middleware/.env new file mode 100644 index 00000000..7300e230 --- /dev/null +++ b/.conflict-base-0/examples/middleware/.env @@ -0,0 +1 @@ +CLERK_ENCRYPTION_KEY="key" diff --git a/.conflict-base-0/examples/middleware/.gitignore b/.conflict-base-0/examples/middleware/.gitignore new file mode 100755 index 00000000..998933bb --- /dev/null +++ b/.conflict-base-0/examples/middleware/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/.conflict-base-0/examples/middleware/README.md b/.conflict-base-0/examples/middleware/README.md new file mode 100755 index 00000000..a8eeb816 --- /dev/null +++ b/.conflict-base-0/examples/middleware/README.md @@ -0,0 +1,31 @@ +# Middleware + +This example shows how to use [Middleware in Next.js](https://nextjs.org/docs/app/building-your-application/routing/middleware) to run code before a request is completed. + +The index page ([`app/page.tsx`](app/page.tsx)) has a list of links to pages with `redirect`, `rewrite`, or normal behavior. + +On the Middleware file ([`middleware.ts`](middleware.ts)) the routes are already being filtered by defining a `matcher` on the exported config. If you want the Middleware to run for every request, you can remove the `matcher`. + +## Deploy your own + +Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/middleware&project-name=middleware&repository-name=middleware) + +## How to use + +Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: + +```bash +npx create-next-app --example middleware middleware-app +``` + +```bash +yarn create next-app --example middleware middleware-app +``` + +```bash +pnpm create next-app --example middleware middleware-app +``` + +Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/.conflict-base-0/examples/middleware/app/about/page.tsx b/.conflict-base-0/examples/middleware/app/about/page.tsx new file mode 100644 index 00000000..da125747 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/about/page.tsx @@ -0,0 +1,3 @@ +export default function AboutPage() { + return

About

; +} diff --git a/.conflict-base-0/examples/middleware/app/about2/page.tsx b/.conflict-base-0/examples/middleware/app/about2/page.tsx new file mode 100644 index 00000000..31fcb8c4 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/about2/page.tsx @@ -0,0 +1,3 @@ +export default function About2Page() { + return

About 2

; +} diff --git a/.conflict-base-0/examples/middleware/app/another/page.tsx b/.conflict-base-0/examples/middleware/app/another/page.tsx new file mode 100644 index 00000000..b4e3ecf1 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/another/page.tsx @@ -0,0 +1,3 @@ +export default function AnotherPage() { + return

Another

; +} diff --git a/.conflict-base-0/examples/middleware/app/clerk/route.ts b/.conflict-base-0/examples/middleware/app/clerk/route.ts new file mode 100644 index 00000000..99230885 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/clerk/route.ts @@ -0,0 +1,3 @@ +export async function POST(request: Request) { + return new Response(`Hello clerk`); +} diff --git a/.conflict-base-0/examples/middleware/app/layout.tsx b/.conflict-base-0/examples/middleware/app/layout.tsx new file mode 100644 index 00000000..308ce0c6 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/layout.tsx @@ -0,0 +1,14 @@ +import type { Metadata } from "next"; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} + +export const metadata: Metadata = { + title: "Next.js Middleware example", + description: "Redirect and rewrite pages using Next.js Middleware.", +}; diff --git a/.conflict-base-0/examples/middleware/app/middleware/page.tsx b/.conflict-base-0/examples/middleware/app/middleware/page.tsx new file mode 100644 index 00000000..27504d92 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/middleware/page.tsx @@ -0,0 +1,25 @@ +import { headers } from "next/headers"; + +export default function MiddlewarePage() { + const cloudflareContextHeader = headers().get("x-cloudflare-context"); + + return ( + <> +

Via middleware

+

+ The value of the x-cloudflare-context header is:
+ + {cloudflareContextHeader} + +

+ + ); +} diff --git a/.conflict-base-0/examples/middleware/app/page.tsx b/.conflict-base-0/examples/middleware/app/page.tsx new file mode 100755 index 00000000..234fd787 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/page.tsx @@ -0,0 +1,21 @@ +import Link from "next/link"; + +export default function Home() { + return ( +
+

Index

+

+ Go to about page (will redirect) +

+

+ Go to another page (will rewrite) +

+

+ Go to about 2 page (no redirect or rewrite) +

+

+ Go to middleware page (using NextResponse.next()) +

+
+ ); +} diff --git a/.conflict-base-0/examples/middleware/app/redirected/page.tsx b/.conflict-base-0/examples/middleware/app/redirected/page.tsx new file mode 100644 index 00000000..7c4d480c --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/redirected/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectedPage() { + return

Redirected from /about

; +} diff --git a/.conflict-base-0/examples/middleware/app/rewrite/page.tsx b/.conflict-base-0/examples/middleware/app/rewrite/page.tsx new file mode 100644 index 00000000..ee87ede1 --- /dev/null +++ b/.conflict-base-0/examples/middleware/app/rewrite/page.tsx @@ -0,0 +1,3 @@ +export default function RewritePage() { + return

Rewrite

; +} diff --git a/.conflict-base-0/examples/middleware/e2e/base.spec.ts b/.conflict-base-0/examples/middleware/e2e/base.spec.ts new file mode 100644 index 00000000..eff0f5be --- /dev/null +++ b/.conflict-base-0/examples/middleware/e2e/base.spec.ts @@ -0,0 +1,39 @@ +import { test, expect } from "@playwright/test"; + +test.describe("middleware", () => { + test("redirect", async ({ page }) => { + await page.goto("/"); + await page.click('[href="/about"]'); + await page.waitForURL("**/redirected"); + expect(await page.textContent("h1")).toContain("Redirected"); + }); + + test("rewrite", async ({ page }) => { + await page.goto("/"); + await page.click('[href="/another"]'); + await page.waitForURL("**/another"); + expect(await page.textContent("h1")).toContain("Rewrite"); + }); + + test("no matching middleware", async ({ page }) => { + await page.goto("/"); + await page.click('[href="/about2"]'); + await page.waitForURL("**/about2"); + expect(await page.textContent("h1")).toContain("About 2"); + }); + + test("matching noop middleware", async ({ page }) => { + await page.goto("/"); + await page.click('[href="/middleware"]'); + await page.waitForURL("**/middleware"); + expect(await page.textContent("h1")).toContain("Via middleware"); + }); + + // Test for https://github.com/opennextjs/opennextjs-cloudflare/issues/201 + test("clerk middleware", async ({ page }) => { + const res = await page.request.post("/clerk", { data: "some body" }); + expect(res.ok()).toEqual(true); + expect(res.status()).toEqual(200); + await expect(res.text()).resolves.toEqual("Hello clerk"); + }); +}); diff --git a/.conflict-base-0/examples/middleware/e2e/cloudflare-context.spec.ts b/.conflict-base-0/examples/middleware/e2e/cloudflare-context.spec.ts new file mode 100644 index 00000000..6d3c89dd --- /dev/null +++ b/.conflict-base-0/examples/middleware/e2e/cloudflare-context.spec.ts @@ -0,0 +1,11 @@ +import { test, expect } from "@playwright/test"; + +test.describe("middleware/cloudflare-context", () => { + test("middlewares have access to the cloudflare context", async ({ page }) => { + await page.goto("/middleware"); + const cloudflareContextHeaderElement = page.getByTestId("cloudflare-context-header"); + expect(await cloudflareContextHeaderElement.textContent()).toContain( + "typeof `cloudflareContext.env` = object" + ); + }); +}); diff --git a/.conflict-base-0/examples/middleware/e2e/playwright.config.ts b/.conflict-base-0/examples/middleware/e2e/playwright.config.ts new file mode 100644 index 00000000..75ff66cc --- /dev/null +++ b/.conflict-base-0/examples/middleware/e2e/playwright.config.ts @@ -0,0 +1,3 @@ +import { configurePlaywright } from "../../common/config-e2e"; + +export default configurePlaywright("middleware", { multipleBrowsers: true }); diff --git a/.conflict-base-0/examples/middleware/e2e/playwright.dev.config.ts b/.conflict-base-0/examples/middleware/e2e/playwright.dev.config.ts new file mode 100644 index 00000000..937ce0d7 --- /dev/null +++ b/.conflict-base-0/examples/middleware/e2e/playwright.dev.config.ts @@ -0,0 +1,6 @@ +import { configurePlaywright } from "../../common/config-e2e"; + +export default configurePlaywright("middleware", { + isCI: !!process.env.CI, + isWorker: false, +}); diff --git a/.conflict-base-0/examples/middleware/middleware.ts b/.conflict-base-0/examples/middleware/middleware.ts new file mode 100644 index 00000000..c588c627 --- /dev/null +++ b/.conflict-base-0/examples/middleware/middleware.ts @@ -0,0 +1,38 @@ +import { NextRequest, NextResponse, NextFetchEvent } from "next/server"; +import { clerkMiddleware } from "@clerk/nextjs/server"; + +import { getCloudflareContext } from "@opennextjs/cloudflare"; + +export function middleware(request: NextRequest, event: NextFetchEvent) { + console.log("middleware"); + if (request.nextUrl.pathname === "/about") { + return NextResponse.redirect(new URL("/redirected", request.url)); + } + if (request.nextUrl.pathname === "/another") { + return NextResponse.rewrite(new URL("/rewrite", request.url)); + } + if (request.nextUrl.pathname === "/clerk") { + return clerkMiddleware(async () => {}, { + publishableKey: "pk_test_ZXhhbXBsZS5hY2NvdW50cy5kZXYk", + secretKey: "skey", + })(request, event); + } + + const requestHeaders = new Headers(request.headers); + const cloudflareContext = getCloudflareContext(); + + requestHeaders.set( + "x-cloudflare-context", + `typeof \`cloudflareContext.env\` = ${typeof cloudflareContext.env}` + ); + + return NextResponse.next({ + request: { + headers: requestHeaders, + }, + }); +} + +export const config = { + matcher: ["/about/:path*", "/another/:path*", "/middleware/:path*", "/clerk"], +}; diff --git a/.conflict-base-0/examples/middleware/next.config.mjs b/.conflict-base-0/examples/middleware/next.config.mjs new file mode 100644 index 00000000..2bd0079f --- /dev/null +++ b/.conflict-base-0/examples/middleware/next.config.mjs @@ -0,0 +1,11 @@ +import { initOpenNextCloudflareForDev } from "@opennextjs/cloudflare"; + +initOpenNextCloudflareForDev(); + +/** @type {import('next').NextConfig} */ +const nextConfig = { + typescript: { ignoreBuildErrors: true }, + eslint: { ignoreDuringBuilds: true }, +}; + +export default nextConfig; diff --git a/.conflict-base-0/examples/middleware/open-next.config.ts b/.conflict-base-0/examples/middleware/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/.conflict-base-0/examples/middleware/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/.conflict-base-0/examples/middleware/package.json b/.conflict-base-0/examples/middleware/package.json new file mode 100644 index 00000000..4283d0fa --- /dev/null +++ b/.conflict-base-0/examples/middleware/package.json @@ -0,0 +1,31 @@ +{ + "name": "middleware", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "build:worker": "pnpm opennextjs-cloudflare build", + "preview:worker": "pnpm opennextjs-cloudflare preview", + "preview": "pnpm build:worker && pnpm preview:worker", + "e2e": "playwright test -c e2e/playwright.config.ts", + "e2e:dev": "playwright test -c e2e/playwright.dev.config.ts" + }, + "dependencies": { + "@clerk/nextjs": "6.9.6", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:" + }, + "devDependencies": { + "@opennextjs/cloudflare": "workspace:*", + "@playwright/test": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "eslint": "catalog:", + "typescript": "catalog:", + "wrangler": "catalog:" + } +} diff --git a/.conflict-base-0/examples/middleware/public/favicon.ico b/.conflict-base-0/examples/middleware/public/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/.conflict-base-0/examples/middleware/public/vercel.svg b/.conflict-base-0/examples/middleware/public/vercel.svg new file mode 100755 index 00000000..fbf0e25a --- /dev/null +++ b/.conflict-base-0/examples/middleware/public/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/.conflict-base-0/examples/middleware/tsconfig.json b/.conflict-base-0/examples/middleware/tsconfig.json new file mode 100755 index 00000000..32f841ea --- /dev/null +++ b/.conflict-base-0/examples/middleware/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "open-next.config.ts", "worker.ts"] +} diff --git a/.conflict-base-0/examples/middleware/wrangler.jsonc b/.conflict-base-0/examples/middleware/wrangler.jsonc new file mode 100644 index 00000000..92ac1f42 --- /dev/null +++ b/.conflict-base-0/examples/middleware/wrangler.jsonc @@ -0,0 +1,15 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "main": ".open-next/worker.js", + "name": "middleware", + "compatibility_date": "2024-12-30", + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], + "assets": { + "directory": ".open-next/assets", + "binding": "ASSETS" + }, + "vars": { + "MY_VAR": "my-var" + }, + "kv_namespaces": [{ "binding": "MY_KV", "id": "" }] +} diff --git a/.conflict-base-0/examples/next-partial-prerendering/.gitignore b/.conflict-base-0/examples/next-partial-prerendering/.gitignore new file mode 100755 index 00000000..05bb836c --- /dev/null +++ b/.conflict-base-0/examples/next-partial-prerendering/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +/.yarn + +# testing +/coverage +playwright-report +test-results + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env* +!.env*.example + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.conflict-base-0/examples/next-partial-prerendering/.prettierrc b/.conflict-base-0/examples/next-partial-prerendering/.prettierrc new file mode 100644 index 00000000..62532247 --- /dev/null +++ b/.conflict-base-0/examples/next-partial-prerendering/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/.conflict-base-0/examples/next-partial-prerendering/README.md b/.conflict-base-0/examples/next-partial-prerendering/README.md new file mode 100755 index 00000000..967c9811 --- /dev/null +++ b/.conflict-base-0/examples/next-partial-prerendering/README.md @@ -0,0 +1,23 @@ +## Next.js Partial Prerendering + +This is a demo of [Next.js](https://nextjs.org) using [Partial Prerendering](https://nextjs.org/docs/app/api-reference/next-config-js/partial-prerendering). + +This template uses the new Next.js [App Router](https://nextjs.org/docs/app). This includes support for enhanced layouts, colocation of components, tests, and styles, component-level data fetching, and more. + +It also uses the experimental Partial Prerendering feature available in Next.js 14. Partial Prerendering combines ultra-quick static edge delivery with fully dynamic capabilities and we believe it has the potential to [become the default rendering model for web applications](https://vercel.com/blog/partial-prerendering-with-next-js-creating-a-new-default-rendering-model), bringing together the best of static site generation and dynamic delivery. + +> ⚠️ Please note that PPR is an experimental technology that is not recommended for production. You may run into some DX issues, especially on larger code bases. + +## How it works + +The index route `/` uses Partial Prerendering through: + +1. Enabling the experimental flag in `next.config.js`. + +```js +experimental: { + ppr: true, +}, +``` + +2. Using `` to wrap Dynamic content. diff --git a/.conflict-base-0/examples/next-partial-prerendering/app/favicon.ico b/.conflict-base-0/examples/next-partial-prerendering/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..af98450595e8b8efd9e505cddc5ed705b665a4d8 GIT binary patch literal 15086 zcmdU$XN*0PW5y#)gXL_h{3FkJ#X`oXpI?bB5#G)w~S7Qa+`W<1AB#X3C=?&UhvAO=|S+ zQpCR%R9`2h-z)7_x}fw(>6KDpfVd}*GI-!c2H9UDrKwS>=#NU@Ddj7@Q4*g7FEYrY z16}AW?v$zq+9+i!-B+T1{bG*9hmHqIUn`*-8^w`osM0?vVJi}rWb@IzKnYt#l~PpE zZq^t6O{HGFdQ!P^WzlxPHWGIHcd>D{}x={sTUg9&WW6602m zQnBH6>!yx}4jn2B7A%n2vuDesNt2{;dd zh7B@$^l0CFc@ZrPKrArsz@`@AQzbS#)CVarSbb!I8ty{PH zk}X}jv}9#v$)iV)Gb-#m>4qUO6)cT2PV3 zpI*Is$&Ww&XxZfC$&*s6RxM+zLWK&_s8J(BjQt6=fsGRsIez?@ix)2jvEROZTiUm8 zAGA}oYE|jjv7_)^<8Q|B8-jA4x_+h43HdwG`akQZ{rmR^u|IqEOoj~`7J{KpojS(< z>D#xjnZIoEL8L15HMT(z#WR80C=8eJ6m1l4LW@cu}s8OTj^Upsw@4?*W6SJES z?6iS9&)0pV`lp_$Z=3e*+h^9ZUK>rCG?5uIW|;4L`0(N0^@=YH0qjNg{kCh@PHx@0 zWueQ33l}2#^Q~LAHa;_LgYTK1p6(a3o6pAd+gv_56 zTeSG07MmF9|6)G^Q&#}`NMn_Um~~0isUI6)0h8ZU;`^Lf>f{vqND)`@P9?$9TK1fc;tCyQ6!+t!2dtUtke$_><;tw&q0@ECem?{wl!rS3|>b6OetkXT}@W?k_+rGrYh zl>Vi}m;6*0c#P>*l+@N$%>EBBFmQe{Fc#%OC9f_nmD)f~S=dohhj8vYl zv6`=x&=pVWsLX#+q8mig9W$TUxvt*}bzk7L-lNk`>Y+?Gm163T#zTyXvm=~)sb0N0 zaaweuJ6Zx`(zaEHG-%L3KK=Al6T>DZPhLQGq zy?Yqg@b-sP&7-d+WX~-}jDPy{>9TCuG9i8(A^wLgY}(XWZ-_f3WuJ2&?4j-5yH}Ph zSrTpU9$VNX@qMmWifEgC6yB+S|Ng&-_q*kY6P-PKR*oJ$D&4wui>NOkgH3F=P`Ve$ z3oFArk%&op&JP9oiCbR3eqHX}yJupw-hGKM`tJs8Gp0rz*J9ak*s!6TKY!j}B<@Qe z2xHHihfO=4d&@$equD1uh)vR!D_5jhvt}W(F>o+n#QfeP*=Ky4KYza26Uxue7xt`( zwGs1UFEoa2%CXJd6_q!V{lS9=%abQh(nAuU?8F#8U%^agA*f5vUU zO`A5Rzftd-H*XGp=j=}sgJvHomR>El^LJEU_xn@7oB=$3{5YoN^y$-PoVT`!UrwAj z(d>cRyeL=eJNUAXP0n?!TD8j9&dbY_&Ye4l$oA~n)9gP*+v9QJq3wP5KkQGLGDTj# zd};PI#*Q5uVjI0fh76HSn>LxVdoDY_;0u&tn{OaexyiTnfB*h{;fw|QLCcpf4;xpW zFkyme8_o^J(yQeMlzfjrrqcE2$dM!Fd_g$&SWBkEa^gaG!|Jt={ z=KFH#39++i(IT_Yx^(H%ko++GcKr1<|Ih~0rcI04uj!BQ`Z)V#=O2Y;=E9`s-!ShO zsSe!pFZPSf|L}>y>wkcu$o#Ju7{d8q*e4a4|Eapd)ji*PB>xlpq$2UZRgc#`wqyC< z*e8K8>Gg-|00V0nbj5maWeG|22l`3AlJ{NwJ|l|`ufMHXz7k^tYsg%g=)+?N8;M_9LtdS2KI3UcQZk+)cWFG|X4L^R?nKNgM zJp7#1#y{fx7Zcyn1ijH<*t+zGuIF{p8Z6OUCbF zJuqm{AfqFUdUSJ))2_z+s>OeFWelDY)Ji4$N2uccI^tDkzj4ezJD0s z6WNgVqu%*n4eJGq6%4dL{ + + + + + +
+
+
+
+ +
+
+ + {children} +
+
+
+
+
+
+ + + ); +} diff --git a/.conflict-base-0/examples/next-partial-prerendering/app/not-found.tsx b/.conflict-base-0/examples/next-partial-prerendering/app/not-found.tsx new file mode 100644 index 00000000..caea3a91 --- /dev/null +++ b/.conflict-base-0/examples/next-partial-prerendering/app/not-found.tsx @@ -0,0 +1,8 @@ +export default function NotFound() { + return ( +
+

Not Found

+

Could not find requested resource

+
+ ); +} diff --git a/.conflict-base-0/examples/next-partial-prerendering/app/opengraph-image.png b/.conflict-base-0/examples/next-partial-prerendering/app/opengraph-image.png new file mode 100644 index 0000000000000000000000000000000000000000..44fd1ebe27723609a7ea29a966d80f1596ae77c0 GIT binary patch literal 98894 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�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 + + + + + }> + + + + + + }> + + + + ); +} diff --git a/.conflict-base-0/examples/next-partial-prerendering/app/styles.tsx b/.conflict-base-0/examples/next-partial-prerendering/app/styles.tsx new file mode 100644 index 00000000..5d599669 --- /dev/null +++ b/.conflict-base-0/examples/next-partial-prerendering/app/styles.tsx @@ -0,0 +1,13 @@ +export function GlobalStyles() { + return ( +