diff --git a/.gitignore b/.gitignore index 01cd64b1..f27e8344 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,10 @@ node_modules/ .history **/.vite-inspect **/dist +**/labs/* /test-results/ /playwright-report/ /blob-report/ /playwright/.cache/ +/tests/unit/report/ +/tests/unit/coverage/ diff --git a/Makefile b/Makefile index 9f31cc04..7a828bd7 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ fix: install build: fix pnpm build + pnpm build.create-qwikdev-astro pr-release: test pnpx pkg-pr-new publish ./libs/* --template ./libs/create-qwikdev-astro/stubs/templates/default/* diff --git a/apps/demo/package.json b/apps/demo/package.json index 9665b556..96c6bbed 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -12,7 +12,7 @@ "astro": "astro" }, "dependencies": { - "@builder.io/qwik": "^1.11", + "@builder.io/qwik": "^1.12.0", "@qwikdev/astro": "workspace:*", "astro": "5.0.2" } diff --git a/apps/deno-demo/package.json b/apps/deno-demo/package.json index b8e9b035..bfa821a6 100644 --- a/apps/deno-demo/package.json +++ b/apps/deno-demo/package.json @@ -13,14 +13,14 @@ "dependencies": { "@astrojs/check": "^0.9.4", "@astrojs/deno": "^5.0.1", - "@astrojs/react": "^4.0.0", - "@builder.io/qwik": "^1.11", + "@astrojs/react": "^4.1.2", + "@builder.io/qwik": "^1.12.0", "@qwikdev/astro": "workspace:*", - "@types/react": "^18.2.64", - "@types/react-dom": "^18.2.21", - "astro": "^5.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "typescript": "^5.4.3" + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "astro": "^5.1.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "typescript": "^5.7.2" } } diff --git a/apps/node-demo/package.json b/apps/node-demo/package.json index d0f1a5b2..03759c15 100644 --- a/apps/node-demo/package.json +++ b/apps/node-demo/package.json @@ -14,12 +14,12 @@ "dependencies": { "@astrojs/node": "9.0.0", "@astrojs/react": "4.0.0", - "@builder.io/qwik": "^1.11", + "@builder.io/qwik": "^1.12.0", "@qwikdev/astro": "workspace:*", - "@types/react": "^18.2.64", - "@types/react-dom": "^18.2.21", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "astro": "5.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" } } diff --git a/apps/website/package.json b/apps/website/package.json index 8adad74b..842f683b 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -11,11 +11,11 @@ "astro": "astro" }, "dependencies": { - "@astrojs/starlight": "^0.21.2", - "@qwikdev/astro": "workspace:*", - "astro": "^4.3.5", - "sharp": "^0.32.5", "@astrojs/check": "^0.5.10", - "typescript": "^5.4.3" + "@astrojs/starlight": "^0.21.5", + "@qwikdev/astro": "workspace:*", + "astro": "^4.16.18", + "sharp": "^0.32.6", + "typescript": "^5.7.2" } } diff --git a/biome.json b/biome.json index 2827998a..8459f052 100644 --- a/biome.json +++ b/biome.json @@ -22,7 +22,7 @@ "quoteProperties": "preserve", "quoteStyle": "double", "semicolons": "always", - "trailingComma": "none" + "trailingCommas": "none" } }, diff --git a/libs/create-qwikdev-astro/README.md b/libs/create-qwikdev-astro/README.md index 92f3e4d6..c7fdcb1a 100644 --- a/libs/create-qwikdev-astro/README.md +++ b/libs/create-qwikdev-astro/README.md @@ -34,19 +34,19 @@ **Types of arguments:** - | Name | Type | Default value | Description | - | :-------| :----------------| :----------------| :---------------------------------| - | project | String | ./qwik-astro-app | Directory of the project. | - | adapter | "deno" or "node" | node | Server adapter. | + | Name | Type | Default value | Description | + | :-----------| :--------------------------| :-------------| :---------------------------------| + | destination | String | . | Directory of the project. | + | adapter | "deno" or "node" or "none" | none | Server adapter. | **Types of options:** | Name | Description | | :--------------------------------------| :----------------------------------------| | `--help` (`-h`) | Display available flags. | - | `--it` | Execute actions interactively. | | `--dry-run` | Walk through steps without executing. | | `--force` / `--no-force` (`-f` / `--no-f`) | Overwrite target directory if it exists. | + | `--add` / `--no-add` (`-a` / `--no-a`) | Add QwikDev/astro to existing project. | | `--install` / `--no-install` (`-i` / `--no-i`) | Install dependencies. | | `--biome` / `--no-biome` | Prefer Biome to ESLint/Prettier. | | `--git` / `--no-git` | Initialize Git repository. | @@ -67,43 +67,47 @@ - Specify the command line arguments to use: ```typescript - import { runCreate } from '@qwikdev/create-astro'; + import { run } from '@qwikdev/create-astro'; - runCreate("./qwik-astro-app", "node", "--it"); + run(["./qwik-astro-app", "node"]); ``` - - Pass the arguments to create a new project: - - ```typescript - import { createProject } from '@qwikdev/create-astro'; - - const config = { - project: "./qwik-astro-app", - starter: "node", - it: false, - }; - - createProject(config); - ``` - - **Project configuration type:** + **Definition type:** ```typescript - export type ProjectConfig = { - project: string; - adapter?: "deno" | "node"; + export type Definition = { + destination: string; + adapter?: "deno" | "node" | "none"; force?: boolean; + add?: boolean; install?: boolean; biome?: boolean; git?: boolean; ci?: boolean; - yes: boolean; - no: boolean; - it: boolean; - dryRun: boolean; + yes?: boolean; + no?: boolean; + dryRun?: boolean; }; ``` +**Default definition:** + +```typescript +export const defaultDefinition = { + destination: ".", + adapter: "none", + force: undefined, + add: undefined, + install: undefined, + biome: undefined, + git: undefined, + ci: undefined, + yes: undefined, + no: undefined, + dryRun: undefined +} as const; +``` + ## šŸŒ Community - Follow us on [@QwikDev](https://twitter.com/QwikDev) diff --git a/libs/create-qwikdev-astro/bin/test.ts b/libs/create-qwikdev-astro/bin/test.ts new file mode 100644 index 00000000..7611dfa4 --- /dev/null +++ b/libs/create-qwikdev-astro/bin/test.ts @@ -0,0 +1,23 @@ +import { assert } from "@japa/assert"; +import { configure, processCLIArgs, run } from "@japa/runner"; +import { TestContext } from "@japa/runner/core"; +import { PathTester } from "@qwikdev/create-astro/tester"; + +declare module "@japa/runner/core" { + interface TestContext { + path(path: string): PathTester; + } +} + +TestContext.macro("path", function (path: string) { + return new PathTester(path); +}); + +processCLIArgs(process.argv.splice(2)); + +configure({ + files: ["tests/**/*.spec.ts"], + plugins: [assert()] +}); + +run(); diff --git a/libs/create-qwikdev-astro/package.json b/libs/create-qwikdev-astro/package.json index d4c3f869..d244baee 100644 --- a/libs/create-qwikdev-astro/package.json +++ b/libs/create-qwikdev-astro/package.json @@ -7,7 +7,8 @@ "scripts": { "check": "tsc --noEmit", "build": "pnpm check && tsup-node --env.NODE_ENV production", - "start": "tsup-node --env.NODE_ENV development --watch" + "start": "tsup-node --env.NODE_ENV development --watch", + "test": "NODE_ENV=test node --loader tsm --enable-source-maps bin/test.ts" }, "contributors": [ { @@ -41,12 +42,48 @@ "require": "./dist/index.cjs", "default": "./dist/index.js" }, + "./app": { + "types": "./dist/app.d.ts", + "import": "./dist/app.js", + "require": "./dist/app.cjs", + "default": "./dist/app.js" + }, "./cli": { "types": "./dist/cli.d.ts", "import": "./dist/cli.js", "require": "./dist/cli.cjs", "default": "./dist/cli.js" }, + "./console": { + "types": "./dist/console.d.ts", + "import": "./dist/console.js", + "require": "./dist/console.cjs", + "default": "./dist/console.js" + }, + "./core": { + "types": "./dist/core.d.ts", + "import": "./dist/core.js", + "require": "./dist/core.cjs", + "default": "./dist/core.js" + }, + "./process": { + "types": "./dist/process.d.ts", + "import": "./dist/process.js", + "require": "./dist/process.cjs", + "default": "./dist/process.js" + }, + "./tester": { + "types": "./dist/tester.d.ts", + "import": "./dist/tester.js", + "require": "./dist/tester.cjs", + "default": "./dist/tester.js" + }, + "./utils": { + "types": "./dist/utils.d.ts", + "import": "./dist/utils.js", + "require": "./dist/utils.cjs", + "default": "./dist/utils.js" + }, "./package.json": "./package.json" }, "files": ["dist", "stubs"], @@ -75,15 +112,26 @@ }, "bugs": "https://github.com/@QwikDev/astro/issues", "dependencies": { - "@clack/prompts": "^0.7.0", + "@clack/prompts": "^0.8.2", + "cross-spawn": "^7.0.6", + "fs-extra": "^11.2.0", "kleur": "^4.1.5", + "which": "^5.0.0", "which-pm-runs": "^1.1.0", "yargs": "^17.7.2" }, "devDependencies": { + "@japa/assert": "^3.0.0", + "@japa/runner": "^3.1.4", + "@types/cross-spawn": "^6.0.6", + "@types/fs-extra": "^11.0.4", + "@types/node": "^22.10.2", + "@types/which": "^3.0.4", "@types/which-pm-runs": "^1.0.2", - "@types/yargs": "^17.0.32", - "tsup": "^8.2.4", - "typescript": "^5.4.5" + "@types/yargs": "^17.0.33", + "tslib": "^2.8.1", + "tsm": "^2.3.0", + "tsup": "^8.3.5", + "typescript": "^5.7.2" } } diff --git a/libs/create-qwikdev-astro/src/app.ts b/libs/create-qwikdev-astro/src/app.ts new file mode 100644 index 00000000..fbe50f05 --- /dev/null +++ b/libs/create-qwikdev-astro/src/app.ts @@ -0,0 +1,491 @@ +import fs, { cpSync } from "node:fs"; +import path from "node:path"; +import { copySync, ensureDirSync } from "fs-extra/esm"; +import pkg from "../package.json"; +import { ensureString } from "./console"; +import { type Definition as BaseDefinition, Program } from "./core"; +import { $, $pmInstall, $pmX } from "./process"; +import { + __dirname, + clearDir, + getPackageJson, + getPackageManager, + notEmptyDir, + pmRunCommand, + replacePackageJsonRunCommand, + resolveAbsoluteDir, + resolveRelativeDir, + sanitizePackageName, + updatePackageName +} from "./utils"; + +export type Definition = BaseDefinition & { + destination: string; + adapter: Adapter; + force?: boolean; + install?: boolean; + biome?: boolean; + git?: boolean; + ci?: boolean; + add?: boolean; + dryRun?: boolean; +}; + +export type EnsureRequired = Omit & Required>; +export type UserDefinition = Partial; + +export const defaultDefinition = { + destination: ".", + adapter: "none", + force: undefined, + install: undefined, + biome: undefined, + git: undefined, + ci: undefined, + yes: undefined, + no: undefined, + dryRun: undefined, + add: undefined +} as const; + +export type Adapter = "node" | "deno" | "none"; + +export type Input = Required> & { + outDir: string; + packageName: string; +}; + +export function defineDefinition(definition: UserDefinition): Definition { + return { ...defaultDefinition, ...definition }; +} + +export class Application extends Program { + #packageManger = getPackageManager(); + + configure(): void { + this.strict() + .interactive() + .alias("h", "help") + .useYes() + .useNo() + .conflict("add", "force") + .command( + "* [destination] [adapter]", + "Create a new project powered by QwikDev/astro" + ) + .argument("destination", { + type: "string", + default: defaultDefinition.destination, + desc: "Directory of the project" + }) + .argument("adapter", { + type: "string", + default: defaultDefinition.adapter, + desc: "Server adapter", + choices: ["deno", "node", "none"] + }) + .option("add", { + alias: "a", + type: "boolean", + default: defaultDefinition.add, + desc: "Add QwikDev/astro to existing project" + }) + .option("force", { + alias: "f", + type: "boolean", + default: defaultDefinition.force, + desc: "Overwrite target directory if it exists" + }) + .option("install", { + alias: "i", + type: "boolean", + default: defaultDefinition.install, + desc: "Install dependencies" + }) + .option("biome", { + type: "boolean", + default: defaultDefinition.biome, + desc: "Prefer Biome to ESLint/Prettier" + }) + .option("git", { + type: "boolean", + default: defaultDefinition.git, + desc: "Initialize Git repository" + }) + .option("ci", { + type: "boolean", + default: defaultDefinition.ci, + desc: "Add CI workflow" + }) + .option("dryRun", { + type: "boolean", + desc: "Walk through steps without executing" + }) + .example( + "npm create @qwikdev/astro@latest", + "Create a project with default options" + ) + .example( + "npm create @qwikdev/astro@latest ./qwik-astro-app", + "Create a project in a specific directory" + ) + .example( + "npm create @qwikdev/astro@latest ./qwik-astro-app node", + "Create a project using a server adapter" + ) + .example( + "npm create @qwikdev/astro@latest ./qwik-astro-app node --it", + "Create a project in interactive command mode" + ) + .usage("npm create @qwikdev/astro [destination] [adapter] [...options]"); + } + + parse(args: string[]): Definition { + return defineDefinition(super.parse(args)); + } + + validate(definition: Definition): Input { + return { + destination: definition.destination, + adapter: definition.adapter, + force: + definition.force ?? (definition.add ? false : !!definition.yes && !definition.no), + add: !!definition.add, + biome: definition.biome ?? (!!definition.yes && !definition.no), + install: definition.install ?? (!!definition.yes && !definition.no), + ci: definition.ci ?? (!!definition.yes && !definition.no), + git: definition.git ?? (!!definition.yes && !definition.no), + dryRun: !!definition.dryRun, + outDir: resolveAbsoluteDir(definition.destination), + packageName: sanitizePackageName(definition.destination) + }; + } + + async interact(definition: Definition): Promise { + const destination = + definition.destination === defaultDefinition.destination + ? await this.scanString( + `Where would you like to create your new project? ${this.gray( + `(Use '.' or './' for current directory)` + )}`, + definition.destination + ) + : definition.destination; + + let packageName = sanitizePackageName(destination); + const outDir = resolveAbsoluteDir(destination.trim()); + const exists = notEmptyDir(outDir); + + const add = + definition.add === undefined + ? exists && + !!(await this.scanBoolean( + definition, + "Do you want to add @QwikDev/astro to your existing project?" + )) + : definition.add; + + const force = + definition.force === undefined + ? exists && + !add && + !!(await this.scanBoolean( + definition, + `Directory "./${resolveRelativeDir( + outDir + )}" already exists and is not empty. What would you like to overwrite it?` + )) + : false; + + let adapter: Adapter; + + if ((!add || force) && definition.adapter === defaultDefinition.adapter) { + const adapterInput = + ((await this.scanBoolean( + definition, + "Would you like to use a server adapter?", + false + )) && + (await this.scanChoice( + "Which adapter do you prefer?", + [ + { + value: "node", + label: "Node" + }, + { + value: "deno", + label: "Deno" + }, + { + value: "none", + label: "None" + } + ], + definition.adapter + ))) || + "none"; + + ensureString(adapterInput, (v): v is Adapter => + ["none", "node", "deno"].includes(v) + ); + + adapter = adapterInput; + } else { + adapter = definition.adapter; + } + + const biome = + !add && definition.biome === undefined + ? !!(await this.scanBoolean( + definition, + "Would you prefer Biome over ESLint/Prettier?" + )) + : !!definition.biome; + + const ci = + definition.ci === undefined + ? !!(await this.scanBoolean(definition, "Would you like to add CI workflow?")) + : definition.ci; + + const install = + definition.install === undefined + ? !!(await this.scanBoolean( + definition, + `Would you like to install ${this.#packageManger} dependencies?` + )) + : definition.install; + + const git = + definition.git === undefined + ? !!(await this.scanBoolean(definition, "Would you like to initialize Git?")) + : definition.git; + + const dryRun = !!definition.dryRun; + + packageName = definition.yes + ? packageName + : await this.scanString( + "What should be the name of this package?", + exists && !force ? (getPackageJson(outDir).name ?? packageName) : packageName + ); + + return { + destination, + adapter, + biome, + ci, + install, + git, + add, + force, + outDir, + packageName, + dryRun + }; + } + + async execute(input: Input): Promise { + try { + const ranInstall = await this.start(input); + this.updatePackageJson(input); + this.runCI(input); + await this.runGitInit(input); + this.end(input, ranInstall); + return 0; + } catch (err) { + console.error("An error occurred during QwikDev/astro project creation:", err); + return 1; + } + } + + async runAdd(input: Input) { + this.info("Adding @QwikDev/astro..."); + try { + await $pmX("astro add @qwikdev/astro", input.outDir); + } catch (e: any) { + this.panic(`${e.message ?? e}: . Please try it manually.`); + } + } + + async runCreate(input: Input) { + const outDir = input.outDir; + + if (notEmptyDir(outDir)) { + if (input.force) { + if (!input.dryRun) { + await clearDir(outDir); + } + this.info(`Directory "${outDir}" successfully emptied šŸ—‘ļø`); + } else { + this.error(`Directory "${outDir}" already exists.`); + this.info( + `Please either remove this directory, choose another location or run the command again with '--force | -f' flag.` + ); + this.cancel(); + process.exit(1); + } + } + + let starterKit = input.adapter; + + if (input.biome) { + starterKit += "-biome"; + } + + const templatePath = path.join(__dirname, "..", "stubs", "templates", starterKit); + + this.step(`Creating new project in ${this.bgBlue(` ${outDir} `)} ... šŸ‡`); + this.copyTemplate(input, templatePath); + } + + async start(input: Input): Promise { + this.intro(`Let's create a ${this.bgBlue(" QwikDev/astro App ")} āœØ`); + + let ranInstall: boolean; + + if (input.add) { + ranInstall = await this.runInstall(input); + await this.runAdd(input); + } else { + await this.runCreate(input); + ranInstall = await this.runInstall(input); + } + + return ranInstall; + } + + end(input: Input, ranInstall: boolean): void { + const outDir = input.outDir; + const isCwdDir = process.cwd() === outDir; + const relativeProjectPath = resolveRelativeDir(outDir); + const outString = []; + + if (isCwdDir) { + outString.push(`šŸ¦„ ${this.bgMagenta(" Success! ")}`); + } else { + outString.push( + `šŸ¦„ ${this.bgMagenta(" Success! ")} ${this.cyan( + "Project created in" + )} ${this.bold(this.magenta(relativeProjectPath))} ${this.cyan("directory")}` + ); + } + outString.push(""); + + outString.push(`šŸ° ${this.cyan("Next steps:")}`); + if (!isCwdDir) { + outString.push(` cd ${relativeProjectPath}`); + } + if (!ranInstall) { + outString.push(` ${getPackageManager()} install`); + } + outString.push(` ${getPackageManager()} start`); + + this.note(outString.join("\n"), "Ready to start šŸš€"); + + this.outro("Happy coding! šŸ’»šŸŽ‰"); + } + + updatePackageJson(input: Input): void { + const { outDir, packageName } = input; + + updatePackageName(packageName as string, outDir); + this.info(`Updated package name to "${packageName}" šŸ“¦ļø`); + + if (getPackageManager() !== "npm") { + this.info(`Replacing 'npm run' by '${pmRunCommand()}' in package.json...`); + replacePackageJsonRunCommand(outDir); + } + } + + runCI(input: Input): void { + if (input.ci) { + this.step("Adding CI workflow..."); + + if (!input.dryRun) { + const starterCIPath = path.join( + __dirname, + "..", + "stubs", + "workflows", + `${ + ["npm", "yarn", "pnpm", "bun"].includes(getPackageManager()) + ? getPackageManager() + : "npm" + }-ci.yml` + ); + const projectCIPath = path.join(input.outDir, ".github", "workflows", "ci.yml"); + cpSync(starterCIPath, projectCIPath, { force: true }); + } + } + } + + async runInstall(definition: Definition): Promise { + let ranInstall = false; + if (definition.install) { + this.step("Installing dependencies..."); + if (!definition.dryRun) { + await $pmInstall(definition.destination); + } + ranInstall = true; + } + + return ranInstall; + } + + async runGitInit(input: Input): Promise { + if (input.git) { + const s = this.spinner(); + + const outDir = input.outDir; + + if (fs.existsSync(path.join(outDir, ".git"))) { + this.info("Git has already been initialized before. Skipping..."); + } else { + s.start("Git initializing..."); + + try { + if (!input.dryRun) { + const res = []; + res.push(await $("git", ["init"], outDir).install); + res.push(await $("git", ["add", "-A"], outDir).install); + res.push( + await $("git", ["commit", "-m", "Initial commit šŸŽ‰"], outDir).install + ); + + if (res.some((r) => r === false)) { + throw ""; + } + } + + s.stop("Git initialized šŸŽ²"); + } catch (e) { + s.stop("Git failed to initialize"); + this.error( + this.red( + "Git failed to initialize. You can do this manually by running: git init" + ) + ); + } + } + } + } + + copyTemplate(input: Input, templatePath: string): void { + if (!input.dryRun) { + const outDir = input.outDir; + try { + ensureDirSync(outDir); + copySync(templatePath, outDir); + } catch (error) { + this.error(this.red(`Template copy failed: ${error}`)); + } + } + } +} + +export function app(name = pkg.name, version = pkg.version): Application { + return new Application(name, version); +} + +export default app(); diff --git a/libs/create-qwikdev-astro/src/cli.ts b/libs/create-qwikdev-astro/src/cli.ts index a7f375d4..5d2cf244 100644 --- a/libs/create-qwikdev-astro/src/cli.ts +++ b/libs/create-qwikdev-astro/src/cli.ts @@ -1,3 +1,5 @@ #!/usr/bin/env node -import("./index.js").then((createQwikDevAstro) => createQwikDevAstro.default()); +import("./index.js").then( + (createQwikDevAstro): Promise => createQwikDevAstro.default() +); diff --git a/libs/create-qwikdev-astro/src/console.ts b/libs/create-qwikdev-astro/src/console.ts new file mode 100644 index 00000000..626a6655 --- /dev/null +++ b/libs/create-qwikdev-astro/src/console.ts @@ -0,0 +1,442 @@ +import { confirm, isCancel, log, select, text } from "@clack/prompts"; +import { + bgBlack, + bgBlue, + bgCyan, + bgGreen, + bgMagenta, + bgRed, + bgWhite, + bgYellow, + black, + blue, + bold, + cyan, + dim, + gray, + green, + grey, + hidden, + inverse, + italic, + magenta, + red, + reset, + strikethrough, + underline, + white, + yellow +} from "kleur/colors"; + +export { cancel, note, intro, outro, spinner } from "@clack/prompts"; + +// Used from https://github.com/sindresorhus/is-unicode-supported/blob/main/index.js +export function isUnicodeSupported() { + if (process.platform !== "win32") { + return process.env.TERM !== "linux"; // Linux console (kernel) + } + + return ( + Boolean(process.env.CI) || + Boolean(process.env.WT_SESSION) || // Windows Terminal + Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27) + process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder + process.env.TERM_PROGRAM === "Terminus-Sublime" || + process.env.TERM_PROGRAM === "vscode" || + process.env.TERM === "xterm-256color" || + process.env.TERM === "alacritty" || + process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm" + ); +} + +// Used from https://github.com/natemoo-re/clack/blob/main/packages/prompts/src/index.ts +const unicode = isUnicodeSupported(); + +export const icon = { + success: unicode ? "āœ…" : "[OK]", + error: unicode ? "āŒ" : "[ERROR]", + info: unicode ? "ā„¹ļø" : "[INFO]", + warning: unicode ? "āš ļø" : "[WARN]", + debug: unicode ? "šŸž" : "[DEBUG]", + verbose: unicode ? "šŸ”" : "[DETAILS]", + line: unicode ? "ā”€ā”€" : "----" +} as const; + +export const color = { + red, + green, + blue, + yellow, + magenta, + cyan, + gray, + grey, + white, + black +} as const; + +export const background = { + red: bgRed, + green: bgGreen, + blue: bgBlue, + yellow: bgYellow, + magenta: bgMagenta, + cyan: bgCyan, + white: bgWhite, + black: bgBlack +} as const; + +export const style = { + reset, + bold, + dim, + italic, + underline, + inverse, + hidden, + strikethrough +} as const; + +export type Icon = keyof typeof icon; +export type Color = keyof typeof color; +export type Background = keyof typeof background; +export type Style = keyof typeof style; +export type OutputOptions = Partial<{ + icon: Icon; + color: Color; + bg: Background; + style: Style; +}>; + +interface Stringeable { + toString(): string; +} + +export class Output extends String implements Stringeable { + constructor(value: string, options?: OutputOptions) { + super(value); + + if (options) { + this.apply(options); + } + } + + append(suffix: string): Output { + return new Output(this.toString() + suffix); + } + + prepend(prefix: string): Output { + return new Output(prefix + this.toString()); + } + + apply(options: OutputOptions) { + if (options.icon) { + this.icon(options.icon); + } + + if (options.color) { + this.color(options.color); + } + + if (options.bg) { + this.bg(options.bg); + } + + if (options.style) { + this.style(options.style); + } + } + + icon(name: Icon): Output { + return this.prepend(icon[name]); + } + + color(name: Color): Output { + return new Output(color[name](this.toString())); + } + + bg(name: Background): Output { + return new Output(background[name](this.toString())); + } + + style(name: Style): Output { + return new Output(style[name](this.toString())); + } + + toString(): string { + return super.toString(); + } +} + +export function output(message: string, options: OutputOptions): Output { + return new Output(message, options); +} + +export function success(message: string): string { + return green(`${icon.success} ${message}`); +} + +export function error(message: string): string { + return red(`${icon.error} ${message}`); +} + +export function info(message: string): string { + return blue(`${icon.info} ${message}`); +} + +export function warn(message: string): string { + return yellow(`${icon.warning} ${message}`); +} + +export function debug(message: string): string { + return magenta(`${icon.debug} ${message}`); +} + +export function verbose(message: string): string { + return gray(`${icon.verbose} ${message}`); +} + +export function title(message: string): string { + return `${gray(icon.line)} ${white(message)} ${gray(icon.line)}`; +} + +export function printSuccess(message: string, ln = 0): void { + console.log(success(message) + newLine(ln)); +} + +export function printError(message: string, ln = 0): void { + console.error(error(message) + newLine(ln)); +} + +export function printInfo(message: string, ln = 0): void { + console.info(info(message) + newLine(ln)); +} + +export function printWarning(message: string, ln = 0): void { + console.warn(warn(message) + newLine(ln)); +} + +export function printDebug(message: string, ln = 0): void { + console.debug(debug(message) + newLine(ln)); +} + +export function printTitle(message: string): void { + console.log(title(message)); +} + +export function printVerbose(message: string): void { + console.log(verbose(message)); +} + +export function logInfo(message: string): void { + log.info(info(message)); +} + +export function logSuccess(message: string): void { + log.success(success(message)); +} + +export function logStep(message: string): void { + log.step(message); +} + +export function logWarning(message: string): void { + log.warn(warn(message)); +} + +export function logError(message: string): void { + log.error(error(message)); +} + +// Inspired by https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/cli/utils/utils.ts +export function panic(message: string): never { + console.error(`${newLine()}${error(message)}${newLine()}`); + process.exit(1); +} + +export function newLine(count = 1): string { + return "\n".repeat(count); +} + +export async function scanString( + message: string, + initialValue: undefined, + it?: boolean +): Promise; +export async function scanString( + message: string, + initialValue: string, + it?: boolean +): Promise; +export async function scanString( + message: string, + initialValue?: string, + it?: boolean +): Promise { + const value = !it + ? initialValue + : (await text({ + message, + placeholder: initialValue, + defaultValue: initialValue + })) || initialValue; + + if (value !== initialValue) { + ensureString(value); + } + + return value; +} + +export async function scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue: undefined, + it?: boolean +): Promise; +export async function scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue: T, + it?: boolean +): Promise; +export async function scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue?: T, + it?: boolean +): Promise { + const value = !it + ? initialValue + : (await select({ + message, + options, + initialValue + })) || initialValue; + + if (value !== initialValue) { + ensureString(value); + } + + return value as T | undefined; +} + +export async function scanBoolean( + message: string, + initialValue: undefined, + it?: boolean, + yes?: boolean, + no?: boolean +): Promise< + typeof it extends true + ? boolean + : typeof no extends true + ? false + : typeof yes extends true + ? true + : undefined +>; +export async function scanBoolean( + message: string, + initialValue: boolean, + it?: boolean, + yes?: boolean, + no?: boolean +): Promise; +export async function scanBoolean( + message: string, + initialValue?: boolean, + it?: boolean, + yes?: boolean, + no?: boolean +): Promise< + typeof it extends true + ? typeof initialValue + : typeof no extends true + ? false + : typeof yes extends true + ? true + : typeof initialValue +> { + const value = + no === true && initialValue === undefined + ? false + : yes === true && initialValue === undefined + ? true + : it + ? await confirm({ message, initialValue }) + : initialValue; + + if (value !== initialValue) { + ensureBoolean(value); + } + + return value; +} + +export function ensureString( + input: any, + validate?: (v: string) => v is T +): asserts input is T { + ensureType(input, validate ? (v) => isString(v) && validate(v) : isString, "string"); +} + +export function ensureNumber( + input: any, + validate?: (v: number) => v is T +): asserts input is T { + ensureType(input, validate ? (v) => isNumber(v) && validate(v) : isNumber, "number"); +} + +export function ensureBoolean(input: any): asserts input is boolean { + ensureType(input, isBoolean, "boolean"); +} + +export function ensureTrue(input: any): asserts input is true { + ensureType(input, (v) => v === true, "true"); +} + +export function ensureFalse(input: any): asserts input is false { + ensureType(input, (v) => v === false, "false"); +} + +export function ensureType( + input: any, + validate: (v: T) => U, + expected: string +): asserts input is T { + ensure(input, validate, expected, typeof input); +} + +export function ensure( + input: T, + validate: (v: T) => U, + expected?: any, + provided?: any +): asserts input is T { + if (isCanceled(input)) { + panic("Operation canceled."); + } + + if (!validate(input)) { + panic( + `Invalid input${expected ? `: ${expected} expected` : ""}${provided ? `, ${provided} provided` : ""}.` + ); + } +} + +export function isString(input: any): input is string { + return typeof input === "string" || input instanceof String; +} + +export function isNumber(input: any): input is number { + return typeof input === "number" && !Number.isNaN(input); +} + +export function isBoolean(input: any): input is boolean { + return typeof input === "boolean"; +} + +export function isCanceled(input: any): boolean { + return isCancel(input) || typeof input === "symbol"; +} diff --git a/libs/create-qwikdev-astro/src/core.ts b/libs/create-qwikdev-astro/src/core.ts new file mode 100644 index 00000000..34189d4b --- /dev/null +++ b/libs/create-qwikdev-astro/src/core.ts @@ -0,0 +1,644 @@ +import yargs, { + type Argv, + type PositionalOptions as ArgumentConfig, + type Options as OptionConfig +} from "yargs"; +import { hideBin } from "yargs/helpers"; +import { + background, + cancel, + color, + ensureBoolean, + ensureString, + intro, + logError, + logInfo, + logStep, + logSuccess, + logWarning, + note, + outro, + panic, + scanBoolean, + scanChoice, + scanString, + spinner, + style +} from "./console"; +import { isCI, isTest } from "./utils"; + +export type Alias = { shortName: string; longName: string }; + +export type Example = { + command: string; + description: string; +}; + +export class Command { + readonly arguments = new Map(); + readonly options = new Map(); + readonly examples = new Set(); + #usage = ""; + + constructor( + readonly signature: string, + readonly description: string + ) {} + + setArgument(name: string, options: ArgumentConfig): this { + this.arguments.set(name, options); + + return this; + } + + getArgument(name: string): ArgumentConfig | undefined { + return this.arguments.get(name); + } + + hasArgument(name: string): boolean { + return this.arguments.has(name); + } + + argument(name: string): ArgumentConfig | undefined; + argument(name: string, options: ArgumentConfig): this; + argument(name: string, options?: ArgumentConfig): this | ArgumentConfig | undefined { + return options ? this.setArgument(name, options) : this.getArgument(name); + } + + setOption(name: string, options: OptionConfig): this { + this.options.set(name, options); + + return this; + } + + getOption(name: string): OptionConfig | undefined { + return this.options.get(name); + } + + hasOption(name: string): boolean { + return this.options.has(name); + } + + option(name: string): OptionConfig | undefined; + option(name: string, options: OptionConfig): this; + option(name: string, options?: OptionConfig): this | OptionConfig | undefined { + return options ? this.setOption(name, options) : this.getOption(name); + } + + addExample(command: string, description: string): this { + this.examples.add({ command, description }); + + return this; + } + + getExample(commandOrDescription: string): Example | undefined { + return this.examples + .values() + .find( + (example) => + example.command === commandOrDescription || + example.description === commandOrDescription + ); + } + + example(commandOrDescription: string): Example | undefined; + example(command: string, description: string): this; + example( + commandOrDescription: string, + description?: string + ): this | Example | undefined { + return description + ? this.addExample(commandOrDescription, description) + : this.getExample(commandOrDescription); + } + + getExamples(): Example[] { + return this.examples.values().toArray(); + } + + setUsage(message: string): this { + this.#usage = message; + + return this; + } + + getUsage(): string { + return this.#usage; + } + + usage(): string; + usage(message: string): this; + usage(message?: string): this | string { + return message ? this.setUsage(message) : this.getUsage(); + } +} + +export type Definition = { + yes?: boolean; + no?: boolean; +}; + +export abstract class Program< + T extends Definition, + U extends Required> +> { + #strict = false; + #interactive = false; + #useYes = false; + #useNo = false; + #conflicts: Record = {}; + readonly commands = new Set(); + readonly aliases = new Set(); + readonly interactions = new Map(); + + constructor( + readonly name: string, + readonly version: string + ) { + this.configure(); + } + + configure(): void {} + + addCommand(signature: string, description: string): Command { + const _command = new Command(signature, description); + + if (this.#useYes) { + _command.option("yes", { + alias: "y", + type: "boolean", + desc: "Skip all prompts by accepting defaults" + }); + } + + if (this.#useNo) { + _command.option("no", { + alias: "n", + type: "boolean", + desc: "Skip all prompts by declining defaults" + }); + } + + this.commands.add(_command); + + return _command; + } + + getCommand(signatureOrDescription: string): Command | undefined { + return this.commands + .values() + .find( + (command) => + command.signature === signatureOrDescription || + command.description === signatureOrDescription + ); + } + + command(signatureOrDescription: string): Command | undefined; + command(signature: string, description: string): Command; + command(signatureOrDescription: string, description?: string): Command | undefined { + return description + ? this.addCommand(signatureOrDescription, description) + : this.getCommand(signatureOrDescription); + } + + getCommands(): Command[] { + return this.commands.values().toArray(); + } + + strict(enabled = true): this { + this.#strict = enabled; + + return this; + } + + conflict(key: string, value: string): this { + this.#conflicts[key] = value; + + return this; + } + + interactive(enabled = true): this { + this.#interactive = enabled; + + return this; + } + + useYes(enabled = true): this { + this.#useYes = enabled; + + return this; + } + + useNo(enabled = true): this { + this.#useNo = enabled; + + return this; + } + + addAlias(shortName: string, longName: string): this { + this.aliases.add({ shortName, longName }); + + return this; + } + + getAlias(shortOrLongName: string): Alias | undefined { + return this.aliases + .values() + .find( + (alias) => + alias.shortName === shortOrLongName || alias.longName === shortOrLongName + ); + } + + alias(shortOrLongName: string): Alias | undefined; + alias(shortName: string, longName: string): this; + alias(shortOrLongName: string, longName?: string): this | Alias | undefined { + return longName + ? this.addAlias(shortOrLongName, longName) + : this.getAlias(shortOrLongName); + } + + getAliases(): Alias[] { + return this.aliases.values().toArray(); + } + + abstract execute( + input: ReturnType | ReturnType + ): number | Promise; + + /** @param argv Pass here process.argv */ + async run(argv = process.argv): Promise { + const args = hideBin(argv); + + const definition = this.parse(args); + + let input: U; + + if (this.isIt()) { + input = await this.interact(definition); + } else { + input = this.validate(definition); + } + + return await this.execute(input); + } + + isIt(): boolean { + return this.#interactive && !(isTest() || isCI()); + } + + abstract validate(definition: T): U; + + intercept(question: string, answer: unknown): this { + return this.setInteraction(question, answer); + } + + async interact(definition: T): Promise { + return this.validate(definition); + } + + parse(args: string[]): T { + const _yargs = yargs(args); + + _yargs.scriptName(this.name); + + if (this.#strict) { + _yargs.strict(); + } + + if (this.#useYes && this.#useNo) { + _yargs.conflicts("yes", "no"); + } + + this.#parseCommands(_yargs); + + _yargs.version(this.version); + + for (const [key, value] of Object.entries(this.#conflicts)) { + _yargs.conflicts(key, value); + } + + for (const { shortName, longName } of this.aliases) { + _yargs.alias(shortName, longName); + } + + const parsedArgs = _yargs.argv as unknown as T; + return parsedArgs; + } + + #parseCommands(argv: Argv) { + for (const command of this.commands) { + this.#parseCommand(argv, command); + } + } + + #parseCommand(argv: Argv, command: Command) { + argv.command(command.signature, command.description, (cmdYargs) => { + this.#parseArguments(argv, command.arguments); + this.#parseOptions(argv, command.options); + this.#parseExamples(argv, command.examples); + cmdYargs.usage(command.usage()); + }); + } + + #parseArguments(argv: Argv, args: Map) { + for (const [name, options] of args) { + this.#parseArgument(argv, name, options); + } + } + + #parseArgument(argv: Argv, name: string, options: ArgumentConfig) { + argv.positional(name, options); + } + + #parseOptions(argv: Argv, opts: Map) { + for (const [name, options] of opts) { + this.#parseOption(argv, name, options); + } + } + + #parseOption(argv: Argv, name: string, options: OptionConfig) { + argv.option(name, options); + } + + #parseExamples(argv: Argv, examples: Set) { + for (const example of examples) { + this.#parseExample(argv, example.command, example.description); + } + } + + #parseExample(argv: Argv, command: string, description: string) { + argv.example(command, description); + } + + getInteraction(message: string): unknown { + for (const question of this.interactions.keys()) { + if (message.includes(question)) { + return this.interactions.get(question); + } + } + + return undefined; + } + + setInteraction(question: string, answer: T): this { + this.interactions.set(question, answer); + + return this; + } + + async scanBoolean( + definition: T, + message: string + ): Promise< + typeof definition.no extends true + ? false + : typeof definition.yes extends true + ? true + : undefined + >; + async scanBoolean( + definition: T, + message: string, + initialValue: boolean + ): Promise< + typeof definition.no extends true + ? false + : typeof definition.yes extends true + ? true + : boolean + >; + async scanBoolean( + definition: T, + message: string, + initialValue?: boolean + ): Promise< + typeof definition.no extends true + ? false + : typeof definition.yes extends true + ? true + : typeof initialValue + > { + const value = this.getInteraction(message); + + if (value !== undefined) { + ensureBoolean(value); + + return value; + } + + return initialValue !== undefined + ? scanBoolean( + message, + initialValue, + this.isIt(), + this.#useYes && definition.yes, + this.#useNo && definition.no + ) + : scanBoolean( + message, + undefined, + this.isIt(), + this.#useYes && definition.yes, + this.#useNo && definition.no + ); + } + + async scanString(message: string): Promise; + async scanString(message: string, initialValue: string): Promise; + async scanString( + message: string, + initialValue?: string + ): Promise { + const value = this.getInteraction(message); + + if (value !== undefined) { + ensureString(value); + + return value; + } + + return initialValue + ? scanString(message, initialValue, this.isIt()) + : scanString(message, undefined, this.isIt()); + } + + async scanChoice( + message: string, + options: { value: string; label: string }[] + ): Promise; + async scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue: V + ): Promise; + async scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue?: V + ): Promise { + const value = this.getInteraction(message); + + if (value !== undefined) { + ensureString( + value, + (v): v is V => options.find((o) => o.value === v) !== undefined + ); + + return value; + } + + return initialValue + ? scanChoice(message, options, initialValue, this.isIt()) + : scanChoice(message, options, undefined, this.isIt()); + } + + panic(message: string): never { + panic(message); + } + + cancel(message?: string) { + cancel(message); + } + + intro(title?: string) { + intro(title); + } + + outro(message?: string) { + outro(message); + } + + note(message?: string, title?: string) { + note(message, title); + } + + spinner() { + return spinner(); + } + + info(message: string) { + logInfo(message); + } + + warn(message: string) { + logWarning(message); + } + + error(message: string) { + logError(message); + } + + step(message: string) { + logStep(message); + } + + success(message: string) { + logSuccess(message); + } + + red(output: string | number | boolean): string { + return color.red(output); + } + + green(output: string | number | boolean): string { + return color.green(output); + } + + blue(output: string | number | boolean): string { + return color.blue(output); + } + + yellow(output: string | number | boolean): string { + return color.yellow(output); + } + + magenta(output: string | number | boolean): string { + return color.magenta(output); + } + + cyan(output: string | number | boolean): string { + return color.cyan(output); + } + + gray(output: string | number | boolean): string { + return color.gray(output); + } + + grey(output: string | number | boolean): string { + return color.grey(output); + } + + white(output: string | number | boolean): string { + return color.white(output); + } + + black(output: string | number | boolean): string { + return color.black(output); + } + + bgRed(output: string | number | boolean): string { + return background.red(output); + } + + bgGreen(output: string | number | boolean): string { + return background.green(output); + } + + bgBlue(output: string | number | boolean): string { + return background.blue(output); + } + + bgYellow(output: string | number | boolean): string { + return background.yellow(output); + } + + bgMagenta(output: string | number | boolean): string { + return background.magenta(output); + } + + bgCyan(output: string | number | boolean): string { + return background.cyan(output); + } + + bgWhite(output: string | number | boolean): string { + return background.white(output); + } + + bgBlack(output: string | number | boolean): string { + return background.black(output); + } + + reset(output: string | number | boolean): string { + return style.reset(output); + } + + dim(output: string | number | boolean): string { + return style.dim(output); + } + + bold(output: string | number | boolean): string { + return style.bold(output); + } + + italic(output: string | number | boolean): string { + return style.italic(output); + } + + underline(output: string | number | boolean): string { + return style.underline(output); + } + + inverse(output: string | number | boolean): string { + return style.inverse(output); + } + + hidden(output: string | number | boolean): string { + return style.hidden(output); + } + + strikethrough(output: string | number | boolean): string { + return style.strikethrough(output); + } +} diff --git a/libs/create-qwikdev-astro/src/index.ts b/libs/create-qwikdev-astro/src/index.ts index 32103342..ed7b75cc 100644 --- a/libs/create-qwikdev-astro/src/index.ts +++ b/libs/create-qwikdev-astro/src/index.ts @@ -1,649 +1,12 @@ -import { type ChildProcess, exec, spawn } from "node:child_process"; -import { cpSync, existsSync, mkdirSync } from "node:fs"; -import fs from "node:fs"; -import os from "node:os"; -import path, { join, resolve, relative } from "node:path"; -import process from "node:process"; -import { fileURLToPath } from "node:url"; -import { - cancel, - confirm, - intro, - isCancel, - log, - outro, - select, - spinner, - text -} from "@clack/prompts"; -import { - bgBlue, - bgMagenta, - bold, - cyan, - gray, - green, - magenta, - red, - reset, - white -} from "kleur/colors"; -import detectPackageManager from "which-pm-runs"; -import yargs from "yargs"; +import app from "./app"; -const __filename = getModuleFilename(); -const __dirname = path.dirname(__filename); +export { app }; -export function getModuleFilename(): string { - const error = new Error(); - const stack = error.stack; - const matches = stack?.match( - /^Error\s+at[^\r\n]+\s+at *(?:[^\r\n(]+\((.+?)(?::\d+:\d+)?\)|(.+?)(?::\d+:\d+)?) *([\r\n]|$)/ - ); - const filename = matches?.[1] || matches?.[2]; - if (filename?.startsWith("file://")) { - return fileURLToPath(filename); - } - return filename || fileURLToPath(import.meta.url); +/** @param args Pass here process.argv */ +export async function run(args: string[]): Promise { + return app.run(args); } -export function isHome(dir: string): boolean { - return dir.startsWith("~/"); -} - -export function resolveAbsoluteDir(dir: string) { - return isHome(dir) ? resolve(os.homedir(), dir) : resolve(process.cwd(), dir); -} - -export function resolveRelativeDir(dir: string) { - return isHome(dir) ? relative(os.homedir(), dir) : relative(process.cwd(), dir); -} - -export function $(cmd: string, args: string[], cwd: string) { - let child: ChildProcess; - - const install = new Promise((resolve) => { - try { - child = spawn(cmd, args, { - cwd, - stdio: "ignore" - }); - - child.on("error", (e) => { - if (e) { - log.error(`${red(String(e.message || e))}\n\n`); - } - resolve(false); - }); - - child.on("close", (code) => { - resolve(code === 0); - }); - } catch (e) { - resolve(false); - } - }); - - const abort = async () => { - if (child) { - child.kill("SIGINT"); - } - }; - - return { abort, install }; -} - -// Used from https://github.com/sindresorhus/is-unicode-supported/blob/main/index.js -export function isUnicodeSupported() { - if (process.platform !== "win32") { - return process.env.TERM !== "linux"; // Linux console (kernel) - } - - return ( - Boolean(process.env.CI) || - Boolean(process.env.WT_SESSION) || // Windows Terminal - Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27) - process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder - process.env.TERM_PROGRAM === "Terminus-Sublime" || - process.env.TERM_PROGRAM === "vscode" || - process.env.TERM === "xterm-256color" || - process.env.TERM === "alacritty" || - process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm" - ); -} - -// Used from https://github.com/natemoo-re/clack/blob/main/packages/prompts/src/index.ts -const unicode = isUnicodeSupported(); -const s = (c: string, fallback: string) => (unicode ? c : fallback); -const S_BAR = s("ā”‚", "|"); -const S_BAR_H = s("ā”€", "-"); -const S_CORNER_TOP_RIGHT = s("ā•®", "+"); -const S_CONNECT_LEFT = s("ā”œ", "+"); -const S_CORNER_BOTTOM_RIGHT = s("ā•Æ", "+"); -const S_STEP_SUBMIT = s("ā—‡", "o"); - -function ansiRegex() { - const pattern = [ - "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", - "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))" - ].join("|"); - - return new RegExp(pattern, "g"); -} - -// Used from https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/cli/utils/utils.ts -const strip = (str: string) => str.replace(ansiRegex(), ""); -export const note = (message = "", title = "") => { - const lines = `\n${message}\n`.split("\n"); - const titleLen = strip(title).length; - const len = - Math.max( - lines.reduce((sum, ln) => { - ln = strip(ln); - return ln.length > sum ? ln.length : sum; - }, 0), - titleLen - ) + 2; - const msg = lines - .map( - (ln) => - `${gray(S_BAR)} ${white(ln)}${" ".repeat(len - strip(ln).length)}${gray(S_BAR)}` - ) - .join("\n"); - process.stdout.write( - `${gray(S_BAR)}\n${green(S_STEP_SUBMIT)} ${reset(title)} ${gray( - S_BAR_H.repeat(Math.max(len - titleLen - 1, 1)) + S_CORNER_TOP_RIGHT - )}\n${msg}\n${gray( - S_CONNECT_LEFT + S_BAR_H.repeat(len + 2) + S_CORNER_BOTTOM_RIGHT - )}\n` - ); -}; - -// Used from https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/cli/utils/utils.ts -export function panic(msg: string) { - console.error(`\nāŒ ${red(msg)}\n`); - process.exit(1); -} - -// Used from https://github.com/QwikDev/qwik/blob/main/packages/create-qwik/src/helpers/clearDir.ts -export const clearDir = async (dir: string) => { - const files = await fs.promises.readdir(dir); - - return await Promise.all( - files.map((pathToFile) => fs.promises.rm(join(dir, pathToFile), { recursive: true })) - ); -}; - -function fileGetContents(file: string): string { - if (!fs.existsSync(file)) { - throw new Error(`File ${file} not found`); - } - return fs.readFileSync(file, { encoding: "utf8" }).toString(); -} - -function filePutContents(file: string, contents: string) { - return fs.writeFileSync(file, contents, { encoding: "utf8" }); -} - -function fileReplaceContents(file: string, search: string | RegExp, replace: string) { - let contents = fileGetContents(file); - contents = contents.replace(search, replace); - filePutContents(file, contents); -} - -export function getPackageManager() { - return detectPackageManager()?.name || "npm"; -} - -export const isPackageManagerInstalled = (packageManager: string) => { - return new Promise((resolve) => { - exec(`${packageManager} --version`, (error, _, stderr) => { - resolve(!(error || stderr)); - }); - }); -}; - -export function pmRunCommand(): string { - const pm = getPackageManager(); - if (pm === "npm" || pm === "bun") { - return `${pm} run`; - } - return pm; -} - -export function getPackageJsonPath(dir = __dirname): string { - return join(dir, "package.json"); -} - -function packageJsonReplace(dir: string, search: string | RegExp, replace: string) { - fileReplaceContents(getPackageJsonPath(dir), search, replace); -} - -function replacePackageJsonRunCommand(dir: string) { - packageJsonReplace(dir, /npm run/g, pmRunCommand()); -} - -const npmPackageNamePattern = - /^(?:(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*)$/; - -function sanitizePackageName(name: string): string { - name = name.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); - name = name.replace(/[^a-zA-Z0-9\-._~/@]/g, "-"); - name = name.replace(/^[-.]+|[-.]+$/g, ""); - name = name.replace(/[-.]{2,}/g, "-"); - name = name.toLowerCase(); - - return name; -} - -function isValidPackageName(name: string): boolean { - return npmPackageNamePattern.test(name); -} - -function validatePackageName(name: string): string { - name = sanitizePackageName(name); - - if (!isValidPackageName(name)) { - throw new Error(`Invalid package name: ${name}`); - } - - return name; -} - -function updatePackageName(newName: string, dir = __dirname): void { - const packageJsonPath = getPackageJsonPath(dir); - const packageJson = JSON.parse(fileGetContents(packageJsonPath)); - const cleanedName = validatePackageName(newName); - - packageJson.name = cleanedName; - filePutContents(packageJsonPath, JSON.stringify(packageJson, null, 2)); -} - -export function panicCanceled() { - panic("Operation canceled."); -} - -export const $pm = async ( - args: string | string[], - cwd = process.cwd(), - env = process.env -) => { - const packageManager = getPackageManager(); - args = Array.isArray(args) ? args : [args]; - - return new Promise((resolve, reject) => { - const child = spawn(packageManager, args, { - cwd, - stdio: "inherit", - env - }); - - child.on("close", (code) => { - if (code !== 0) { - reject({ command: `${packageManager} ${args.join(" ")}` }); - return; - } - resolve(true); - }); - }); -}; - -export const installDependencies = async (cwd: string) => { - await $pm("install", cwd); -}; - -export type ProjectConfig = { - project: string; - adapter?: "deno" | "node"; - force?: boolean; - install?: boolean; - biome?: boolean; - git?: boolean; - ci?: boolean; - yes: boolean; - no: boolean; - it: boolean; - dryRun: boolean; -}; - -export function parseArgs(args: string[]): ProjectConfig { - const parsedArgs = yargs(args) - .strict() - .command( - "* [adapter]", - "Create a new project powered by QwikDev/astro", - (yargs) => { - return yargs - .positional("project", { - type: "string", - desc: "Directory of the project" - }) - .positional("adapter", { - type: "string", - desc: "Server adapter", - choices: ["deno", "node"] - }) - .option("force", { - alias: "f", - type: "boolean", - desc: "Overwrite target directory if it exists" - }) - .option("install", { - alias: "i", - type: "boolean", - desc: "Install dependencies" - }) - .option("biome", { - type: "boolean", - desc: "Prefer Biome to ESLint/Prettier" - }) - .option("git", { - type: "boolean", - desc: "Initialize Git repository" - }) - .option("ci", { - type: "boolean", - desc: "Add CI workflow" - }) - .option("yes", { - alias: "y", - default: false, - type: "boolean", - desc: "Skip all prompts by accepting defaults" - }) - .option("no", { - alias: "n", - default: false, - type: "boolean", - desc: "Skip all prompts by declining defaults" - }) - .option("it", { - default: false, - type: "boolean", - desc: "Execute actions interactively" - }) - .option("dryRun", { - default: false, - type: "boolean", - desc: "Walk through steps without executing" - }) - .example( - "npm create @qwikdev/astro@latest", - "Create a project in interactive mode" - ) - .example( - "npm create @qwikdev/astro@latest ./qwik-astro-app node", - "Create a project in commande mode" - ) - .example( - "npm create @qwikdev/astro@latest ./qwik-astro-app node --it", - "Create a project in interactive command mode" - ) - .usage("npm create @qwikdev/astro [project] [adapter] [...options]"); - } - ) - .alias("h", "help").argv as unknown as ProjectConfig; - - return parsedArgs; -} - -export async function createProject(config: ProjectConfig, defaultProject: string) { - try { - intro(`Let's create a ${bgBlue(" QwikDev/astro App ")} āœØ`); - - const packageManager = getPackageManager(); - - const projectAnswer = - config.project !== defaultProject || !config.it - ? config.project - : (await text({ - message: `Where would you like to create your new project? ${gray( - `(Use '.' or './' for current directory)` - )}`, - placeholder: defaultProject - })) || defaultProject; - - if (typeof projectAnswer === "symbol" || isCancel([projectAnswer, packageManager])) { - panicCanceled(); - } - - const adapter = - config.adapter || - (config.it && - (await confirm({ - message: "Would you like to use a server adapter?", - initialValue: false - })) && - (await select({ - message: "Which adapter do you prefer?", - options: [ - { - value: "node", - label: "Node" - }, - { - value: "deno", - label: "Deno" - } - ] - }))) || - "default"; - - if (typeof adapter === "symbol" || isCancel(adapter)) { - panicCanceled(); - } - - let starterKit = adapter as string; - - const preferBiome = - config.no && !config.biome - ? false - : (config.yes && config.biome !== false) || - config.biome || - (config.it && - (await confirm({ - message: "Would you prefer Biome over ESLint/Prettier?", - initialValue: true - }))); - - if (preferBiome) { - starterKit += "-biome"; - } - - const templatePath = path.join(__dirname, "..", "stubs", "templates", starterKit); - const outDir: string = resolveAbsoluteDir((projectAnswer as string).trim()); - - log.step(`Creating new project in ${bgBlue(` ${outDir} `)} ... šŸ‡`); - - if (fs.existsSync(outDir) && fs.readdirSync(outDir).length > 0) { - const force = - config.no && !config.force - ? false - : (config.yes && config.force !== false) || - config.force || - (config.it && - (await confirm({ - message: `Directory "./${resolveRelativeDir( - outDir - )}" already exists and is not empty. What would you like to overwrite it?`, - initialValue: true - }))); - if (force) { - if (!config.dryRun) { - await clearDir(outDir); - } - } else { - log.error(`Directory "${outDir}" already exists.`); - log.info( - `Please either remove this directory, choose another location or run the command again with '--force | -f' flag.` - ); - cancel(); - process.exit(1); - } - } - - if (!config.dryRun) { - if (!existsSync(outDir)) { - mkdirSync(outDir, { recursive: true }); - } - cpSync(templatePath, outDir, { recursive: true }); - } - - const defaultPackageName = sanitizePackageName(projectAnswer as string); - const packageName = config.it - ? await text({ - message: "What should be the name of this package?", - defaultValue: defaultPackageName, - placeholder: defaultPackageName - }) - : defaultPackageName; - - if (typeof packageName === "symbol" || isCancel(packageName)) { - panicCanceled(); - } - - updatePackageName(packageName as string, outDir); - log.info(`Updated package name to "${packageName as string}" šŸ“¦ļø`); - - if (packageManager !== "npm") { - log.info(`Replacing 'npm run' by '${pmRunCommand()}' in package.json...`); - replacePackageJsonRunCommand(outDir); - } - - const addCIWorkflow = - config.no && !config.ci - ? false - : (config.yes && config.ci !== false) || - config.ci || - (config.it && - (await confirm({ - message: "Would you like to add CI workflow?", - initialValue: true - }))); - - if (addCIWorkflow && !config.dryRun) { - const starterCIPath = join( - __dirname, - "..", - "stubs", - "workflows", - `${ - ["npm", "yarn", "pnpm", "bun"].includes(packageManager) ? packageManager : "npm" - }-ci.yml` - ); - const projectCIPath = join(outDir, ".github", "workflows", "ci.yml"); - cpSync(starterCIPath, projectCIPath, { force: true }); - } - - const runInstall = - config.no && !config.install - ? false - : (config.yes && config.install !== false) || - config.install || - (config.it && - (await confirm({ - message: `Would you like to install ${packageManager} dependencies?`, - initialValue: true - }))); - - let ranInstall = false; - if (typeof runInstall !== "symbol" && runInstall) { - log.step("Installing dependencies..."); - if (!config.dryRun) { - await installDependencies(projectAnswer as string); - } - ranInstall = true; - } - - const initGit = - config.no && !config.git - ? false - : (config.yes && config.git !== false) || - config.git || - (config.it && - (await confirm({ - message: "Initialize a new git repository?", - initialValue: true - }))); - - if (initGit) { - const s = spinner(); - - if (fs.existsSync(join(outDir, ".git"))) { - log.info("Git has already been initialized before. Skipping..."); - } else { - s.start("Git initializing..."); - - try { - if (!config.dryRun) { - const res = []; - res.push(await $("git", ["init"], outDir).install); - res.push(await $("git", ["add", "-A"], outDir).install); - res.push( - await $("git", ["commit", "-m", "Initial commit šŸŽ‰"], outDir).install - ); - - if (res.some((r) => r === false)) { - throw ""; - } - } - - s.stop("Git initialized šŸŽ²"); - } catch (e) { - s.stop("Git failed to initialize"); - log.error( - red("Git failed to initialize. You can do this manually by running: git init") - ); - } - } - } - - const isCwdDir = process.cwd() === outDir; - const relativeProjectPath = resolveRelativeDir(outDir); - const outString = []; - - if (isCwdDir) { - outString.push(`šŸ¦„ ${bgMagenta(" Success! ")}`); - } else { - outString.push( - `šŸ¦„ ${bgMagenta(" Success! ")} ${cyan("Project created in")} ${bold( - magenta(relativeProjectPath) - )} ${cyan("directory")}` - ); - } - outString.push(""); - - outString.push(`šŸ° ${cyan("Next steps:")}`); - if (!isCwdDir) { - outString.push(` cd ${relativeProjectPath}`); - } - if (!ranInstall) { - outString.push(` ${packageManager} install`); - } - outString.push(` ${packageManager} start`); - - note(outString.join("\n"), "Ready to start šŸš€"); - - outro("Happy coding! šŸ’»šŸŽ‰"); - } catch (err) { - console.error("An error occurred during QwikDev/astro project creation:", err); - process.exit(1); - } -} - -/** @param args Pass here process.argv.slice(2) */ -export async function runCreate(...args: string[]) { - const defaultProject = "./qwik-astro-app"; - const projectConfig = parseArgs(args.length ? args : [defaultProject]); - projectConfig.it = projectConfig.it || args.length === 0; - - createProject(projectConfig, defaultProject); -} - -export default async function () { - try { - await runCreate(...process.argv.slice(2)); - } catch (err: any) { - panic(err.message || err); - } +export default async function (): Promise { + return run(process.argv); } diff --git a/libs/create-qwikdev-astro/src/process.ts b/libs/create-qwikdev-astro/src/process.ts new file mode 100644 index 00000000..6550d0f0 --- /dev/null +++ b/libs/create-qwikdev-astro/src/process.ts @@ -0,0 +1,118 @@ +import { type ChildProcess, exec } from "node:child_process"; +import { spawn } from "cross-spawn"; +import which from "which"; +import { logError } from "./console"; +import { getPackageManager } from "./utils"; + +export const isPackageManagerInstalled = (packageManager: string) => { + return new Promise((resolve) => { + exec(`${packageManager} --version`, (error, _, stderr) => { + resolve(!(error || stderr)); + }); + }); +}; +export function $(cmd: string, args: string[], cwd: string) { + let child: ChildProcess; + + const install = new Promise((resolve) => { + try { + child = spawn(cmd, args, { + cwd, + stdio: "ignore" + }); + + child.on("error", (e) => { + if (e) { + logError(String(e.message || e)); + } + resolve(false); + }); + + child.on("close", (code) => { + resolve(code === 0); + }); + } catch (e) { + resolve(false); + } + }); + + const abort = async () => { + if (child) { + child.kill("SIGINT"); + } + }; + + return { abort, install }; +} + +export const $pm = async ( + args: string | string[], + cwd = process.cwd(), + env = process.env +) => { + const packageManager = getPackageManager(); + args = Array.isArray(args) ? args : [args]; + if (["exec", "dlx"].includes(args[0])) { + switch (packageManager) { + case "pnpm": + case "yarn": + break; + case "bun": + case "npm": { + args = ["x", ...args.slice(1)]; + break; + } + default: { + args = ["run", ...args.slice(1)]; + break; + } + } + } + + const packageManagerPath = await which(packageManager); + const command = `${packageManagerPath} ${args.join(" ")}`; + + return new Promise((resolve, reject) => { + const child = spawn(packageManagerPath, args, { + cwd, + stdio: "inherit", + env + }); + + child.on("close", (code) => { + if (code !== 0) { + reject({ command }); + return; + } + resolve(true); + }); + }); +}; + +export const $pmInstall = async (cwd: string) => { + await $pm("install", cwd); +}; + +export const $pmRun = async (script: string, cwd: string) => { + await $pm(["run", ...script.split(/\s+/)], cwd); +}; + +export const $pmExec = async (command: string, cwd: string) => { + await $pm(["exec", ...command.split(/\s+/)], cwd); +}; + +export const $pmDlx = async (binary: string, cwd: string) => { + await $pm(["dlx", ...binary.split(/\s+/)], cwd); +}; + +export const $pmX = async (executable: string, cwd: string) => { + if (["pnpm", "yarn"].includes(getPackageManager())) { + try { + await $pmExec(executable, cwd); + } catch (e: any) { + await $pmDlx(executable, cwd); + } + } else { + await $pmDlx(executable, cwd); + } +}; diff --git a/libs/create-qwikdev-astro/src/tester.ts b/libs/create-qwikdev-astro/src/tester.ts new file mode 100644 index 00000000..177c493d --- /dev/null +++ b/libs/create-qwikdev-astro/src/tester.ts @@ -0,0 +1,172 @@ +import { statSync } from "node:fs"; +import { pathExistsSync } from "fs-extra/esm"; +import { isBoolean, isNumber, isString } from "./console"; +import type { Definition, Program } from "./core"; + +export class ProgramTester< + T extends Definition, + U extends Required> +> { + constructor(readonly program: Program) {} + + intercept(question: string, answer: unknown): this { + this.program.intercept(question, answer); + + return this; + } + + async scanString(message: string, initialValue?: string): Promise { + const value = + initialValue === undefined + ? await this.program.scanString(message) + : await this.program.scanString(message, initialValue); + + return new ValueTester(value); + } + + async scanBoolean( + definition: T, + message: string, + initialValue?: boolean + ): Promise { + const value = + initialValue === undefined + ? await this.program.scanBoolean(definition, message) + : await this.program.scanBoolean(definition, message, initialValue); + + return new ValueTester(value); + } + + async scanChoice( + message: string, + options: { value: string; label: string }[], + initialValue?: string + ): Promise { + const value = + initialValue === undefined + ? await this.program.scanChoice(message, options) + : await this.program.scanChoice(message, options, initialValue); + + return new ValueTester(value); + } + + parse(args: string[]): DefinitionTester { + return new DefinitionTester(this.program.parse(args)); + } + + async interact(definition: T): Promise> { + return new DefinitionTester(await this.program.interact(definition)); + } + + async execute(input: U): Promise { + const result = await this.program.execute(input); + + return new ResultTester(result); + } + + async run(args: string[]): Promise { + const result = await this.program.run(args); + + return new ResultTester(result); + } +} + +export class DefinitionTester { + constructor(readonly definition: T) {} + + has(key: string, ...keys: string[]): boolean { + if (keys.length) { + for (const k of [key, ...keys]) { + if (!this.has(k)) { + return false; + } + } + + return true; + } + + return key in this.definition; + } + + get(key: string): ValueTester { + const input = Object.entries(this.definition).find(([name, _]) => name === key); + + return new ValueTester(input ? input[1] : undefined); + } +} + +export class ValueTester { + constructor(readonly value: unknown) {} + + isUndefined(): boolean { + return typeof this.value === "undefined"; + } + + isNull(): boolean { + return this.value === null; + } + + isBoolean(): boolean { + return isBoolean(this.value); + } + + isTrue(): boolean { + return this.value === true; + } + + isFalse(): boolean { + return this.value === false; + } + + isNumber(validate?: (value: number) => boolean): boolean { + return isNumber(this.value) && validate ? validate(this.value) : true; + } + + isString(validate?: (value: string) => boolean): boolean { + return isString(this.value) && validate ? validate(this.value) : true; + } + + equals(value: unknown): boolean { + return this.value === value; + } +} + +export class ResultTester { + constructor(readonly result: number) {} + + isSuccess(): boolean { + return this.result === 0; + } + + isFailure(): boolean { + return this.result === 1; + } + + isInvalid(): boolean { + return this.result === 2; + } + + isUnknown(): boolean { + return ![0, 1, 2].includes(this.result); + } +} + +export class PathTester { + constructor(readonly path: string) {} + + isFile(): boolean { + return statSync(this.path).isFile(); + } + + isDir(): boolean { + return statSync(this.path).isDirectory(); + } + + isSymbolicLink(): boolean { + return statSync(this.path).isSymbolicLink(); + } + + exists(): boolean { + return pathExistsSync(this.path); + } +} diff --git a/libs/create-qwikdev-astro/src/utils.ts b/libs/create-qwikdev-astro/src/utils.ts new file mode 100644 index 00000000..3383e344 --- /dev/null +++ b/libs/create-qwikdev-astro/src/utils.ts @@ -0,0 +1,152 @@ +import fs from "node:fs"; +import os from "node:os"; +import path, { join, resolve, relative } from "node:path"; +import { fileURLToPath } from "node:url"; +import detectPackageManager from "which-pm-runs"; + +export const __filename = getModuleFilename(); +export const __dirname = path.dirname(__filename); + +export function getModuleFilename(): string { + const error = new Error(); + const stack = error.stack; + const matches = stack?.match( + /^Error\s+at[^\r\n]+\s+at *(?:[^\r\n(]+\((.+?)(?::\d+:\d+)?\)|(.+?)(?::\d+:\d+)?) *([\r\n]|$)/ + ); + const filename = matches?.[1] || matches?.[2]; + if (filename?.startsWith("file://")) { + return fileURLToPath(filename); + } + return filename || fileURLToPath(import.meta.url); +} + +export function isCI(): boolean { + return Boolean(process.env.CI || process.env.GITHUB_ACTIONS); +} + +export function isTest(): boolean { + return process.env.NODE_ENV === "test"; +} + +export function isHome(dir: string): boolean { + return dir.startsWith(process.env.HOME ?? "~/"); +} + +export function resolveAbsoluteDir(dir: string) { + return isHome(dir) ? resolve(os.homedir(), dir) : resolve(process.cwd(), dir); +} + +export function resolveRelativeDir(dir: string) { + return isHome(dir) ? relative(os.homedir(), dir) : relative(process.cwd(), dir); +} + +export function notEmptyDir(dir: string): boolean { + return fs.existsSync(dir) && fs.readdirSync(dir).length > 0; +} + +// Used from https://github.com/QwikDev/qwik/blob/main/packages/create-qwik/src/helpers/clearDir.ts +export const clearDir = async (dir: string) => { + const files = await fs.promises.readdir(dir); + + return await Promise.all( + files.map((pathToFile) => fs.promises.rm(join(dir, pathToFile), { recursive: true })) + ); +}; + +function fileGetContents(file: string): string { + if (!fs.existsSync(file)) { + throw new Error(`File ${file} not found`); + } + return fs.readFileSync(file, { encoding: "utf8" }).toString(); +} + +function filePutContents(file: string, contents: string) { + return fs.writeFileSync(file, contents, { encoding: "utf8" }); +} + +function fileReplaceContents(file: string, search: string | RegExp, replace: string) { + let contents = fileGetContents(file); + contents = contents.replace(search, replace); + filePutContents(file, contents); +} + +export function getPackageManager() { + return detectPackageManager()?.name || "npm"; +} + +export function pmRunCommand(): string { + const pm = getPackageManager(); + if (pm === "npm" || pm === "bun") { + return `${pm} run`; + } + return pm; +} + +export function getPackageJsonPath(dir = __dirname): string { + return join(dir, "package.json"); +} + +function packageJsonReplace(dir: string, search: string | RegExp, replace: string) { + fileReplaceContents(getPackageJsonPath(dir), search, replace); +} + +export function replacePackageJsonRunCommand(dir: string) { + packageJsonReplace(dir, /npm run/g, pmRunCommand()); +} + +const npmPackageNamePattern = + /^(?:(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*)$/; + +export function sanitizePackageName(name: string): string { + name = name + .trim() + .replace(/\\/g, "/") + .split("/") + .filter(Boolean) + .map((segment) => + segment + .toLowerCase() + .replace(/[^a-z0-9-_]/g, "-") + .replace(/^-+|-+$/g, "") + ) + .join("-"); + name = name.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); + name = name.replace(/[^a-zA-Z0-9\-._~/@]/g, "-"); + name = name.replace(/^[-.]+|[-.]+$/g, ""); + name = name.replace(/[-.]{2,}/g, "-"); + name = name.toLowerCase(); + + return name; +} + +function isValidPackageName(name: string): boolean { + return npmPackageNamePattern.test(name); +} + +function validatePackageName(name: string): string { + name = sanitizePackageName(name); + + if (!isValidPackageName(name)) { + throw new Error(`Invalid package name: ${name}`); + } + + return name; +} + +export function getPackageJson(dir: string): Record { + const packageJsonPath = getPackageJsonPath(dir); + + return JSON.parse(fileGetContents(packageJsonPath)); +} + +export function setPackageJson(dir: string, json: Record) { + filePutContents(getPackageJsonPath(dir), JSON.stringify(json, null, 2)); +} + +export function updatePackageName(newName: string, dir = __dirname): void { + const cleanedName = validatePackageName(newName); + const packageJson = getPackageJson(dir); + + packageJson.name = cleanedName; + setPackageJson(dir, packageJson); +} diff --git a/libs/create-qwikdev-astro/stubs/templates/deno-biome/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/deno-biome/astro.config.ts index c24f9dd2..32108eda 100644 --- a/libs/create-qwikdev-astro/stubs/templates/deno-biome/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/deno-biome/astro.config.ts @@ -1,7 +1,7 @@ import { defineConfig, passthroughImageService } from "astro/config"; import deno from "@astrojs/deno"; -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; // https://astro.build/config export default defineConfig({ @@ -10,5 +10,5 @@ export default defineConfig({ service: passthroughImageService(), }, adapter: deno(), - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/deno/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/deno/astro.config.ts index c24f9dd2..32108eda 100644 --- a/libs/create-qwikdev-astro/stubs/templates/deno/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/deno/astro.config.ts @@ -1,7 +1,7 @@ import { defineConfig, passthroughImageService } from "astro/config"; import deno from "@astrojs/deno"; -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; // https://astro.build/config export default defineConfig({ @@ -10,5 +10,5 @@ export default defineConfig({ service: passthroughImageService(), }, adapter: deno(), - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/node-biome/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/node-biome/astro.config.ts index 5524f9e4..bec8badc 100644 --- a/libs/create-qwikdev-astro/stubs/templates/node-biome/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/node-biome/astro.config.ts @@ -1,4 +1,4 @@ -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; import { defineConfig } from "astro/config"; import node from "@astrojs/node"; @@ -9,5 +9,5 @@ export default defineConfig({ adapter: node({ mode: "standalone", }), - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/node/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/node/astro.config.ts index 5524f9e4..bec8badc 100644 --- a/libs/create-qwikdev-astro/stubs/templates/node/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/node/astro.config.ts @@ -1,4 +1,4 @@ -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; import { defineConfig } from "astro/config"; import node from "@astrojs/node"; @@ -9,5 +9,5 @@ export default defineConfig({ adapter: node({ mode: "standalone", }), - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/.gitignore b/libs/create-qwikdev-astro/stubs/templates/none-biome/.gitignore similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/.gitignore rename to libs/create-qwikdev-astro/stubs/templates/none-biome/.gitignore diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/.vscode/extensions.json b/libs/create-qwikdev-astro/stubs/templates/none-biome/.vscode/extensions.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/.vscode/extensions.json rename to libs/create-qwikdev-astro/stubs/templates/none-biome/.vscode/extensions.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/.vscode/launch.json b/libs/create-qwikdev-astro/stubs/templates/none-biome/.vscode/launch.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/.vscode/launch.json rename to libs/create-qwikdev-astro/stubs/templates/none-biome/.vscode/launch.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/README.md b/libs/create-qwikdev-astro/stubs/templates/none-biome/README.md similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/README.md rename to libs/create-qwikdev-astro/stubs/templates/none-biome/README.md diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/none-biome/astro.config.ts similarity index 62% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/astro.config.ts rename to libs/create-qwikdev-astro/stubs/templates/none-biome/astro.config.ts index ebb729d7..15d64a6e 100644 --- a/libs/create-qwikdev-astro/stubs/templates/default-biome/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/none-biome/astro.config.ts @@ -1,7 +1,7 @@ -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; import { defineConfig } from "astro/config"; // https://astro.build/config export default defineConfig({ - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/biome.json b/libs/create-qwikdev-astro/stubs/templates/none-biome/biome.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/biome.json rename to libs/create-qwikdev-astro/stubs/templates/none-biome/biome.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/package.json b/libs/create-qwikdev-astro/stubs/templates/none-biome/package.json similarity index 89% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/package.json rename to libs/create-qwikdev-astro/stubs/templates/none-biome/package.json index c120851a..879c018a 100644 --- a/libs/create-qwikdev-astro/stubs/templates/default-biome/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/none-biome/package.json @@ -13,9 +13,8 @@ "fix": "npm run lint && npm run format", "format": "biome format --write .", "lint": "biome check --apply-unsafe .", - "preview": "npm run build && npm run serve", + "preview": "npm run build && astro preview", "prod": "npm run check && astro build", - "serve": "node ./dist/server/entry.mjs", "start": "astro dev --open" }, "dependencies": { diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/public/favicon.svg b/libs/create-qwikdev-astro/stubs/templates/none-biome/public/favicon.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/public/favicon.svg rename to libs/create-qwikdev-astro/stubs/templates/none-biome/public/favicon.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/assets/astro.svg b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/assets/astro.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/assets/astro.svg rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/assets/astro.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/assets/qwik.svg b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/assets/qwik.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/assets/qwik.svg rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/assets/qwik.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/components/counter.module.css b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/components/counter.module.css similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/components/counter.module.css rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/components/counter.module.css diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/components/counter.tsx b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/components/counter.tsx similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/components/counter.tsx rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/components/counter.tsx diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/env.d.ts b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/env.d.ts similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/env.d.ts rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/env.d.ts diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/layouts/Layout.astro b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/layouts/Layout.astro similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/layouts/Layout.astro rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/layouts/Layout.astro diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/pages/index.astro b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/pages/index.astro similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/pages/index.astro rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/pages/index.astro diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/src/styles/global.css b/libs/create-qwikdev-astro/stubs/templates/none-biome/src/styles/global.css similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/src/styles/global.css rename to libs/create-qwikdev-astro/stubs/templates/none-biome/src/styles/global.css diff --git a/libs/create-qwikdev-astro/stubs/templates/default-biome/tsconfig.json b/libs/create-qwikdev-astro/stubs/templates/none-biome/tsconfig.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default-biome/tsconfig.json rename to libs/create-qwikdev-astro/stubs/templates/none-biome/tsconfig.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.eslintignore b/libs/create-qwikdev-astro/stubs/templates/none/.eslintignore similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.eslintignore rename to libs/create-qwikdev-astro/stubs/templates/none/.eslintignore diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.eslintrc.cjs b/libs/create-qwikdev-astro/stubs/templates/none/.eslintrc.cjs similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.eslintrc.cjs rename to libs/create-qwikdev-astro/stubs/templates/none/.eslintrc.cjs diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.gitignore b/libs/create-qwikdev-astro/stubs/templates/none/.gitignore similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.gitignore rename to libs/create-qwikdev-astro/stubs/templates/none/.gitignore diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.prettierignore b/libs/create-qwikdev-astro/stubs/templates/none/.prettierignore similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.prettierignore rename to libs/create-qwikdev-astro/stubs/templates/none/.prettierignore diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.vscode/extensions.json b/libs/create-qwikdev-astro/stubs/templates/none/.vscode/extensions.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.vscode/extensions.json rename to libs/create-qwikdev-astro/stubs/templates/none/.vscode/extensions.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default/.vscode/launch.json b/libs/create-qwikdev-astro/stubs/templates/none/.vscode/launch.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/.vscode/launch.json rename to libs/create-qwikdev-astro/stubs/templates/none/.vscode/launch.json diff --git a/libs/create-qwikdev-astro/stubs/templates/default/README.md b/libs/create-qwikdev-astro/stubs/templates/none/README.md similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/README.md rename to libs/create-qwikdev-astro/stubs/templates/none/README.md diff --git a/libs/create-qwikdev-astro/stubs/templates/default/astro.config.ts b/libs/create-qwikdev-astro/stubs/templates/none/astro.config.ts similarity index 62% rename from libs/create-qwikdev-astro/stubs/templates/default/astro.config.ts rename to libs/create-qwikdev-astro/stubs/templates/none/astro.config.ts index ebb729d7..15d64a6e 100644 --- a/libs/create-qwikdev-astro/stubs/templates/default/astro.config.ts +++ b/libs/create-qwikdev-astro/stubs/templates/none/astro.config.ts @@ -1,7 +1,7 @@ -import qwik from "@qwikdev/astro"; +import qwikdev from "@qwikdev/astro"; import { defineConfig } from "astro/config"; // https://astro.build/config export default defineConfig({ - integrations: [qwik()], + integrations: [qwikdev()], }); diff --git a/libs/create-qwikdev-astro/stubs/templates/default/package.json b/libs/create-qwikdev-astro/stubs/templates/none/package.json similarity index 92% rename from libs/create-qwikdev-astro/stubs/templates/default/package.json rename to libs/create-qwikdev-astro/stubs/templates/none/package.json index af338c26..8c72fcd7 100644 --- a/libs/create-qwikdev-astro/stubs/templates/default/package.json +++ b/libs/create-qwikdev-astro/stubs/templates/none/package.json @@ -14,9 +14,8 @@ "fmt": "prettier --write .", "lint": "eslint --fix \"**/*.{js,jsx,ts,tsx,astro}\"", "lint.dry-run": "eslint --fix-dry-run \"**/*.{js,jsx,ts,tsx,astro}\"", - "preview": "npm run build && npm run serve", + "preview": "npm run build && astro preview", "prod": "npm run check && astro build", - "serve": "node ./dist/server/entry.mjs", "start": "astro dev --open" }, "dependencies": { diff --git a/libs/create-qwikdev-astro/stubs/templates/default/prettier.config.cjs b/libs/create-qwikdev-astro/stubs/templates/none/prettier.config.cjs similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/prettier.config.cjs rename to libs/create-qwikdev-astro/stubs/templates/none/prettier.config.cjs diff --git a/libs/create-qwikdev-astro/stubs/templates/default/public/favicon.svg b/libs/create-qwikdev-astro/stubs/templates/none/public/favicon.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/public/favicon.svg rename to libs/create-qwikdev-astro/stubs/templates/none/public/favicon.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/assets/astro.svg b/libs/create-qwikdev-astro/stubs/templates/none/src/assets/astro.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/assets/astro.svg rename to libs/create-qwikdev-astro/stubs/templates/none/src/assets/astro.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/assets/qwik.svg b/libs/create-qwikdev-astro/stubs/templates/none/src/assets/qwik.svg similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/assets/qwik.svg rename to libs/create-qwikdev-astro/stubs/templates/none/src/assets/qwik.svg diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/components/counter.module.css b/libs/create-qwikdev-astro/stubs/templates/none/src/components/counter.module.css similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/components/counter.module.css rename to libs/create-qwikdev-astro/stubs/templates/none/src/components/counter.module.css diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/components/counter.tsx b/libs/create-qwikdev-astro/stubs/templates/none/src/components/counter.tsx similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/components/counter.tsx rename to libs/create-qwikdev-astro/stubs/templates/none/src/components/counter.tsx diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/env.d.ts b/libs/create-qwikdev-astro/stubs/templates/none/src/env.d.ts similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/env.d.ts rename to libs/create-qwikdev-astro/stubs/templates/none/src/env.d.ts diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/layouts/Layout.astro b/libs/create-qwikdev-astro/stubs/templates/none/src/layouts/Layout.astro similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/layouts/Layout.astro rename to libs/create-qwikdev-astro/stubs/templates/none/src/layouts/Layout.astro diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/pages/index.astro b/libs/create-qwikdev-astro/stubs/templates/none/src/pages/index.astro similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/pages/index.astro rename to libs/create-qwikdev-astro/stubs/templates/none/src/pages/index.astro diff --git a/libs/create-qwikdev-astro/stubs/templates/default/src/styles/global.css b/libs/create-qwikdev-astro/stubs/templates/none/src/styles/global.css similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/src/styles/global.css rename to libs/create-qwikdev-astro/stubs/templates/none/src/styles/global.css diff --git a/libs/create-qwikdev-astro/stubs/templates/default/tsconfig.json b/libs/create-qwikdev-astro/stubs/templates/none/tsconfig.json similarity index 100% rename from libs/create-qwikdev-astro/stubs/templates/default/tsconfig.json rename to libs/create-qwikdev-astro/stubs/templates/none/tsconfig.json diff --git a/libs/create-qwikdev-astro/tests/api.spec.ts b/libs/create-qwikdev-astro/tests/api.spec.ts new file mode 100644 index 00000000..243d0d16 --- /dev/null +++ b/libs/create-qwikdev-astro/tests/api.spec.ts @@ -0,0 +1,366 @@ +import { test } from "@japa/runner"; +import app, { defaultDefinition } from "@qwikdev/create-astro/app"; +import { name, version } from "@qwikdev/create-astro/package.json"; +import { ProgramTester } from "@qwikdev/create-astro/tester"; +import { getPackageManager } from "@qwikdev/create-astro/utils"; + +process.env.NODE_ENV = "test"; +process.env.CI = "1"; + +const tester = new ProgramTester(app); +const projectName = "my-qwik-astro-app"; + +enum input { + which_destination, + use_adapter, + which_adapter, + biome, + install, + ci, + git, + add, + force, + package_name +} + +const questions = { + [input.which_destination]: "Where would you like to create your new project?", + [input.use_adapter]: "Would you like to use a server adapter?", + [input.which_adapter]: "Which adapter do you prefer?", + [input.biome]: "Would you prefer Biome over ESLint/Prettier?", + [input.install]: `Would you like to install ${getPackageManager()} dependencies?`, + [input.ci]: "Would you like to add CI workflow?", + [input.git]: "Would you like to initialize Git?", + [input.add]: "Do you want to add @QwikDev/astro to your existing project?", + [input.force]: "What would you like to overwrite it?", + [input.package_name]: "What should be the name of this package?" +} as const; + +const answers = { + [input.which_destination]: [".", projectName], + [input.use_adapter]: [true, false], + [input.which_adapter]: ["none", "node", "deno"], + [input.biome]: [true, false], + [input.install]: [true, false], + [input.ci]: [true, false], + [input.git]: [true, false], + [input.add]: [true, false], + [input.force]: [true, false], + [input.package_name]: [projectName, ""] +} as const; + +test.group(`${name}@${version} API`, () => { + test("constructor", ({ assert }) => { + assert.equal(app.name, name); + assert.equal(app.version, version); + }); +}); + +test.group("default definition", () => { + const definition = tester.parse([]); + + test("keys", ({ assert }) => { + assert.isTrue( + definition.has( + "destination", + "adapter", + "force", + "install", + "biome", + "git", + "ci", + "add" + ) + ); + }); + + test("destination", ({ assert }) => { + assert.isTrue(definition.get("destination").isString()); + assert.isTrue(definition.get("destination").equals(".")); + assert.isTrue(definition.get("destination").equals(defaultDefinition.destination)); + }); + + test("adapter", ({ assert }) => { + assert.isTrue(definition.get("adapter").isString()); + assert.isTrue(definition.get("adapter").equals(defaultDefinition.adapter)); + }); + + test("force", ({ assert }) => { + assert.isTrue(definition.get("force").isUndefined()); + assert.isTrue(definition.get("force").equals(defaultDefinition.force)); + }); + + test("install", ({ assert }) => { + assert.isTrue(definition.get("install").isUndefined()); + assert.isTrue(definition.get("install").equals(defaultDefinition.install)); + }); + + test("biome", ({ assert }) => { + assert.isTrue(definition.get("biome").isUndefined()); + assert.isTrue(definition.get("biome").equals(defaultDefinition.biome)); + }); + + test("git", ({ assert }) => { + assert.isTrue(definition.get("git").isUndefined()); + assert.isTrue(definition.get("git").equals(defaultDefinition.git)); + }); + + test("ci", ({ assert }) => { + assert.isTrue(definition.get("ci").isUndefined()); + assert.isTrue(definition.get("ci").equals(defaultDefinition.ci)); + }); + + test("add", ({ assert }) => { + assert.isTrue(definition.get("add").isUndefined()); + assert.isTrue(definition.get("add").equals(defaultDefinition.add)); + }); +}); + +test.group("arguments", () => { + test("no argument", ({ assert }) => { + let definition = tester.parse([]); + + assert.isTrue(definition.get("destination").isString()); + assert.isTrue(definition.get("destination").equals(".")); + assert.isTrue(definition.get("adapter").equals("none")); + }); + + test("one argument", ({ assert }) => { + const definition = tester.parse([projectName]); + assert.isTrue(definition.get("destination").isString()); + assert.isTrue(definition.get("destination").equals(projectName)); + assert.isTrue(definition.get("adapter").equals("none")); + }); + + test("two arguments", ({ assert }) => { + let definition = tester.parse([projectName, "node"]); + assert.isTrue(definition.get("destination").equals(projectName)); + assert.isTrue(definition.get("adapter").isString()); + assert.isTrue(definition.get("adapter").equals("node")); + + definition = tester.parse(["my-qwik-astro-app", "deno"]); + assert.isTrue(definition.get("adapter").isString()); + assert.isTrue(definition.get("adapter").equals("deno")); + }); +}); + +test.group("options", () => { + test("yes", ({ assert }) => { + let definition = tester.parse(["--yes"]); + assert.isTrue(definition.get("yes").isBoolean()); + assert.isTrue(definition.get("yes").isTrue()); + assert.isTrue(definition.get("y").isBoolean()); + assert.isTrue(definition.get("y").isTrue()); + + definition = tester.parse(["--no-yes"]); + assert.isTrue(definition.get("yes").isBoolean()); + assert.isTrue(definition.get("yes").isFalse()); + assert.isTrue(definition.get("y").isBoolean()); + assert.isTrue(definition.get("y").isFalse()); + }); + + test("no", ({ assert }) => { + let definition = tester.parse(["--no"]); + assert.isTrue(definition.get("no").isBoolean()); + assert.isTrue(definition.get("no").isTrue()); + assert.isTrue(definition.get("n").isBoolean()); + assert.isTrue(definition.get("n").isTrue()); + + definition = tester.parse(["--no-no"]); + assert.isTrue(definition.get("no").isBoolean()); + assert.isTrue(definition.get("no").isFalse()); + assert.isTrue(definition.get("n").isBoolean()); + assert.isTrue(definition.get("n").isFalse()); + }); + + test("add", ({ assert }) => { + let definition = tester.parse(["--add"]); + assert.isTrue(definition.get("add").isBoolean()); + assert.isTrue(definition.get("add").isTrue()); + assert.isTrue(definition.get("a").isBoolean()); + assert.isTrue(definition.get("a").isTrue()); + + definition = tester.parse(["--no-add"]); + assert.isTrue(definition.get("add").isBoolean()); + assert.isTrue(definition.get("add").isFalse()); + assert.isTrue(definition.get("a").isBoolean()); + assert.isTrue(definition.get("a").isFalse()); + }); + + test("force", ({ assert }) => { + let definition = tester.parse(["--force"]); + assert.isTrue(definition.get("force").isBoolean()); + assert.isTrue(definition.get("force").isTrue()); + assert.isTrue(definition.get("f").isBoolean()); + assert.isTrue(definition.get("f").isTrue()); + + definition = tester.parse(["--no-force"]); + assert.isTrue(definition.get("force").isBoolean()); + assert.isTrue(definition.get("force").isFalse()); + assert.isTrue(definition.get("f").isBoolean()); + assert.isTrue(definition.get("f").isFalse()); + }); + + test("install", ({ assert }) => { + let definition = tester.parse(["--install"]); + assert.isTrue(definition.get("install").isBoolean()); + assert.isTrue(definition.get("install").isTrue()); + assert.isTrue(definition.get("i").isBoolean()); + assert.isTrue(definition.get("i").isTrue()); + + definition = tester.parse(["--no-install"]); + assert.isTrue(definition.get("install").isBoolean()); + assert.isTrue(definition.get("install").isFalse()); + assert.isTrue(definition.get("i").isBoolean()); + assert.isTrue(definition.get("i").isFalse()); + }); + + test("biome", ({ assert }) => { + let definition = tester.parse(["--biome"]); + assert.isTrue(definition.get("biome").isBoolean()); + assert.isTrue(definition.get("biome").isTrue()); + + definition = tester.parse(["--no-biome"]); + assert.isTrue(definition.get("biome").isBoolean()); + assert.isTrue(definition.get("biome").isFalse()); + }); + + test("git", ({ assert }) => { + let definition = tester.parse(["--git"]); + assert.isTrue(definition.get("git").isBoolean()); + assert.isTrue(definition.get("git").isTrue()); + + definition = tester.parse(["--no-git"]); + assert.isTrue(definition.get("git").isBoolean()); + assert.isTrue(definition.get("git").isFalse()); + }); + + test("ci", ({ assert }) => { + let definition = tester.parse(["--ci"]); + assert.isTrue(definition.get("ci").isBoolean()); + assert.isTrue(definition.get("ci").isTrue()); + + definition = tester.parse(["--no-ci"]); + assert.isTrue(definition.get("ci").isBoolean()); + assert.isTrue(definition.get("ci").isFalse()); + }); +}); + +test.group("aliases", () => { + test("y", ({ assert }) => { + let definition = tester.parse(["-y"]); + assert.isTrue(definition.get("yes").isBoolean()); + assert.isTrue(definition.get("yes").isTrue()); + assert.isTrue(definition.get("y").isBoolean()); + assert.isTrue(definition.get("y").isTrue()); + + definition = tester.parse(["--no-y"]); + assert.isTrue(definition.get("yes").isBoolean()); + assert.isTrue(definition.get("yes").isFalse()); + assert.isTrue(definition.get("y").isBoolean()); + assert.isTrue(definition.get("y").isFalse()); + }); + + test("n", ({ assert }) => { + let definition = tester.parse(["-n"]); + assert.isTrue(definition.get("no").isBoolean()); + assert.isTrue(definition.get("no").isTrue()); + assert.isTrue(definition.get("n").isBoolean()); + assert.isTrue(definition.get("n").isTrue()); + + definition = tester.parse(["--no-n"]); + assert.isTrue(definition.get("no").isBoolean()); + assert.isTrue(definition.get("no").isFalse()); + assert.isTrue(definition.get("n").isBoolean()); + assert.isTrue(definition.get("n").isFalse()); + }); + + test("f", ({ assert }) => { + let definition = tester.parse(["-f"]); + assert.isTrue(definition.get("force").isBoolean()); + assert.isTrue(definition.get("force").isTrue()); + assert.isTrue(definition.get("f").isBoolean()); + assert.isTrue(definition.get("f").isTrue()); + + definition = tester.parse(["--no-f"]); + assert.isTrue(definition.get("force").isBoolean()); + assert.isTrue(definition.get("force").isFalse()); + assert.isTrue(definition.get("f").isBoolean()); + assert.isTrue(definition.get("f").isFalse()); + }); + + test("a", ({ assert }) => { + let definition = tester.parse(["-a"]); + assert.isTrue(definition.get("add").isBoolean()); + assert.isTrue(definition.get("add").isTrue()); + assert.isTrue(definition.get("a").isBoolean()); + assert.isTrue(definition.get("a").isTrue()); + + definition = tester.parse(["--no-a"]); + assert.isTrue(definition.get("add").isBoolean()); + assert.isTrue(definition.get("add").isFalse()); + assert.isTrue(definition.get("a").isBoolean()); + assert.isTrue(definition.get("a").isFalse()); + }); + + test("i", ({ assert }) => { + let definition = tester.parse(["-i"]); + assert.isTrue(definition.get("install").isBoolean()); + assert.isTrue(definition.get("install").isTrue()); + assert.isTrue(definition.get("i").isBoolean()); + assert.isTrue(definition.get("i").isTrue()); + + definition = tester.parse(["--no-i"]); + assert.isTrue(definition.get("install").isBoolean()); + assert.isTrue(definition.get("install").isFalse()); + assert.isTrue(definition.get("i").isBoolean()); + assert.isTrue(definition.get("i").isFalse()); + }); +}); + +for (const [key, choices] of Object.entries(answers)) { + const index = Number(key); + const question = questions[index]; + + test.group(`${question}`, () => { + for (const answer of choices) { + test(`${answer}`, async ({ assert }) => { + tester.intercept(question, answer); + const parsed = tester.parse( + index === input.which_destination ? [] : [projectName] + ); + const definition = await tester.interact(parsed.definition); + switch (index) { + case input.which_destination: + assert.isTrue(definition.get("destination").equals(answer)); + break; + + case input.which_adapter: + if ( + ( + await tester.scanBoolean(parsed.definition, questions[input.use_adapter]) + ).isTrue() + ) { + assert.isTrue(definition.get("adapter").equals(answer)); + } + break; + + case input.biome: + assert.isTrue(definition.get("biome").equals(answer)); + break; + + case input.install: + assert.isTrue(definition.get("install").equals(answer)); + break; + + case input.ci: + assert.isTrue(definition.get("ci").equals(answer)); + break; + case input.git: + assert.isTrue(definition.get("git").equals(answer)); + break; + } + }); + } + }); +} diff --git a/libs/create-qwikdev-astro/tests/cli.spec.ts b/libs/create-qwikdev-astro/tests/cli.spec.ts new file mode 100644 index 00000000..a2f2b3be --- /dev/null +++ b/libs/create-qwikdev-astro/tests/cli.spec.ts @@ -0,0 +1,182 @@ +import { test } from "@japa/runner"; +import { TestContext } from "@japa/runner/core"; +import { run } from "@qwikdev/create-astro"; +import { getPackageManager } from "@qwikdev/create-astro/utils"; +import { emptyDirSync, ensureDirSync } from "fs-extra"; + +process.env.NODE_ENV = "test"; +process.env.CI = "1"; + +const integration = "@qwikdev/astro"; +const root = "labs"; +const project = "test-app"; + +const setup = () => { + ensureDirSync(root); + + return () => emptyDirSync(root); +}; + +const generatedDirs = [ + ".vscode", + "public", + "src", + "src/assets", + "src/components", + "src/layouts", + "src/pages", + "src/styles" +]; + +const generatedFiles = [ + ".vscode/extensions.json", + ".vscode/launch.json", + "public/favicon.svg", + "src/assets/astro.svg", + "src/assets/qwik.svg", + "src/components/counter.module.css", + "src/components/counter.tsx", + "src/layouts/Layout.astro", + "src/pages/index.astro", + "src/styles/global.css", + "src/env.d.ts", + ".gitignore", + "README.md", + "astro.config.ts", + "package.json", + "tsconfig.json" +] as const; + +type GeneratedOptions = Partial<{ + biome: boolean; + install: boolean; + ci: boolean; + git: boolean; +}>; + +const getGeneratedFiles = (options: GeneratedOptions = {}): string[] => { + const files = [ + ...generatedFiles, + ...(options.biome + ? ["biome.json"] + : [".eslintignore", ".eslintrc.cjs", ".prettierignore", "prettier.config.cjs"]) + ]; + + /* + if (options.install) { + const lockFile = { + npm: "package-lock.json", + pnpm: "pnpm-lock.yaml", + yarn: "yarn.lock", + bun: "bun.lockb" + }; + const pm = getPackageManager(); + + files.push(pm in lockFile ? lockFile[pm] : lockFile.npm); + } + */ + + if (options.ci) { + files.push(".github/workflows/ci.yml"); + } + + return files; +}; + +const getGeneratedDirs = (options: GeneratedOptions = {}): string[] => { + const dirs = generatedDirs; + + /* + if (options.install) { + dirs.push("node_modules"); + } + */ + + if (options.ci) { + dirs.push(...[".github", ".github/workflows"]); + } + + if (options.git) { + dirs.push(".git"); + } + + return dirs; +}; + +test.group(`create ${integration}`, (group) => { + group.setup(setup); + + test(`should create a new ${integration} app`, async (context) => { + return testRun([], context); + }); +}); + +test.group(`create ${integration} with yes and no options`, (group) => { + group.setup(setup); + + test(`--no option`, async (context) => { + return testRun(["--no"], context); + }); + + test(`--yes option`, async (context) => { + return testRun(["--yes"], context, { + biome: true, + // install: true, + ci: true, + git: true + }); + }).disableTimeout(); +}); + +async function testRun( + args: string[], + context: TestContext, + options: GeneratedOptions = {} +): Promise { + const { assert } = context; + const destination = `${root}/${project}`; + + const result = await run(["pnpm", "create", `${destination}`, ...args]); + assert.equal(result, 0); + + testProject(destination, context, options); +} + +function testProject( + project: string, + context: TestContext, + options: GeneratedOptions = {} +): void { + const { assert, path } = context; + const testProject = path(project); + + assert.isTrue(testProject.exists()); + assert.isTrue(testProject.isDir()); + + testProjectDirs(project, context, options); + testProjectFiles(project, context, options); +} + +function testProjectDirs( + project: string, + { assert, path }: TestContext, + options: GeneratedOptions = {} +): void { + for (const dir of getGeneratedDirs(options)) { + const testDir = path(`${project}/${dir}`); + assert.isTrue(testDir.exists()); + assert.isTrue(testDir.isDir()); + } +} + +function testProjectFiles( + project: string, + { assert, path }: TestContext, + options: GeneratedOptions = {} +): void { + for (const file of getGeneratedFiles(options)) { + const testFile = path(`${project}/${file}`); + assert.isTrue(testFile.exists()); + assert.isTrue(testFile.isFile()); + } +} diff --git a/libs/create-qwikdev-astro/tsconfig.json b/libs/create-qwikdev-astro/tsconfig.json index 3d7eeb53..3cb34074 100644 --- a/libs/create-qwikdev-astro/tsconfig.json +++ b/libs/create-qwikdev-astro/tsconfig.json @@ -16,6 +16,8 @@ "skipLibCheck": true, "verbatimModuleSyntax": true, "stripInternal": true, + "typeRoots": ["./node_modules/@types"], + "types": ["node", "fs-extra"], "noEmit": false, "allowImportingTsExtensions": false } diff --git a/libs/create-qwikdev-astro/tsup.config.ts b/libs/create-qwikdev-astro/tsup.config.ts index 4dd3f7a0..ade0dfc6 100644 --- a/libs/create-qwikdev-astro/tsup.config.ts +++ b/libs/create-qwikdev-astro/tsup.config.ts @@ -6,6 +6,15 @@ export default defineConfig((options) => { clean: true, minify: !options.watch, dts: true, - entry: ["src/cli.ts", "src/index.ts"] + entry: [ + "src/app.ts", + "src/cli.ts", + "src/console.ts", + "src/core.ts", + "src/index.ts", + "src/process.ts", + "src/tester.ts", + "src/utils.ts" + ] }; }); diff --git a/libs/demo-lib/package.json b/libs/demo-lib/package.json index 463478ac..41c480d7 100644 --- a/libs/demo-lib/package.json +++ b/libs/demo-lib/package.json @@ -33,18 +33,18 @@ "qwik": "qwik" }, "devDependencies": { - "@builder.io/qwik": "^1.7.3", - "@types/eslint": "^8.56.10", - "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.7.1", - "@typescript-eslint/parser": "^7.7.1", - "eslint": "^8.57.0", + "@builder.io/qwik": "^1.12.0", + "@types/eslint": "^8.56.12", + "@types/node": "^20.17.10", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "eslint": "^8.57.1", "eslint-plugin-qwik": "latest", "np": "^8.0.4", - "prettier": "^3.2.5", + "prettier": "^3.4.2", "typescript": "5.4.5", - "undici": "*", - "vite": "^5.2.10", - "vite-tsconfig-paths": "^4.2.1" + "undici": "^7.2.0", + "vite": "^5.4.11", + "vite-tsconfig-paths": "^4.3.2" } } diff --git a/libs/qwikdev-astro/package.json b/libs/qwikdev-astro/package.json index 1c4383a1..14eb38cc 100644 --- a/libs/qwikdev-astro/package.json +++ b/libs/qwikdev-astro/package.json @@ -56,10 +56,10 @@ }, "bugs": "https://github.com/thejackshelton/@qwikdev/astro/issues", "dependencies": { - "astro-integration-kit": "^0.16" + "astro-integration-kit": "^0.16.1" }, "devDependencies": { - "@builder.io/qwik": "^1.11", + "@builder.io/qwik": "^1.12.0", "astro": "5.0.2", "vite": "^5.4.11" }, diff --git a/libs/qwikdev-astro/q-astro-manifest.json b/libs/qwikdev-astro/q-astro-manifest.json index 3900344c..3689c0a7 100644 --- a/libs/qwikdev-astro/q-astro-manifest.json +++ b/libs/qwikdev-astro/q-astro-manifest.json @@ -1 +1 @@ -{"manifestHash":"ubrbi3","symbols":{"s_Jkq4JnSu3vc":{"origin":"components/qwik/counter.tsx","displayName":"counter.tsx_Counter_component","canonicalFilename":"counter.tsx_Counter_component_Jkq4JnSu3vc","hash":"Jkq4JnSu3vc","ctxKind":"function","ctxName":"component$","captures":false,"loc":[121,301]},"s_o0dE1oWgGK4":{"origin":"../../../libs/qwikdev-astro/src/root.tsx","displayName":"root.tsx_root_component","canonicalFilename":"root.tsx_root_component_o0dE1oWgGK4","hash":"o0dE1oWgGK4","ctxKind":"function","ctxName":"component$","captures":false,"loc":[81,136]},"s_WTj7Z5OCKjk":{"origin":"components/qwik/counter.tsx","displayName":"counter.tsx_Counter_component_button_onClick","canonicalFilename":"counter.tsx_Counter_component_button_onClick_WTj7Z5OCKjk","hash":"WTj7Z5OCKjk","ctxKind":"eventHandler","ctxName":"onClick$","captures":true,"parent":"s_Jkq4JnSu3vc","loc":[226,247]}},"mapping":{"s_Jkq4JnSu3vc":"q-BP8RkWlE.js","s_o0dE1oWgGK4":"q-IacMbs2L.js","s_WTj7Z5OCKjk":"q-CUGg9l4N.js"},"bundles":{"q-B4N4tT8a.js":{"size":184,"imports":["q-CUGg9l4N.js","q-IacMbs2L.js"],"dynamicImports":["q-IacMbs2L.js"],"origins":["../../libs/qwikdev-astro/src/root.tsx"]},"q-BP8RkWlE.js":{"size":88,"imports":["q-CUGg9l4N.js","q-IacMbs2L.js"],"symbols":["s_Jkq4JnSu3vc"]},"q-CUGg9l4N.js":{"size":1610,"imports":["q-IacMbs2L.js"],"origins":["src/components/qwik/counter.tsx_Counter_component_Jkq4JnSu3vc.js","src/components/qwik/counter.tsx_Counter_component_button_onClick_WTj7Z5OCKjk.js"],"symbols":["s_WTj7Z5OCKjk"]},"q-CZTaFqsy.js":{"size":171,"imports":["q-CUGg9l4N.js","q-IacMbs2L.js"],"dynamicImports":["q-BP8RkWlE.js"],"origins":["src/components/qwik/counter.tsx"]},"q-IacMbs2L.js":{"size":61662,"origins":["../../libs/qwikdev-astro/src/root.tsx_root_component_o0dE1oWgGK4.js","../../node_modules/.pnpm/@builder.io+qwik@1.11.0_vite@6.0.1_@types+node@20.17.8_yaml@2.6.1_/node_modules/@builder.io/qwik/dist/core.prod.mjs","@builder.io/qwik/build"],"symbols":["s_o0dE1oWgGK4"]}},"injections":[],"version":"1","options":{"target":"client","buildMode":"production","entryStrategy":{"type":"smart"}},"platform":{"qwik":"1.11.0","vite":"","rollup":"4.27.4","env":"node","os":"darwin","node":"22.12.0"}} \ No newline at end of file +{"manifestHash":"yfj4kf","symbols":{"s_Jkq4JnSu3vc":{"origin":"components/qwik/counter.tsx","displayName":"counter.tsx_Counter_component","canonicalFilename":"counter.tsx_Counter_component_Jkq4JnSu3vc","hash":"Jkq4JnSu3vc","ctxKind":"function","ctxName":"component$","captures":false,"loc":[121,301]},"s_o0dE1oWgGK4":{"origin":"../../../libs/qwikdev-astro/src/root.tsx","displayName":"root.tsx_root_component","canonicalFilename":"root.tsx_root_component_o0dE1oWgGK4","hash":"o0dE1oWgGK4","ctxKind":"function","ctxName":"component$","captures":false,"loc":[81,136]},"s_WTj7Z5OCKjk":{"origin":"components/qwik/counter.tsx","displayName":"counter.tsx_Counter_component_button_onClick","canonicalFilename":"counter.tsx_Counter_component_button_onClick_WTj7Z5OCKjk","hash":"WTj7Z5OCKjk","ctxKind":"eventHandler","ctxName":"onClick$","captures":true,"parent":"s_Jkq4JnSu3vc","loc":[226,247]}},"mapping":{"s_Jkq4JnSu3vc":"q-gxfui5gO.js","s_o0dE1oWgGK4":"q-BVmDhJRY.js","s_WTj7Z5OCKjk":"q-D0icCluT.js"},"bundles":{"q-BVmDhJRY.js":{"size":61649,"origins":["../../libs/qwikdev-astro/src/root.tsx_root_component_o0dE1oWgGK4.js","../../node_modules/.pnpm/@builder.io+qwik@1.12.0_vite@6.0.5_@types+node@22.10.2_jiti@2.4.2_yaml@2.6.1_/node_modules/@builder.io/qwik/dist/core.prod.mjs","@builder.io/qwik/build"],"symbols":["s_o0dE1oWgGK4"]},"q-C4FN6EFX.js":{"size":184,"imports":["q-BVmDhJRY.js","q-D0icCluT.js"],"dynamicImports":["q-BVmDhJRY.js"],"origins":["../../libs/qwikdev-astro/src/root.tsx"]},"q-CyizIga3.js":{"size":171,"imports":["q-BVmDhJRY.js","q-D0icCluT.js"],"dynamicImports":["q-gxfui5gO.js"],"origins":["src/components/qwik/counter.tsx"]},"q-D0icCluT.js":{"size":1610,"imports":["q-BVmDhJRY.js"],"origins":["src/components/qwik/counter.tsx_Counter_component_Jkq4JnSu3vc.js","src/components/qwik/counter.tsx_Counter_component_button_onClick_WTj7Z5OCKjk.js"],"symbols":["s_WTj7Z5OCKjk"]},"q-gxfui5gO.js":{"size":88,"imports":["q-BVmDhJRY.js","q-D0icCluT.js"],"symbols":["s_Jkq4JnSu3vc"]}},"injections":[],"version":"1","options":{"target":"client","buildMode":"production","entryStrategy":{"type":"smart"}},"platform":{"qwik":"1.12.0","vite":"","rollup":"4.29.1","env":"node","os":"linux","node":"22.12.0"}} \ No newline at end of file diff --git a/package.json b/package.json index dd8feafb..9e91cceb 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "qwikdev-astro", + "type": "module", "version": "0.0.0", "scripts": { "dev": "pnpm -C ./apps/demo dev", @@ -19,25 +20,27 @@ "check.lint": "biome check .", "fix": "pnpm lint && pnpm format", "format": "biome format --write .", - "lint": "biome check --apply-unsafe .", + "lint": "biome check --write .", "build.create-qwikdev-astro": "pnpm -C ./libs/create-qwikdev-astro build", "postinstall": "lefthook install && playwright install --with-deps", "changeset": "changeset", "release": "pnpm build.create-qwikdev-astro && changeset publish", - "test": "playwright test --pass-with-no-tests", - "test.ui": "playwright test --ui", - "test.report": "playwright show-report" + "test": "pnpm test:cli && pnpm test:e2e", + "test:cli": "pnpm -C ./libs/create-qwikdev-astro test", + "test:e2e": "playwright test --pass-with-no-tests", + "test:e2e.ui": "playwright test --ui", + "test:e2e.report": "playwright show-report" }, "devDependencies": { - "@builder.io/qwik": "^1.11", - "astro": "5.0.2", - "@biomejs/biome": "1.6.1", - "@changesets/cli": "^2.27.10", + "@biomejs/biome": "1.9.4", + "@builder.io/qwik": "^1.12.0", + "@changesets/cli": "^2.27.11", "@inox-tools/astro-tests": "^0.2.1", - "@playwright/test": "^1.49.0", - "@types/node": "^20.17.8", - "lefthook": "^1.8.4", - "pkg-pr-new": "^0.0.8", - "vitest": "^2.1.6" + "@playwright/test": "^1.49.1", + "@qwikdev/create-astro": "workspace:*", + "@types/node": "^22.10.2", + "astro": "5.0.3", + "lefthook": "^1.10.0", + "pkg-pr-new": "^0.0.35" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7bbf8c76..78fcbda6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,143 +9,152 @@ importers: .: devDependencies: '@biomejs/biome': - specifier: 1.6.1 - version: 1.6.1 + specifier: 1.9.4 + version: 1.9.4 '@builder.io/qwik': - specifier: ^1.11 - version: 1.11.0(vite@5.2.10(@types/node@20.17.8)) + specifier: ^1.12.0 + version: 1.12.0(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) '@changesets/cli': - specifier: ^2.27.10 - version: 2.27.10 + specifier: ^2.27.11 + version: 2.27.11 '@inox-tools/astro-tests': specifier: ^0.2.1 - version: 0.2.1(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 0.2.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) '@playwright/test': - specifier: ^1.49.0 - version: 1.49.0 + specifier: ^1.49.1 + version: 1.49.1 + '@qwikdev/create-astro': + specifier: workspace:* + version: link:libs/create-qwikdev-astro '@types/node': - specifier: ^20.17.8 - version: 20.17.8 + specifier: ^22.10.2 + version: 22.10.2 astro: - specifier: 5.0.2 - version: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + specifier: 5.0.3 + version: 5.0.3(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) lefthook: - specifier: ^1.8.4 - version: 1.8.4 + specifier: ^1.10.0 + version: 1.10.0 pkg-pr-new: - specifier: ^0.0.8 - version: 0.0.8 - vitest: - specifier: ^2.1.6 - version: 2.1.6(@types/node@20.17.8) + specifier: ^0.0.35 + version: 0.0.35 apps/demo: dependencies: '@builder.io/qwik': - specifier: ^1.11 - version: 1.11.0(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + specifier: ^1.12.0 + version: 1.12.0(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro astro: specifier: 5.0.2 - version: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) apps/deno-demo: dependencies: '@astrojs/check': specifier: ^0.9.4 - version: 0.9.4(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5) + version: 0.9.4(prettier@3.4.2)(typescript@5.7.2) '@astrojs/deno': specifier: ^5.0.1 - version: 5.0.1(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)(yaml@2.6.1)) + version: 5.0.1(astro@5.1.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/react': - specifier: ^4.0.0 - version: 4.0.0(@types/node@20.17.8)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1) + specifier: ^4.1.2 + version: 4.1.2(@types/node@22.10.2)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1) '@builder.io/qwik': - specifier: ^1.11 - version: 1.11.0(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + specifier: ^1.12.0 + version: 1.12.0(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro '@types/react': - specifier: ^18.2.64 - version: 18.3.12 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^18.2.21 - version: 18.3.1 + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) astro: - specifier: ^5.0.2 - version: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)(yaml@2.6.1) + specifier: ^5.1.1 + version: 5.1.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) react: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) typescript: - specifier: ^5.4.3 - version: 5.4.5 + specifier: ^5.7.2 + version: 5.7.2 apps/node-demo: dependencies: '@astrojs/node': specifier: 9.0.0 - version: 9.0.0(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)) + version: 9.0.0(astro@5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/react': specifier: 4.0.0 - version: 4.0.0(@types/node@20.17.8)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1) + version: 4.0.0(@types/node@22.10.2)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1) '@builder.io/qwik': - specifier: ^1.11 - version: 1.11.0(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + specifier: ^1.12.0 + version: 1.12.0(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro '@types/react': - specifier: ^18.2.64 - version: 18.3.12 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^18.2.21 - version: 18.3.1 + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) astro: specifier: 5.0.2 - version: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) react: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) apps/website: dependencies: '@astrojs/check': specifier: ^0.5.10 - version: 0.5.10(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5) + version: 0.5.10(prettier@3.4.2)(typescript@5.7.2) '@astrojs/starlight': - specifier: ^0.21.2 - version: 0.21.5(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)) + specifier: ^0.21.5 + version: 0.21.5(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)) '@qwikdev/astro': specifier: workspace:* version: link:../../libs/qwikdev-astro astro: - specifier: ^4.3.5 - version: 4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5) + specifier: ^4.16.18 + version: 4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2) sharp: - specifier: ^0.32.5 + specifier: ^0.32.6 version: 0.32.6 typescript: - specifier: ^5.4.3 - version: 5.4.5 + specifier: ^5.7.2 + version: 5.7.2 libs/create-qwikdev-astro: dependencies: '@clack/prompts': - specifier: ^0.7.0 - version: 0.7.0 + specifier: ^0.8.2 + version: 0.8.2 + cross-spawn: + specifier: ^7.0.6 + version: 7.0.6 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 kleur: specifier: ^4.1.5 version: 4.1.5 + which: + specifier: ^5.0.0 + version: 5.0.0 which-pm-runs: specifier: ^1.1.0 version: 1.1.0 @@ -153,76 +162,100 @@ importers: specifier: ^17.7.2 version: 17.7.2 devDependencies: + '@japa/assert': + specifier: ^3.0.0 + version: 3.0.0(@japa/runner@3.1.4)(openapi-types@12.1.3) + '@japa/runner': + specifier: ^3.1.4 + version: 3.1.4 + '@types/cross-spawn': + specifier: ^6.0.6 + version: 6.0.6 + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 + '@types/node': + specifier: ^22.10.2 + version: 22.10.2 + '@types/which': + specifier: ^3.0.4 + version: 3.0.4 '@types/which-pm-runs': specifier: ^1.0.2 version: 1.0.2 '@types/yargs': - specifier: ^17.0.32 + specifier: ^17.0.33 version: 17.0.33 + tslib: + specifier: ^2.8.1 + version: 2.8.1 + tsm: + specifier: ^2.3.0 + version: 2.3.0 tsup: - specifier: ^8.2.4 - version: 8.3.5(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.1) + specifier: ^8.3.5 + version: 8.3.5(jiti@2.4.2)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.7.2 + version: 5.7.2 libs/demo-lib: devDependencies: '@builder.io/qwik': - specifier: ^1.7.3 - version: 1.11.0(vite@5.4.11(@types/node@20.17.8)) + specifier: ^1.12.0 + version: 1.12.0(vite@5.4.11(@types/node@20.17.10)) '@types/eslint': - specifier: ^8.56.10 + specifier: ^8.56.12 version: 8.56.12 '@types/node': - specifier: ^20.12.7 - version: 20.17.8 + specifier: ^20.17.10 + version: 20.17.10 '@typescript-eslint/eslint-plugin': - specifier: ^7.7.1 + specifier: ^7.18.0 version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.7.1 + specifier: ^7.18.0 version: 7.18.0(eslint@8.57.1)(typescript@5.4.5) eslint: - specifier: ^8.57.0 + specifier: ^8.57.1 version: 8.57.1 eslint-plugin-qwik: specifier: latest - version: 1.11.0(eslint@8.57.1)(typescript@5.4.5) + version: 1.12.0(eslint@8.57.1)(typescript@5.4.5) np: specifier: ^8.0.4 version: 8.0.4(typescript@5.4.5) prettier: - specifier: ^3.2.5 - version: 3.4.1 + specifier: ^3.4.2 + version: 3.4.2 typescript: specifier: 5.4.5 version: 5.4.5 undici: - specifier: '*' - version: 7.0.0 + specifier: ^7.2.0 + version: 7.2.0 vite: - specifier: ^5.2.10 - version: 5.4.11(@types/node@20.17.8) + specifier: ^5.4.11 + version: 5.4.11(@types/node@20.17.10) vite-tsconfig-paths: - specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.4.11(@types/node@20.17.8)) + specifier: ^4.3.2 + version: 4.3.2(typescript@5.4.5)(vite@5.4.11(@types/node@20.17.10)) libs/qwikdev-astro: dependencies: astro-integration-kit: - specifier: ^0.16 - version: 0.16.1(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)) + specifier: ^0.16.1 + version: 0.16.1(astro@5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) devDependencies: '@builder.io/qwik': - specifier: ^1.11 - version: 1.11.0(vite@5.4.11(@types/node@20.17.8)) + specifier: ^1.12.0 + version: 1.12.0(vite@5.4.11(@types/node@22.10.2)) astro: specifier: 5.0.2 - version: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@20.17.8) + version: 5.4.11(@types/node@22.10.2) libs/qwikdev-astro/tests/fixtures/minimal: dependencies: @@ -231,7 +264,7 @@ importers: version: link:../../.. astro: specifier: 5.0.0-beta.12 - version: 5.0.0-beta.12(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + version: 5.0.0-beta.12(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) packages: @@ -239,6 +272,21 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@apidevtools/json-schema-ref-parser@9.1.2': + resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} + + '@apidevtools/openapi-schemas@2.1.0': + resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} + engines: {node: '>=10'} + + '@apidevtools/swagger-methods@3.0.2': + resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} + + '@apidevtools/swagger-parser@10.0.3': + resolution: {integrity: sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==} + peerDependencies: + openapi-types: '>=7' + '@astrojs/check@0.5.10': resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} hasBin: true @@ -251,9 +299,6 @@ packages: peerDependencies: typescript: ^5.0.0 - '@astrojs/compiler@1.8.2': - resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - '@astrojs/compiler@2.10.3': resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} @@ -292,6 +337,9 @@ packages: '@astrojs/markdown-remark@6.0.0-beta.3': resolution: {integrity: sha512-M6wGxQH9rRwsmcJ+IVfYJ8moYmPVXE2u2pcPJx+VbOEMgJ7gmnJ1eso40KP0JOvq8nGPlcfeyqba45WrYxhKlA==} + '@astrojs/markdown-remark@6.0.1': + resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} + '@astrojs/mdx@2.3.1': resolution: {integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} @@ -324,6 +372,15 @@ packages: react: ^17.0.2 || ^18.0.0 || ^19.0.0-beta react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0-beta + '@astrojs/react@4.1.2': + resolution: {integrity: sha512-Slw8Bho50w1+rYnSnDl5PDAUikSOEItx5DEJU5OgmarTirBr1audIb2DgC8faAGcGkq5WhuUVsSiq/TmSORlwA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} + peerDependencies: + '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 + '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 + '@astrojs/sitemap@3.2.1': resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} @@ -351,16 +408,16 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + '@babel/compat-data@7.26.3': + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} '@babel/core@7.26.0': resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.25.9': @@ -401,8 +458,8 @@ packages: resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true @@ -438,79 +495,79 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + '@babel/traverse@7.26.4': + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} '@bconnorwhite/module@2.0.2': resolution: {integrity: sha512-ck1me5WMgZKp06gnJrVKEkytpehTTQbvsAMbF1nGPeHri/AZNhj87++PSE2LOxmZqM0EtGMaqeLdx7Lw7SUnTA==} - '@biomejs/biome@1.6.1': - resolution: {integrity: sha512-SILQvA2S0XeaOuu1bivv6fQmMo7zMfr2xqDEN+Sz78pGbAKZnGmg0emsXjQWoBY/RVm9kPCgX+aGEpZZTYaM7w==} - engines: {node: '>=14.*'} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.6.1': - resolution: {integrity: sha512-KlvY00iB9T/vFi4m/GXxEyYkYnYy6aw06uapzUIIdiMMj7I/pmZu7CsZlzWdekVD0j+SsQbxdZMsb0wPhnRSsg==} - engines: {node: '>=14.*'} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.6.1': - resolution: {integrity: sha512-jP4E8TXaQX5e3nvRJSzB+qicZrdIDCrjR0sSb1DaDTx4JPZH5WXq/BlTqAyWi3IijM+IYMjWqAAK4kOHsSCzxw==} - engines: {node: '>=14.*'} + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.6.1': - resolution: {integrity: sha512-YdkDgFecdHJg7PJxAMaZIixVWGB6St4yH08BHagO0fEhNNiY8cAKEVo2mcXlsnEiTMpeSEAY9VxLUrVT3IVxpw==} - engines: {node: '>=14.*'} + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.6.1': - resolution: {integrity: sha512-nxD1UyX3bWSl/RSKlib/JsOmt+652/9yieogdSC/UTLgVCZYOF7u8L/LK7kAa0Y4nA8zSPavAQTgko7mHC2ObA==} - engines: {node: '>=14.*'} + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.6.1': - resolution: {integrity: sha512-aSISIDmxq04NNy7tm4x9rBk2vH0ub2VDIE4outEmdC2LBtEJoINiphlZagx/FvjbsqUfygent9QUSn0oREnAXg==} - engines: {node: '>=14.*'} + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.6.1': - resolution: {integrity: sha512-BYAzenlMF3QdngjNFw9QVBXKGNzeecqwF3pwDgUGEvU7OJpn1/lyVkJVxYPtVGRNdjQ9e6l/s8NjKuBpW/ZR4Q==} - engines: {node: '>=14.*'} + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.6.1': - resolution: {integrity: sha512-/eCHQKZ1kEawUpkSuXq4urtxMsD1P1678OPG3zNKt3ru16AqqspLdO3jzBe3k74xCPYnQ36e9Yqc97Mo0qgPtg==} - engines: {node: '>=14.*'} + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.6.1': - resolution: {integrity: sha512-5TUZbzBwnDLFxLVGEPsorNi6eC2Gt+z4Oei9Qvq0M/4c4/mjZ96ABgwao/tMxf4ZBr/qyy2YdvF+gX9Rc+xC0A==} - engines: {node: '>=14.*'} + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] - '@builder.io/qwik@1.11.0': - resolution: {integrity: sha512-kVSB6EL0+WjXEAXHZs7vHgt64wON5meNdXIDsKqEvskmCBnOUQNgw7yeQmJa9Lafx3RAR+IUZ4d+3H6zqGuRXw==} + '@builder.io/qwik@1.12.0': + resolution: {integrity: sha512-j4TRqEIRoZrqklgWIXM+ioAdEu53t+Rp0nP9sGpdagOaB5KRTN5jZCykZQT+5/HOvE2ZIRf34WIe0bhr/EFQRg==} engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} hasBin: true peerDependencies: vite: ^5 - '@changesets/apply-release-plan@7.0.6': - resolution: {integrity: sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==} + '@changesets/apply-release-plan@7.0.7': + resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==} '@changesets/assemble-release-plan@6.0.5': resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} @@ -518,12 +575,12 @@ packages: '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - '@changesets/cli@2.27.10': - resolution: {integrity: sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==} + '@changesets/cli@2.27.11': + resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==} hasBin: true - '@changesets/config@3.0.4': - resolution: {integrity: sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==} + '@changesets/config@3.0.5': + resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -531,8 +588,8 @@ packages: '@changesets/get-dependents-graph@2.1.2': resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} - '@changesets/get-release-plan@4.0.5': - resolution: {integrity: sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==} + '@changesets/get-release-plan@4.0.6': + resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -567,10 +624,12 @@ packages: '@clack/core@0.3.5': resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} - '@clack/prompts@0.7.0': - resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} - bundledDependencies: - - is-unicode-supported + '@clack/prompts@0.8.2': + resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} @@ -606,12 +665,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -624,18 +677,18 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - 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'} @@ -648,14 +701,20 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.15.18': + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -672,14 +731,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -696,18 +755,18 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -720,14 +779,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -744,18 +803,18 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -768,14 +827,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -792,18 +851,18 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -816,14 +875,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -840,14 +899,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -864,14 +923,20 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.15.18': + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -888,14 +953,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -912,14 +977,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -936,14 +1001,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -960,14 +1025,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -984,14 +1049,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1008,14 +1073,20 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1032,20 +1103,26 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.24.0': resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1062,14 +1139,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} cpu: [x64] - os: [sunos] + os: [openbsd] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1086,18 +1163,18 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -1110,14 +1187,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1134,14 +1211,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1158,6 +1235,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1312,16 +1395,42 @@ packages: '@inox-tools/utils@0.3.0': resolution: {integrity: sha512-2Brt/vpn3Likf0L7qydvxoBw5yZFBrqO4tF5HhB1fMC4DYsgk+lQn4pB7RBdqVFqy52GjzXj7j2i5EFh1I/EPw==} - '@inquirer/figures@1.0.8': - resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + '@inquirer/figures@1.0.9': + resolution: {integrity: sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==} engines: {node: '>=18'} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@japa/assert@3.0.0': + resolution: {integrity: sha512-4Uvixj78PBpRGeNTqO1GN/qYyl4EeWmIwt/cKiQSLLsoZQpQfe8tvF4PO2Z+zteUi3Zv7WR6pluKYbLQrn3vjg==} + engines: {node: '>=18.16.0'} + peerDependencies: + '@japa/runner': ^3.1.2 + + '@japa/core@9.0.1': + resolution: {integrity: sha512-snngJNbvYC92nn+dB69DT2iyosWZLXPRnOp8NJnVEeotkkKAWSmcDqBKw9qq2+MVdshwClvKFVXTxko4MtmlEQ==} + engines: {node: '>=18.16.0'} + + '@japa/errors-printer@3.0.4': + resolution: {integrity: sha512-gqBWkc8X6n5y91HH7H8fXyfe3rKV1+YeMNgE/+CY6hXf0/BS7J55s/QldosKEV2ZiWj/WmE6UPZiFH8W873fGw==} + engines: {node: '>=18.16.0'} + + '@japa/runner@3.1.4': + resolution: {integrity: sha512-ShaVZLdYq3GbFwyNiqQMCfdEoNq9vgYC0P6Z9gflqPcSUfOmN5jeJTLrLpChCBM5Sx9kYuAm5Bh6cqv1ZrArkQ==} + engines: {node: '>=18.16.0'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@25.5.0': + resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==} + engines: {node: '>= 8.3'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1342,6 +1451,9 @@ packages: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1422,40 +1534,128 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@pagefind/darwin-arm64@1.2.0': - resolution: {integrity: sha512-pHnPL2rm4xbe0LqV376g84hUIsVdy4PK6o2ACveo0DSGoC40eOIwPUPftnUPUinSdDWkkySaL5FT5r9hsXk0ZQ==} + '@pagefind/darwin-arm64@1.3.0': + resolution: {integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==} cpu: [arm64] os: [darwin] - '@pagefind/darwin-x64@1.2.0': - resolution: {integrity: sha512-q2tcnfvcRyx0GnrJoUQJ5bRpiFNtI8DZWM6a4/k8sNJxm2dbM1BnY5hUeo4MbDfpb64Qc1wRMcvBUSOaMKBjfg==} + '@pagefind/darwin-x64@1.3.0': + resolution: {integrity: sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==} cpu: [x64] os: [darwin] - '@pagefind/default-ui@1.2.0': - resolution: {integrity: sha512-MDSbm34veKpzFP5eJMh/pcPdrOc4FZKUsbpDsbdjSLC2ZeuTjsfDBNu9MGZaNUvGKUdlKk5JozQkVO/dzdSxrQ==} + '@pagefind/default-ui@1.3.0': + resolution: {integrity: sha512-CGKT9ccd3+oRK6STXGgfH+m0DbOKayX6QGlq38TfE1ZfUcPc5+ulTuzDbZUnMo+bubsEOIypm4Pl2iEyzZ1cNg==} - '@pagefind/linux-arm64@1.2.0': - resolution: {integrity: sha512-wVtLOlF9AUrwLovP9ZSEKOYnwIVrrxId4I2Mz02Zxm3wbUIJyx8wHf6LyEf7W7mJ6rEjW5jtavKAbngKCAaicg==} + '@pagefind/linux-arm64@1.3.0': + resolution: {integrity: sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==} cpu: [arm64] os: [linux] - '@pagefind/linux-x64@1.2.0': - resolution: {integrity: sha512-Lo5aO2bA++sQTeEWzK5WKr3KU0yzVH5OnTY88apZfkgL4AVfXckH2mrOU8ouYKCLNPseIYTLFEdj0V5xjHQSwQ==} + '@pagefind/linux-x64@1.3.0': + resolution: {integrity: sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==} cpu: [x64] os: [linux] - '@pagefind/windows-x64@1.2.0': - resolution: {integrity: sha512-tGQcwQAb5Ndv7woc7lhH9iAdxOnTNsgCz8sEBbsASPB2A0uI8BWBmVdf2GFLQkYHqnnqYuun63sa+UOzB7Ah3g==} + '@pagefind/windows-x64@1.3.0': + resolution: {integrity: sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==} cpu: [x64] os: [win32] + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.5.0': + resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.49.0': - resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} engines: {node: '>=18'} hasBin: true @@ -1471,8 +1671,24 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@rollup/pluginutils@5.1.3': - resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + '@poppinss/cliui@6.4.2': + resolution: {integrity: sha512-+zx32scWjFUReNAzi75/QBwTiQrQ70a3khF5TNnyJVA8V2I9wTRPBLPdLWt83E5m1nTufoilF2MI7UBALkFH1Q==} + engines: {node: '>=18.16.0'} + + '@poppinss/colors@4.1.4': + resolution: {integrity: sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==} + engines: {node: '>=18.16.0'} + + '@poppinss/hooks@7.2.4': + resolution: {integrity: sha512-AoKSHC8ts199+PPa/R+XFF1A9FFhbiGibizOp0M54kCzvhwErGNLJd8Yk/b5nzodmsvApX7cjWVKPM5+12r2VA==} + engines: {node: '>=18.16.0'} + + '@poppinss/macroable@1.0.3': + resolution: {integrity: sha512-B4iV6QxW//Fn17+qF1EMZRmoThIUJlCtcO85yoRDJnMyHeAthjz4ig9OTkfGGXKtQhcdPX0me75gU5K9J897+w==} + engines: {node: '>=18.16.0'} + + '@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 @@ -1480,93 +1696,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.27.4': - resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.27.4': - resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.27.4': - resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.27.4': - resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.27.4': - resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.27.4': - resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': - resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.27.4': - resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.27.4': - resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.27.4': - resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': - resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.27.4': - resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.27.4': - resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.27.4': - resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.27.4': - resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.27.4': - resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.27.4': - resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.27.4': - resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} cpu: [x64] os: [win32] @@ -1582,32 +1803,23 @@ packages: zen-observable: optional: true - '@shikijs/core@1.23.1': - resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==} + '@shikijs/core@1.24.4': + resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} - '@shikijs/core@1.24.0': - resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==} + '@shikijs/engine-javascript@1.24.4': + resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} - '@shikijs/engine-javascript@1.23.1': - resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==} + '@shikijs/engine-oniguruma@1.24.4': + resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} - '@shikijs/engine-javascript@1.24.0': - resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==} + '@shikijs/types@1.24.4': + resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==} - '@shikijs/engine-oniguruma@1.23.1': - resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==} + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} - '@shikijs/engine-oniguruma@1.24.0': - resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==} - - '@shikijs/types@1.23.1': - resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==} - - '@shikijs/types@1.24.0': - resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==} - - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -1643,9 +1855,15 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/cross-spawn@6.0.6': + resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -1658,6 +1876,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/hast@2.3.10': resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} @@ -1667,9 +1888,21 @@ packages: '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@1.1.2': + resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} @@ -1694,8 +1927,11 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@20.17.8': - resolution: {integrity: sha512-ahz2g6/oqbKalW9sPv6L2iRbhLnojxjYWspAqhjvqSWBgGebEJT5GvRmk0QXPj3sbC6rU0GTQjPLQkmR8CObvA==} + '@types/node@20.17.10': + resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} + + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1703,14 +1939,16 @@ packages: '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - '@types/prop-types@15.7.13': - resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react-dom@18.3.1': - resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 - '@types/react@18.3.12': - resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -1727,9 +1965,15 @@ packages: '@types/which-pm-runs@1.0.2': resolution: {integrity: sha512-M0ZefeDApctHbjqtATOiixiwafG7pXD3exxnjku4XmX9+2DmONGghv5Z8Pnm0lNLBZKvDQyuG+4pLkH2UkP5gg==} + '@types/which@3.0.4': + resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} + '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@types/yargs@15.0.19': + resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} + '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} @@ -1758,8 +2002,8 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.16.0': - resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} + '@typescript-eslint/scope-manager@8.18.2': + resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@7.18.0': @@ -1776,8 +2020,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.16.0': - resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} + '@typescript-eslint/types@8.18.2': + resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -1789,14 +2033,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.16.0': - resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} + '@typescript-eslint/typescript-estree@8.18.2': + resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@7.18.0': resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} @@ -1804,26 +2045,23 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.16.0': - resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} + '@typescript-eslint/utils@8.18.2': + resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} 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: '>=4.8.4 <5.8.0' '@typescript-eslint/visitor-keys@7.18.0': resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.16.0': - resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} + '@typescript-eslint/visitor-keys@8.18.2': + resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.2.1': + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} '@vitejs/plugin-react@4.3.4': resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} @@ -1831,54 +2069,25 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitest/expect@2.1.6': - resolution: {integrity: sha512-9M1UR9CAmrhJOMoSwVnPh2rELPKhYo0m/CSgqw9PyStpxtkwhmdM6XYlXGKeYyERY1N6EIuzkQ7e3Lm1WKCoUg==} - - '@vitest/mocker@2.1.6': - resolution: {integrity: sha512-MHZp2Z+Q/A3am5oD4WSH04f9B0T7UvwEb+v5W0kCYMhtXGYbdyl2NUk1wdSMqGthmhpiThPDp/hEoVwu16+u1A==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@2.1.6': - resolution: {integrity: sha512-exZyLcEnHgDMKc54TtHca4McV4sKT+NKAe9ix/yhd/qkYb/TP8HTyXRFDijV19qKqTZM0hPL4753zU/U8L/gAA==} - - '@vitest/runner@2.1.6': - resolution: {integrity: sha512-SjkRGSFyrA82m5nz7To4CkRSEVWn/rwQISHoia/DB8c6IHIhaE/UNAo+7UfeaeJRE979XceGl00LNkIz09RFsA==} - - '@vitest/snapshot@2.1.6': - resolution: {integrity: sha512-5JTWHw8iS9l3v4/VSuthCndw1lN/hpPB+mlgn1BUhFbobeIUj1J1V/Bj2t2ovGEmkXLTckFjQddsxS5T6LuVWw==} - - '@vitest/spy@2.1.6': - resolution: {integrity: sha512-oTFObV8bd4SDdRka5O+mSh5w9irgx5IetrD5i+OsUUsk/shsBoHifwCzy45SAORzAhtNiprUVaK3hSCCzZh1jQ==} - - '@vitest/utils@2.1.6': - resolution: {integrity: sha512-ixNkFy3k4vokOUTU2blIUvOgKq/N2PW8vKIjZZYsGJCMX69MRa9J2sKqX5hY/k5O5Gty3YJChepkqZ3KM9LyIQ==} - - '@volar/kit@2.4.10': - resolution: {integrity: sha512-ul+rLeO9RlFDgkY/FhPWMnpFqAsjvjkKz8VZeOY5YCJMwTblmmSBlNJtFNxSBx9t/k1q80nEthLyxiJ50ZbIAg==} + '@volar/kit@2.4.11': + resolution: {integrity: sha512-ups5RKbMzMCr6RKafcCqDRnJhJDNWqo2vfekwOAj6psZ15v5TlcQFQAyokQJ3wZxVkzxrQM+TqTRDENfQEXpmA==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.10': - resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - '@volar/language-server@2.4.10': - resolution: {integrity: sha512-odQsgrJh8hOXfxkSj/BSnpjThb2/KDhbxZnG/XAEx6E3QGDQv4hAOz9GWuKoNs0tkjgwphQGIwDMT1JYaTgRJw==} + '@volar/language-server@2.4.11': + resolution: {integrity: sha512-W9P8glH1M8LGREJ7yHRCANI5vOvTrRO15EMLdmh5WNF9sZYSEbQxiHKckZhvGIkbeR1WAlTl3ORTrJXUghjk7g==} - '@volar/language-service@2.4.10': - resolution: {integrity: sha512-VxUiWS11rnRzakkqw5x1LPhsz+RBfD0CrrFarLGW2/voliYXEdCuSOM3r8JyNRvMvP4uwhD38ccAdTcULQEAIQ==} + '@volar/language-service@2.4.11': + resolution: {integrity: sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==} - '@volar/source-map@2.4.10': - resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - '@volar/typescript@2.4.10': - resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} '@vscode/emmet-helper@2.11.0': resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} @@ -1929,6 +2138,10 @@ packages: resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} engines: {node: '>=12'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} @@ -1961,6 +2174,10 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -1984,6 +2201,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + api-contract-validator@2.2.8: + resolution: {integrity: sha512-YM3rMcrIp8Thf/WWbVBXBGX793Mm3Phw2pn3VbJpiZkpeTCTtF10huKPrzQ2gSIaK5GjAhTRJMAOyf+rsS7MAw==} + engines: {node: '>=8'} + + api-schema-builder@2.0.11: + resolution: {integrity: sha512-85zbwf8MtPWodhfnmQRW5YD/fuGR12FP+8TbcYai5wbRnoUmPYLftLSbp7NB6zQMPb61Gjz+ApPUSyTdcCos7g==} + engines: {node: '>=8'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1997,8 +2222,8 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} array-includes@3.1.8: @@ -2012,14 +2237,17 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} + as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -2042,8 +2270,8 @@ packages: peerDependencies: astro: ^4.12.0 - astro@4.16.16: - resolution: {integrity: sha512-H1CttrV6+JFrDBQx0Mcbq5i5AeLhCbztB786+9wEu3svWL/QPNeCGqF0dgNORAYmP+rODGCPu/y9qKSh87iLuA==} + astro@4.16.18: + resolution: {integrity: sha512-G7zfwJt9BDHEZwlaLNvjbInIw2hPryyD654314KV/XT34pJU6SfN1S+mWa8RAkALcZNJnJXCJmT3JXLQStD3Lw==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -2057,6 +2285,19 @@ packages: engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true + astro@5.0.3: + resolution: {integrity: sha512-qpeN+POmmfAQu/XDXaI2CxkUgQFwH9uMUVaA1reV9rybzIbOVYc3E3BU5SkiP/W4BMUFPdJtyw6+/n/0AUv6rw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + astro@5.1.1: + resolution: {integrity: sha512-prpWC2PRs4P3FKQg6gZaU+VNMqbZi5pDvORGB2nrjfRjkrvF6/l4BqhvkJ6YQ0Ohm5rIMVz8ljgaRI77mLHbwg==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -2086,8 +2327,8 @@ packages: bare-path@2.1.3: resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} - bare-stream@2.4.2: - resolution: {integrity: sha512-XZ4ln/KV4KT+PXdIWTKjsLY+quqCaEtqqtgGJVPw9AoM73By03ij64YjepK0aQvHSWDb6AfAZwqKaFu68qkrdA==} + bare-stream@2.6.1: + resolution: {integrity: sha512-eVZbtKM+4uehzrsj49KtCy3Pbg7kO1pJ3SKZ1SFrIH/0pnj9scuGGgUlNDf/7qS8WKtGdiJY5Kyhs/ivYPTB/g==} base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -2144,8 +2385,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2159,8 +2400,8 @@ packages: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} - bundle-require@5.0.0: - resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.18' @@ -2185,8 +2426,16 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} call-me-maybe@1.0.2: @@ -2208,8 +2457,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001684: - resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2226,12 +2475,16 @@ packages: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + 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==} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} character-entities-html4@2.1.0: @@ -2249,6 +2502,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} @@ -2257,8 +2513,8 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.1: - resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} chownr@1.1.4: @@ -2272,6 +2528,9 @@ packages: resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + clean-stack@4.2.0: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} @@ -2280,6 +2539,10 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} + cli-boxes@4.0.1: + resolution: {integrity: sha512-5IOn+jcCEHEraYolBPs/sT4BxYCe2nHg374OPiItB1O96KZFseS2gthU4twyYzeDcFew4DaUM/xwc5BQf08JJw==} + engines: {node: '>=18.20 <19 || >=20.10'} + cli-cursor@2.1.0: resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} engines: {node: '>=4'} @@ -2296,10 +2559,18 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + cli-truncate@0.2.1: resolution: {integrity: sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==} engines: {node: '>=0.10.0'} + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + cli-width@2.2.1: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} @@ -2311,10 +2582,18 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} @@ -2322,6 +2601,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2353,6 +2636,10 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -2367,9 +2654,16 @@ packages: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -2383,13 +2677,20 @@ packages: resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} engines: {node: '>=12'} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + consola@3.3.1: + resolution: {integrity: sha512-GyKnPG3/I+a4RtJxgHquJXWr70g9I3c4NT3dvqh0LPHQP2nZFQBOBszb7a5u/pGzqr40AKplQA6UxM1BSynSXg==} engines: {node: ^14.18.0 || >=16.10.0} + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -2407,6 +2708,12 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} @@ -2422,23 +2729,29 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + dag-map@1.0.2: + resolution: {integrity: sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==} + + data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + 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.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} date-fns@1.30.1: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2446,6 +2759,9 @@ packages: supports-color: optional: true + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -2495,6 +2811,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + del@7.1.0: resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} engines: {node: '>=14.16'} @@ -2510,6 +2829,9 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2518,6 +2840,11 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2532,6 +2859,14 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff-sequences@25.2.6: + resolution: {integrity: sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==} + engines: {node: '>= 8.3'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -2563,19 +2898,27 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.66: - resolution: {integrity: sha512-pI2QF6+i+zjPbqRzJwkMvtvkdI7MjVbSh2g8dlMguDJIXEPw+kwasS1Jl+YGPEBfGVxsVgGUratAKymPdPo2vQ==} + electron-to-chromium@1.5.76: + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} + emittery@1.0.3: + resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} + engines: {node: '>=14.16'} + emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} @@ -2606,15 +2949,19 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.5: - resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} + es-abstract@1.23.7: + resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} engines: {node: '>= 0.4'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} es-errors@1.3.0: @@ -2645,13 +2992,133 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + esbuild-android-64@0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} engines: {node: '>=12'} hasBin: true - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true @@ -2665,6 +3132,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -2688,8 +3160,8 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-plugin-qwik@1.11.0: - resolution: {integrity: sha512-2F31M+JaCQLr9iHfwCwM+6ihOV200NyUmBLsmvshXj6YQVddanS0fOthyYznXX0rWsNu/jlhrPVb8qB5oPFZzg==} + eslint-plugin-qwik@1.12.0: + resolution: {integrity: sha512-tOQutLiIUd2RRVOLeRwYedWLG6MzdCZM9nUpByZn2AgsW55NPJXXrY744YQ+AsVLE6g5sw7GhuL4qoAEX666Xg==} engines: {node: '>=16.8.0 <18.0.0 || >=18.11'} peerDependencies: eslint: ^8.57.0 @@ -2776,6 +3248,10 @@ packages: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + exit-hook@3.2.0: resolution: {integrity: sha512-aIQN7Q04HGAV/I5BszisuHTZHXNoC23WtLkxdCLuYZMdWviRD0TMIt2bnUBi9MrHaF/hH8b3gwG9iaAUHKnJGA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2784,10 +3260,6 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect-type@1.1.0: - resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} - engines: {node: '>=12.0.0'} - expressive-code@0.33.5: resolution: {integrity: sha512-UPg2jSvZEfXPiCa4MKtMoMQ5Hwiv7In5/LSCa/ukhjzZqPO48iVsCcEBgXWEUmEAQ02P0z00/xFfBmVnUKH+Zw==} @@ -2824,8 +3296,8 @@ packages: fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} @@ -2859,6 +3331,10 @@ packages: resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} engines: {node: '>=14.16'} + find-cache-dir@5.0.0: + resolution: {integrity: sha512-OuWNfjfP05JcpAP3JPgAKUhWefjMRfI5iAoSsvE24ANYWJaepAtlSgWECSVEuRgSXpyNEc9DJwG/TZpgcOqyig==} + engines: {node: '>=16'} + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -2907,6 +3383,10 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -2931,8 +3411,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -2950,10 +3430,16 @@ packages: resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} engines: {node: '>= 0.4'} + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -2962,10 +3448,17 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + 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==} @@ -3018,8 +3511,9 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} got@11.8.6: resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} @@ -3042,12 +3536,16 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -3060,12 +3558,12 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: @@ -3116,8 +3614,8 @@ packages: hast-util-to-html@8.0.4: resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} hast-util-to-jsx-runtime@2.3.2: resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} @@ -3173,6 +3671,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} @@ -3192,6 +3694,10 @@ packages: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3270,18 +3776,21 @@ packages: resolution: {integrity: sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==} engines: {node: '>=18'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} is-arrayish@0.2.1: @@ -3294,17 +3803,21 @@ packages: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 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==} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} @@ -3317,16 +3830,16 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + 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==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} is-decimal@2.0.1: @@ -3346,12 +3859,16 @@ packages: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} + is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.0: - resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} is-fullwidth-code-point@1.0.0: @@ -3366,10 +3883,22 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} + is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3394,6 +3923,10 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-invalid-path@0.1.0: + resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} + engines: {node: '>=0.10.0'} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3401,16 +3934,12 @@ packages: is-name-taken@2.0.0: resolution: {integrity: sha512-W+FUWF5g7ONVJTx3rldZeVizmPzrMMUdscpSQ96vyYerx+4b2NcqaujLJJDWruGzE0FjzGZO9RFIipOGxx/WIw==} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - is-npm@6.0.0: resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} is-number@7.0.0: @@ -3441,11 +3970,15 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} is-scoped@3.0.0: @@ -3456,8 +3989,8 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} is-stream@1.1.0: @@ -3472,20 +4005,20 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + 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.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} is-typedarray@1.0.0: @@ -3507,15 +4040,20 @@ packages: resolution: {integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ==} engines: {node: '>=12'} + is-valid-path@0.1.1: + resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} + engines: {node: '>=0.10.0'} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} is-windows@1.0.2: @@ -3534,6 +4072,10 @@ packages: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -3544,6 +4086,14 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + issue-regex@4.3.0: resolution: {integrity: sha512-7731a/t2llyrk8Hdwl1x3LkhIFGzxHQGpJA7Ur9cIRViakQF2y25Lwhx8Ziy1B068+kBYUmYPBzw5uo3DdWrdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3551,6 +4101,30 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-diff@25.5.0: + resolution: {integrity: sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==} + engines: {node: '>= 8.3'} + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@25.2.6: + resolution: {integrity: sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==} + engines: {node: '>= 8.3'} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@25.5.0: + resolution: {integrity: sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==} + engines: {node: '>= 8.3'} + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -3566,8 +4140,8 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -3577,6 +4151,10 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-deref-sync@0.14.0: + resolution: {integrity: sha512-yGR1xmhdiD6R0MSrwWcFxQzAj5b3i5Gb/mt5tvQKgFMMeNe0KZYNEN/jWr7G+xn39Azqgcvk4ZKMs8dQl8e4wA==} + engines: {node: '>=6.0.0'} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -3600,6 +4178,9 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -3623,71 +4204,75 @@ packages: resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} engines: {node: '>=14.16'} - lefthook-darwin-arm64@1.8.4: - resolution: {integrity: sha512-OS5MsU0gvd8LYSpuQCHtmDUqwNrJ/LjCO0LGC1wNepY4OkuVl9DfX+rQ506CVUQYZiGVcwy2/qPOOBjNzA5+wQ==} + lefthook-darwin-arm64@1.10.0: + resolution: {integrity: sha512-UeVe5Jtb4uuN8elqDpw3Uf7HnZ183xrnoc9Wfqzw2Yc/qt1uHWkBQGqSlWe83HkBaMBlwuGF+V5mcycz/Dhd+w==} cpu: [arm64] os: [darwin] - lefthook-darwin-x64@1.8.4: - resolution: {integrity: sha512-QLRsqK9aTMRcVW8qz4pzI2OWnGCEcaEPJlIiFjwstYsS+wfkooxOS0UkfVMjy+QoGgEcki+cxF/FoY7lE7DDtw==} + lefthook-darwin-x64@1.10.0: + resolution: {integrity: sha512-o3nbkFcwZueoYgD/fsodtLFicM5FGFgT0lx6Vph3FBbHmneLuYrfipn38Y8C4JdMJsRhkqHAt8E8VTIZ7fhlZA==} cpu: [x64] os: [darwin] - lefthook-freebsd-arm64@1.8.4: - resolution: {integrity: sha512-chnQ1m/Cmn9c0sLdk5HL2SToE5LBJv5uQMdH1IGRRcw+nEqWqrMnDXvM75caiJAyjmUGvPH3czKTJDzTFV1E+A==} + lefthook-freebsd-arm64@1.10.0: + resolution: {integrity: sha512-bu0hg5cTCsvPEJUMvGl5QujgyloXfae9c/YkVHgLhkx5jdUR68QfGONoszEQenyWm6wQgVgUSN4MRDud9fro7w==} cpu: [arm64] os: [freebsd] - lefthook-freebsd-x64@1.8.4: - resolution: {integrity: sha512-KQi+WBUdnGLnK0rHOR58kbMH5TDVN1ZjZLu66Pv9FCG7Y7shR1qtaTXu+wmxdRhMvaLeQIXRsUEPjNRC66yMmA==} + lefthook-freebsd-x64@1.10.0: + resolution: {integrity: sha512-vElX6xKbdKtma91rGvIrtt0TX/1hMIvh1lF2QHHKuouce3GAConget0eEBkhWIWYZg3wXU0/0lIJatZq1daC1g==} cpu: [x64] os: [freebsd] - lefthook-linux-arm64@1.8.4: - resolution: {integrity: sha512-CXNcqIskLwTwQARidGdFqmNxpvOU3jsWPK4KA7pq2+QmlWJ64w98ebMvNBoUmRUCXqzmUm7Udf/jpfz2fobewQ==} + lefthook-linux-arm64@1.10.0: + resolution: {integrity: sha512-oLJFRguZTS1L8wpoawRBwawVRcHRSvq7R38qq1n83Pz/Z/2SdocsRjkARNiqSI8B0piZiX+6863H1ycvd4P3Gw==} cpu: [arm64] os: [linux] - lefthook-linux-x64@1.8.4: - resolution: {integrity: sha512-pVNITkFBxUCEtamWSM/res2Gd48+m9YKbNyIBndAuZVC5pKV5aGKZy2DNq6PWUPYiUDPx+7hoAtCJg/tlAiqhw==} + lefthook-linux-x64@1.10.0: + resolution: {integrity: sha512-38VUuekwlSRKeMrktmj0FsQ0Bu3Z8XKGK66gnvDR5vUGd0ftZ+SgvgB1GVWHeySDepox0Mvwz1mKIZorT62g5g==} cpu: [x64] os: [linux] - lefthook-openbsd-arm64@1.8.4: - resolution: {integrity: sha512-l+i/Dg5X36kYzhpMGSPE3rMbWy1KSytbLB9lY1PmxYb6LRH6iQTYIoxvLabVUwSBPSq8HtIFa50+bvC5+scfVA==} + lefthook-openbsd-arm64@1.10.0: + resolution: {integrity: sha512-qFCABCaTdOpoh6kaCDuv91y9L7VuZE4V7Q91bcYtxUql/JEO0y0uCoz8fmkTfLogWWuFmp3V2ecuIIday1RBYQ==} cpu: [arm64] os: [openbsd] - lefthook-openbsd-x64@1.8.4: - resolution: {integrity: sha512-CqhDDPPX8oHzMLgNi/Reba823DRzj+eMNWQ8axvSiIG+zmG1w20xZH5QSs/mD3tjrND90yfDd90mWMt181qPyA==} + lefthook-openbsd-x64@1.10.0: + resolution: {integrity: sha512-c3ObgVG64bybz6PfHNLhdwzDADKfjX+2bxMC4FVfutU8TYRrkfyeM67tzrqXOm37TwiKI+u0f4hpn26Fe1TNnQ==} cpu: [x64] os: [openbsd] - lefthook-windows-arm64@1.8.4: - resolution: {integrity: sha512-dvpvorICmVjmw29Aiczg7DcaSzkd86bEBomiGq4UsAEk3+7ExLrlWJDLFsI6xLjMKmTxy+F7eXb2uDtuFC1N4g==} + lefthook-windows-arm64@1.10.0: + resolution: {integrity: sha512-m42wiAIQoesl7aCZsLcMQTTnGA08sIB/JjiI892CUFX/bTf2V4sH1arSgmqrA0KKl7PUW4WEDaeqLZSNAPMOGA==} cpu: [arm64] os: [win32] - lefthook-windows-x64@1.8.4: - resolution: {integrity: sha512-e+y8Jt4/7PnoplhOuK48twjGVJEsU4T3J5kxD4mWfl6Cbit0YSn4bme9nW41eqCqTUqOm+ky29XlfnPHFX5ZNA==} + lefthook-windows-x64@1.10.0: + resolution: {integrity: sha512-PL2vmj30X8i5DEMU5Sg25U0luakP9EFyG0gpMLJ97IyJYRO7Drka0tDOwbBH7RexRY4HP4FELLhkGvwuEQAyLg==} cpu: [x64] os: [win32] - lefthook@1.8.4: - resolution: {integrity: sha512-XNyMaTWNRuADOaocYiHidgNkNDz8SCekpdNJ7lqceFcBT2zjumnb28/o7IMaNROpLBZdQkLkJXSeaQWGqn3kog==} + lefthook@1.10.0: + resolution: {integrity: sha512-UumSwQpbI8z4kEj6MfrQ2aNvxAGO/kUHEH009tpEFOSqqsCmEHmzekRReOAZS17k5dit2xThnHRKvAvwbhsvFA==} hasBin: true levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + listr-input@0.2.1: resolution: {integrity: sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==} engines: {node: '>=6'} @@ -3730,12 +4315,21 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.set@4.3.2: + resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -3768,6 +4362,10 @@ packages: resolution: {integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==} engines: {node: '>=4'} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3800,8 +4398,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - magic-string@0.30.14: - resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -3813,6 +4411,13 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + md5@2.2.1: + resolution: {integrity: sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==} + mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} @@ -3867,6 +4472,9 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + memory-cache@0.2.0: + resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==} + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -3998,6 +4606,11 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + mimic-fn@1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} @@ -4060,6 +4673,10 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + mute-stream@0.0.7: resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} @@ -4105,8 +4722,18 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-package-data@3.0.3: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} @@ -4160,14 +4787,20 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -4191,16 +4824,22 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - oniguruma-to-es@0.4.1: - resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==} - - oniguruma-to-es@0.7.0: - resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==} + oniguruma-to-es@0.8.1: + resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} open@9.1.0: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} + openapi-schema-validator@3.0.3: + resolution: {integrity: sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==} + + openapi-types@1.3.4: + resolution: {integrity: sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==} + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4252,8 +4891,8 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@6.1.0: - resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} engines: {node: '>=18'} p-locate@4.1.0: @@ -4302,22 +4941,22 @@ packages: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} - package-manager-detector@0.2.5: - resolution: {integrity: sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==} + package-manager-detector@0.2.8: + resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} package-name-conflict@1.0.3: resolution: {integrity: sha512-DPBNWSUWC0wPofXeNThao0uP4a93J7r90UyhagmJS0QcacTTkorZwXYsOop70phn1hKdcf/2e9lJIhazS8bx5A==} - pagefind@1.2.0: - resolution: {integrity: sha512-sFVv5/x73qCp9KlLHv8/uWDv7rG1tsWcG9MuXc5YTrXIrb8c1Gshm9oc5rMLXNZILXUWai8WczqaK4jjroEzng==} + pagefind@1.3.0: + resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} hasBin: true parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-json-object@1.1.0: resolution: {integrity: sha512-4w5s6uJY1tW9REY8UwUOyaZKSKsrbQrMEzlV/Le/g5t4iMWuuyK83pZZ0OZimSOL9iyv2ORvRSgz71Ekd7iD3g==} @@ -4406,20 +5045,20 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkg-pr-new@0.0.8: - resolution: {integrity: sha512-yvpAQKGp8F2XIVY/USxd53lYjfF4UynWskFl4roL36UNdmbRlTV85sIlNXAs+6HY7hOZqqGmKXbDml+sEYKj3A==} + pkg-pr-new@0.0.35: + resolution: {integrity: sha512-ljR1Axx1Vb4uY8NZ+QItj1PpuBtLDJcgEbWsdscDdif1I3YJUpfSRWmdULPkTbNxhfbG8TnPmheAZSmqh2QzcQ==} hasBin: true pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} engines: {node: '>=18'} hasBin: true @@ -4472,10 +5111,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-astro@0.13.0: - resolution: {integrity: sha512-5HrJNnPmZqTUNoA97zn4gNQv9BgVhv+et03314WpQ9H9N8m2L9OSV798olwmG2YLXPl1iSstlJCR1zB3x5xG4g==} - engines: {node: ^14.15.0 || >=16.0.0} - prettier@2.8.7: resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} engines: {node: '>=10.13.0'} @@ -4486,11 +5121,26 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.4.1: - resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true + pretty-format@25.5.0: + resolution: {integrity: sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==} + engines: {node: '>= 8.3'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-hrtime@1.0.3: + resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} + engines: {node: '>= 0.8'} + + printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -4542,6 +5192,9 @@ packages: resolution: {integrity: sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==} engines: {node: '>=18'} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -4555,6 +5208,12 @@ packages: peerDependencies: react: ^18.3.1 + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -4609,15 +5268,15 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - reflect.getprototypeof@1.0.7: - resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} + reflect.getprototypeof@1.0.9: + resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} engines: {node: '>= 0.4'} regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex-recursion@4.3.0: - resolution: {integrity: sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==} + regex-recursion@5.0.0: + resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} @@ -4757,6 +5416,10 @@ packages: retext@9.0.0: resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4766,8 +5429,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.27.4: - resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4793,26 +5456,20 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + 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-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + 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==} - sass-formatter@0.7.9: - resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -4844,6 +5501,10 @@ packages: resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==} engines: {node: '>= 18'} + serialize-error@11.0.3: + resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==} + engines: {node: '>=14.16'} + server-destroy@1.0.1: resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} @@ -4858,6 +5519,10 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + sharp@0.32.6: resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} engines: {node: '>=14.15.0'} @@ -4874,18 +5539,24 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.23.1: - resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==} + shiki@1.24.4: + resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} - shiki@1.24.0: - resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==} + 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@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -4919,10 +5590,22 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@0.0.4: resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==} engines: {node: '>=0.10.0'} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4964,8 +5647,8 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -4981,8 +5664,8 @@ packages: stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} - streamx@2.20.2: - resolution: {integrity: sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==} + streamx@2.21.1: + resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -5008,12 +5691,13 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + 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==} @@ -5080,8 +5764,9 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} + supports-color@10.0.0: + resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} + engines: {node: '>=18'} supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -5095,10 +5780,21 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} + swagger-parser@10.0.3: + resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==} + engines: {node: '>=10'} + + swagger-schema-official@2.0.0-bab6bed: + resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} + symbol-observable@1.2.0: resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} engines: {node: '>=0.10.0'} @@ -5107,6 +5803,10 @@ packages: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} @@ -5128,8 +5828,12 @@ packages: resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==} engines: {node: '>=12'} - text-decoder@1.2.1: - resolution: {integrity: sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==} + terminal-size@4.0.0: + resolution: {integrity: sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==} + engines: {node: '>=18'} + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -5144,30 +5848,19 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} - 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'} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} @@ -5188,6 +5881,10 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + traverse@0.6.10: + resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} + engines: {node: '>= 0.4'} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -5198,8 +5895,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.4.2: - resolution: {integrity: sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -5223,6 +5920,11 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsm@2.3.0: + resolution: {integrity: sha512-++0HFnmmR+gMpDtKTnW3XJ4yv9kVGi20n+NfyQWB9qwJvTaIWY9kBmzek2YUQK5APTQ/1DTrXmm4QtFPmW9Rzw==} + engines: {node: '>=12'} + hasBin: true + tsup@8.3.5: resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} engines: {node: '>=18'} @@ -5273,20 +5975,20 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.29.0: - resolution: {integrity: sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==} + type-fest@4.30.2: + resolution: {integrity: sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==} engines: {node: '>=16'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.3: - resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} typed-array-length@1.0.7: @@ -5296,6 +5998,10 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray.prototype.slice@1.0.3: + resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + engines: {node: '>= 0.4'} + types-eslintrc@1.0.3: resolution: {integrity: sha512-zKTR6aKHEudQpl+JoZjS3qh0B5IzSpQK/BCpYBECujcnKtqL87DJJ1sJKe5B8k/y8/UJ5sukq42QDvlaJyCO2w==} @@ -5327,20 +6033,30 @@ packages: ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 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@6.21.0: resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} - undici@7.0.0: - resolution: {integrity: sha512-c4xi3kWnQJrb7h2q8aJYKvUzmz7boCgz1cUCC6OwdeM5Tr2P0hDuthr2iut4ggqsz+Cnh20U/LoTzbKIdDS/Nw==} + undici@7.2.0: + resolution: {integrity: sha512-klt+0S55GBViA9nsq48/NSCo4YX5mjydjypxD7UmHh/brMu8h/Mhd/F7qAeoH2NOO8SDTk6kjnTFc4WpzmfYpQ==} engines: {node: '>=20.18.1'} + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} @@ -5412,10 +6128,77 @@ packages: 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'} + + unstorage@1.14.1: + resolution: {integrity: sha512-0MBKpoVhNLL/Ixvue9lIsrHkwwWW9/f3TRftsYu1R7nZJJyHSdgPMBDjny2op07nirnS3OX6H3u+YDFGld+1Bg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.1 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -5426,6 +6209,9 @@ packages: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5440,6 +6226,9 @@ packages: resolution: {integrity: sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==} engines: {node: '>=0.10.0'} + valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -5450,6 +6239,10 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + vfile-location@4.1.0: resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} @@ -5468,11 +6261,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.1.6: - resolution: {integrity: sha512-DBfJY0n9JUwnyLxPSSUmEePT21j8JZp/sR9n+/gBwQU6DcQOioPdb8/pibWfXForbirSagZCilseYIwaL3f95A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -5481,34 +6269,6 @@ packages: vite: optional: true - vite@5.2.10: - resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} - 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: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.4.11: resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5540,8 +6300,8 @@ packages: terser: optional: true - vite@6.0.1: - resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==} + vite@6.0.5: + resolution: {integrity: sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -5588,31 +6348,6 @@ packages: vite: optional: true - vitest@2.1.6: - resolution: {integrity: sha512-isUCkvPL30J4c5O5hgONeFRsDmlw6kzFEdLQHLezmDdKQHy8Ke/B/dgdTMEgU0vm+iZ0TjW8GuK83DiahBoKWQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 2.1.6 - '@vitest/ui': 2.1.6 - 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 - volar-service-css@0.0.62: resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} peerDependencies: @@ -5672,8 +6407,8 @@ packages: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.1: - resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + vscode-css-languageservice@6.3.2: + resolution: {integrity: sha512-GEpPxrUTAeXWdZWHev1OJU9lz2Q2/PPBxQ2TIRmLGvQiH3WZbqaNoute0n0ewxlgtjzTW3AKZT+NHySk5Rf4Eg==} vscode-html-languageservice@5.3.1: resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} @@ -5731,11 +6466,12 @@ packages: whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - 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.2.0: - resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + 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: @@ -5750,8 +6486,8 @@ packages: resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} engines: {node: '>=18.12'} - which-typed-array@1.1.16: - resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} which@2.0.2: @@ -5759,9 +6495,9 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true widest-line@4.0.1: @@ -5776,6 +6512,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@3.0.1: resolution: {integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==} engines: {node: '>=4'} @@ -5848,8 +6587,8 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - yocto-spinner@0.1.1: - resolution: {integrity: sha512-vb6yztJdmbX9BwiR2NlKim7roGM5xFFhiTO6UstNiKBnh8NT6uFNjpXYC6DWTnLgRRyHh2nDNEM8kLHSRLw4kg==} + yocto-spinner@0.1.2: + resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} engines: {node: '>=18.19'} yoctocolors-cjs@2.1.2: @@ -5860,14 +6599,25 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} + youch-terminal@2.2.3: + resolution: {integrity: sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==} + + youch@3.3.4: + resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + + z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + zod-package-json@1.0.3: resolution: {integrity: sha512-Mb6GzuRyUEl8X+6V6xzHbd4XV0au/4gOYrYP+CAfHL32uPmGswES+v2YqonZiW1NZWVA3jkssCKSU2knonm/aQ==} engines: {node: '>=20'} - zod-to-json-schema@3.23.5: - resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: - zod: ^3.23.3 + zod: ^3.24.1 zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} @@ -5875,8 +6625,8 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -5885,75 +6635,92 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@astrojs/check@0.5.10(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5)': + '@apidevtools/json-schema-ref-parser@9.1.2': + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + call-me-maybe: 1.0.2 + js-yaml: 4.1.0 + + '@apidevtools/openapi-schemas@2.1.0': {} + + '@apidevtools/swagger-methods@3.0.2': {} + + '@apidevtools/swagger-parser@10.0.3(openapi-types@12.1.3)': + dependencies: + '@apidevtools/json-schema-ref-parser': 9.1.2 + '@apidevtools/openapi-schemas': 2.1.0 + '@apidevtools/swagger-methods': 3.0.2 + '@jsdevtools/ono': 7.1.3 + call-me-maybe: 1.0.2 + openapi-types: 12.1.3 + z-schema: 5.0.5 + + '@astrojs/check@0.5.10(prettier@3.4.2)(typescript@5.7.2)': dependencies: - '@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5) + '@astrojs/language-server': 2.15.4(prettier@3.4.2)(typescript@5.7.2) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.4.5 + typescript: 5.7.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - '@astrojs/check@0.9.4(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5)': + '@astrojs/check@0.9.4(prettier@3.4.2)(typescript@5.7.2)': dependencies: - '@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5) - chokidar: 4.0.1 + '@astrojs/language-server': 2.15.4(prettier@3.4.2)(typescript@5.7.2) + chokidar: 4.0.3 kleur: 4.1.5 - typescript: 5.4.5 + typescript: 5.7.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - '@astrojs/compiler@1.8.2': - optional: true - '@astrojs/compiler@2.10.3': {} - '@astrojs/deno@5.0.1(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)(yaml@2.6.1))': + '@astrojs/deno@5.0.1(astro@5.1.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - astro: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)(yaml@2.6.1) + astro: 5.1.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) esbuild: 0.19.12 '@astrojs/internal-helpers@0.4.1': {} '@astrojs/internal-helpers@0.4.2': {} - '@astrojs/language-server@2.15.4(prettier-plugin-astro@0.13.0)(prettier@3.4.1)(typescript@5.4.5)': + '@astrojs/language-server@2.15.4(prettier@3.4.2)(typescript@5.7.2)': dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/yaml2ts': 0.2.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@volar/kit': 2.4.10(typescript@5.4.5) - '@volar/language-core': 2.4.10 - '@volar/language-server': 2.4.10 - '@volar/language-service': 2.4.10 + '@volar/kit': 2.4.11(typescript@5.7.2) + '@volar/language-core': 2.4.11 + '@volar/language-server': 2.4.11 + '@volar/language-service': 2.4.11 fast-glob: 3.3.2 muggle-string: 0.4.1 - volar-service-css: 0.0.62(@volar/language-service@2.4.10) - volar-service-emmet: 0.0.62(@volar/language-service@2.4.10) - volar-service-html: 0.0.62(@volar/language-service@2.4.10) - volar-service-prettier: 0.0.62(@volar/language-service@2.4.10)(prettier@3.4.1) - volar-service-typescript: 0.0.62(@volar/language-service@2.4.10) - volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.10) - volar-service-yaml: 0.0.62(@volar/language-service@2.4.10) + volar-service-css: 0.0.62(@volar/language-service@2.4.11) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.11) + volar-service-html: 0.0.62(@volar/language-service@2.4.11) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.11)(prettier@3.4.2) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.11) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.11) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.11) vscode-html-languageservice: 5.3.1 vscode-uri: 3.0.8 optionalDependencies: - prettier: 3.4.1 - prettier-plugin-astro: 0.13.0 + prettier: 3.4.2 transitivePeerDependencies: - typescript '@astrojs/markdown-remark@5.1.0': dependencies: - '@astrojs/prism': 3.1.0 + '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 @@ -5965,7 +6732,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 2.1.0 - shiki: 1.23.1 + shiki: 1.24.4 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -5988,7 +6755,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.23.1 + shiki: 1.24.4 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -6012,7 +6779,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.23.1 + shiki: 1.24.4 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -6036,7 +6803,31 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.23.1 + shiki: 1.24.4 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/markdown-remark@6.0.1': + dependencies: + '@astrojs/prism': 3.2.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.24.4 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -6045,17 +6836,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@2.3.1(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5))': + '@astrojs/mdx@2.3.1(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2))': dependencies: '@astrojs/markdown-remark': 5.1.0 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5) + astro: 4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 github-slugger: 2.0.0 gray-matter: 4.0.3 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 kleur: 4.1.5 rehype-raw: 7.0.0 remark-gfm: 4.0.0 @@ -6066,9 +6857,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.0.0(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1))': + '@astrojs/node@9.0.0(astro@5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - astro: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) send: 1.1.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -6086,15 +6877,38 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/react@4.0.0(@types/node@20.17.8)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1)': + '@astrojs/react@4.0.0(@types/node@22.10.2)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1)': + dependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@vitejs/plugin-react': 4.3.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + ultrahtml: 1.5.3 + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@astrojs/react@4.1.2(@types/node@22.10.2)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.6.1)': dependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 - '@vitejs/plugin-react': 4.3.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + '@vitejs/plugin-react': 4.3.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) ultrahtml: 1.5.3 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -6113,17 +6927,17 @@ snapshots: dependencies: sitemap: 8.0.0 stream-replace-string: 2.0.0 - zod: 3.23.8 + zod: 3.24.1 - '@astrojs/starlight@0.21.5(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5))': + '@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2))': dependencies: - '@astrojs/mdx': 2.3.1(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)) + '@astrojs/mdx': 2.3.1(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)) '@astrojs/sitemap': 3.2.1 - '@pagefind/default-ui': 1.2.0 + '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - astro: 4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5) - astro-expressive-code: 0.33.5(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)) + astro: 4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2) + astro-expressive-code: 0.33.5(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -6131,7 +6945,7 @@ snapshots: hastscript: 8.0.0 mdast-util-directive: 3.0.0 mdast-util-to-markdown: 2.1.2 - pagefind: 1.2.0 + pagefind: 1.3.0 rehype: 13.0.2 remark-directive: 3.0.0 unified: 11.0.5 @@ -6143,7 +6957,7 @@ snapshots: '@astrojs/telemetry@3.1.0': dependencies: ci-info: 4.1.0 - debug: 4.3.7 + debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -6155,7 +6969,7 @@ snapshots: '@astrojs/telemetry@3.2.0': dependencies: ci-info: 4.1.0 - debug: 4.3.7 + debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -6167,7 +6981,7 @@ snapshots: '@astrojs/telemetry@3.2.0-beta.0': dependencies: ci-info: 4.1.0 - debug: 4.3.7 + debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -6186,52 +7000,52 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.2': {} + '@babel/compat-data@7.26.3': {} '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.3 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.2': + '@babel/generator@7.26.3': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.3 lru-cache: 5.1.1 semver: 6.3.1 '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color @@ -6240,7 +7054,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.4 transitivePeerDependencies: - supports-color @@ -6255,11 +7069,11 @@ snapshots: '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 - '@babel/parser@7.26.2': + '@babel/parser@7.26.3': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: @@ -6283,7 +7097,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color @@ -6294,22 +7108,22 @@ snapshots: '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 - '@babel/traverse@7.25.9': + '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.3.7 + '@babel/types': 7.26.3 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.26.0': + '@babel/types@7.26.3': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 @@ -6320,59 +7134,59 @@ snapshots: read-json-safe: 1.0.5 types-pkg-json: 1.2.1 - '@biomejs/biome@1.6.1': + '@biomejs/biome@1.9.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.6.1 - '@biomejs/cli-darwin-x64': 1.6.1 - '@biomejs/cli-linux-arm64': 1.6.1 - '@biomejs/cli-linux-arm64-musl': 1.6.1 - '@biomejs/cli-linux-x64': 1.6.1 - '@biomejs/cli-linux-x64-musl': 1.6.1 - '@biomejs/cli-win32-arm64': 1.6.1 - '@biomejs/cli-win32-x64': 1.6.1 + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 - '@biomejs/cli-darwin-arm64@1.6.1': + '@biomejs/cli-darwin-arm64@1.9.4': optional: true - '@biomejs/cli-darwin-x64@1.6.1': + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@biomejs/cli-linux-arm64-musl@1.6.1': + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true - '@biomejs/cli-linux-arm64@1.6.1': + '@biomejs/cli-linux-arm64@1.9.4': optional: true - '@biomejs/cli-linux-x64-musl@1.6.1': + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.6.1': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.6.1': + '@biomejs/cli-win32-arm64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.6.1': + '@biomejs/cli-win32-x64@1.9.4': optional: true - '@builder.io/qwik@1.11.0(vite@5.2.10(@types/node@20.17.8))': + '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@20.17.10))': dependencies: csstype: 3.1.3 - vite: 5.2.10(@types/node@20.17.8) + vite: 5.4.11(@types/node@20.17.10) - '@builder.io/qwik@1.11.0(vite@5.4.11(@types/node@20.17.8))': + '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@22.10.2))': dependencies: csstype: 3.1.3 - vite: 5.4.11(@types/node@20.17.8) + vite: 5.4.11(@types/node@22.10.2) - '@builder.io/qwik@1.11.0(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1))': + '@builder.io/qwik@1.12.0(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1))': dependencies: csstype: 3.1.3 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) - '@changesets/apply-release-plan@7.0.6': + '@changesets/apply-release-plan@7.0.7': dependencies: - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.2 '@changesets/should-skip-package': 0.1.1 @@ -6399,15 +7213,15 @@ snapshots: dependencies: '@changesets/types': 6.0.0 - '@changesets/cli@2.27.10': + '@changesets/cli@2.27.11': dependencies: - '@changesets/apply-release-plan': 7.0.6 + '@changesets/apply-release-plan': 7.0.7 '@changesets/assemble-release-plan': 6.0.5 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.5 + '@changesets/get-release-plan': 4.0.6 '@changesets/git': 3.0.2 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.1 @@ -6423,14 +7237,14 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.5 + package-manager-detector: 0.2.8 picocolors: 1.1.1 resolve-from: 5.0.0 semver: 7.6.3 spawndamnit: 3.0.1 term-size: 2.2.1 - '@changesets/config@3.0.4': + '@changesets/config@3.0.5': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 @@ -6451,10 +7265,10 @@ snapshots: picocolors: 1.1.1 semver: 7.6.3 - '@changesets/get-release-plan@4.0.5': + '@changesets/get-release-plan@4.0.6': dependencies: '@changesets/assemble-release-plan': 6.0.5 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/pre': 2.0.1 '@changesets/read': 0.6.2 '@changesets/types': 6.0.0 @@ -6517,12 +7331,15 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/prompts@0.7.0': + '@clack/prompts@0.8.2': dependencies: '@clack/core': 0.3.5 picocolors: 1.1.1 sisteransi: 1.0.5 + '@colors/colors@1.5.0': + optional: true + '@ctrl/tinycolor@3.6.1': {} '@emmetio/abbreviation@2.3.3': @@ -6556,19 +7373,16 @@ snapshots: '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/aix-ppc64@0.20.2': - optional: true - '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/aix-ppc64@0.24.0': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.20.2': + '@esbuild/android-arm64@0.19.12': optional: true '@esbuild/android-arm64@0.21.5': @@ -6577,10 +7391,13 @@ snapshots: '@esbuild/android-arm64@0.24.0': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.15.18': optional: true - '@esbuild/android-arm@0.20.2': + '@esbuild/android-arm@0.19.12': optional: true '@esbuild/android-arm@0.21.5': @@ -6589,10 +7406,10 @@ snapshots: '@esbuild/android-arm@0.24.0': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.20.2': + '@esbuild/android-x64@0.19.12': optional: true '@esbuild/android-x64@0.21.5': @@ -6601,10 +7418,10 @@ snapshots: '@esbuild/android-x64@0.24.0': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.20.2': + '@esbuild/darwin-arm64@0.19.12': optional: true '@esbuild/darwin-arm64@0.21.5': @@ -6613,10 +7430,10 @@ snapshots: '@esbuild/darwin-arm64@0.24.0': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.20.2': + '@esbuild/darwin-x64@0.19.12': optional: true '@esbuild/darwin-x64@0.21.5': @@ -6625,10 +7442,10 @@ snapshots: '@esbuild/darwin-x64@0.24.0': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.20.2': + '@esbuild/freebsd-arm64@0.19.12': optional: true '@esbuild/freebsd-arm64@0.21.5': @@ -6637,10 +7454,10 @@ snapshots: '@esbuild/freebsd-arm64@0.24.0': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.20.2': + '@esbuild/freebsd-x64@0.19.12': optional: true '@esbuild/freebsd-x64@0.21.5': @@ -6649,10 +7466,10 @@ snapshots: '@esbuild/freebsd-x64@0.24.0': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.20.2': + '@esbuild/linux-arm64@0.19.12': optional: true '@esbuild/linux-arm64@0.21.5': @@ -6661,10 +7478,10 @@ snapshots: '@esbuild/linux-arm64@0.24.0': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.20.2': + '@esbuild/linux-arm@0.19.12': optional: true '@esbuild/linux-arm@0.21.5': @@ -6673,10 +7490,10 @@ snapshots: '@esbuild/linux-arm@0.24.0': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.20.2': + '@esbuild/linux-ia32@0.19.12': optional: true '@esbuild/linux-ia32@0.21.5': @@ -6685,10 +7502,13 @@ snapshots: '@esbuild/linux-ia32@0.24.0': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.15.18': optional: true - '@esbuild/linux-loong64@0.20.2': + '@esbuild/linux-loong64@0.19.12': optional: true '@esbuild/linux-loong64@0.21.5': @@ -6697,10 +7517,10 @@ snapshots: '@esbuild/linux-loong64@0.24.0': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.20.2': + '@esbuild/linux-mips64el@0.19.12': optional: true '@esbuild/linux-mips64el@0.21.5': @@ -6709,10 +7529,10 @@ snapshots: '@esbuild/linux-mips64el@0.24.0': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.20.2': + '@esbuild/linux-ppc64@0.19.12': optional: true '@esbuild/linux-ppc64@0.21.5': @@ -6721,10 +7541,10 @@ snapshots: '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.20.2': + '@esbuild/linux-riscv64@0.19.12': optional: true '@esbuild/linux-riscv64@0.21.5': @@ -6733,10 +7553,10 @@ snapshots: '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.20.2': + '@esbuild/linux-s390x@0.19.12': optional: true '@esbuild/linux-s390x@0.21.5': @@ -6745,10 +7565,10 @@ snapshots: '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.20.2': + '@esbuild/linux-x64@0.19.12': optional: true '@esbuild/linux-x64@0.21.5': @@ -6757,10 +7577,13 @@ snapshots: '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.20.2': + '@esbuild/netbsd-x64@0.19.12': optional: true '@esbuild/netbsd-x64@0.21.5': @@ -6769,13 +7592,16 @@ snapshots: '@esbuild/netbsd-x64@0.24.0': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + '@esbuild/openbsd-arm64@0.24.0': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.20.2': + '@esbuild/openbsd-x64@0.19.12': optional: true '@esbuild/openbsd-x64@0.21.5': @@ -6784,10 +7610,10 @@ snapshots: '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.20.2': + '@esbuild/sunos-x64@0.19.12': optional: true '@esbuild/sunos-x64@0.21.5': @@ -6796,10 +7622,10 @@ snapshots: '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.20.2': + '@esbuild/win32-arm64@0.19.12': optional: true '@esbuild/win32-arm64@0.21.5': @@ -6808,10 +7634,10 @@ snapshots: '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.20.2': + '@esbuild/win32-ia32@0.19.12': optional: true '@esbuild/win32-ia32@0.21.5': @@ -6820,10 +7646,10 @@ snapshots: '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.20.2': + '@esbuild/win32-x64@0.19.12': optional: true '@esbuild/win32-x64@0.21.5': @@ -6832,6 +7658,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -6842,7 +7671,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -6871,7 +7700,7 @@ snapshots: '@expressive-code/plugin-shiki@0.33.5': dependencies: '@expressive-code/core': 0.33.5 - shiki: 1.23.1 + shiki: 1.24.4 '@expressive-code/plugin-text-markers@0.33.5': dependencies: @@ -6882,7 +7711,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6966,18 +7795,18 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inox-tools/astro-tests@0.2.1(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)': + '@inox-tools/astro-tests@0.2.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)': dependencies: '@astrojs/internal-helpers': 0.4.2 '@astrojs/markdown-remark': 5.3.0 '@inox-tools/utils': 0.3.0 - astro: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) - debug: 4.3.7 + astro: 5.0.3(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) + debug: 4.4.0 fast-glob: 3.3.2 - shiki: 1.24.0 + shiki: 1.24.4 strip-ansi: 7.1.0 undici: 6.21.0 - zod: 3.23.8 + zod: 3.24.1 transitivePeerDependencies: - '@types/node' - jiti @@ -6996,7 +7825,7 @@ snapshots: '@inox-tools/utils@0.3.0': {} - '@inquirer/figures@1.0.8': {} + '@inquirer/figures@1.0.9': {} '@isaacs/cliui@8.0.2': dependencies: @@ -7007,7 +7836,60 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.5': + '@japa/assert@3.0.0(@japa/runner@3.1.4)(openapi-types@12.1.3)': + dependencies: + '@japa/runner': 3.1.4 + '@poppinss/macroable': 1.0.3 + '@types/chai': 4.3.20 + api-contract-validator: 2.2.8(openapi-types@12.1.3) + chai: 5.1.2 + transitivePeerDependencies: + - openapi-types + + '@japa/core@9.0.1': + dependencies: + '@poppinss/cliui': 6.4.2 + '@poppinss/hooks': 7.2.4 + '@poppinss/macroable': 1.0.3 + async-retry: 1.3.3 + emittery: 1.0.3 + string-width: 7.2.0 + time-span: 5.1.0 + + '@japa/errors-printer@3.0.4': + dependencies: + '@poppinss/colors': 4.1.4 + jest-diff: 29.7.0 + supports-color: 9.4.0 + youch: 3.3.4 + youch-terminal: 2.2.3 + + '@japa/runner@3.1.4': + dependencies: + '@japa/core': 9.0.1 + '@japa/errors-printer': 3.0.4 + '@poppinss/colors': 4.1.4 + '@poppinss/hooks': 7.2.4 + fast-glob: 3.3.2 + find-cache-dir: 5.0.0 + getopts: 2.3.0 + ms: 2.1.3 + serialize-error: 11.0.3 + slash: 5.1.0 + supports-color: 9.4.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/types@25.5.0': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 1.1.2 + '@types/yargs': 15.0.19 + chalk: 3.0.0 + + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -7031,6 +7913,8 @@ snapshots: string-argv: 0.3.2 type-detect: 4.1.0 + '@jsdevtools/ono@7.1.3': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.26.0 @@ -7087,7 +7971,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@octokit/action@6.1.0': dependencies: @@ -7153,39 +8037,104 @@ snapshots: '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 - '@octokit/types@12.6.0': - dependencies: - '@octokit/openapi-types': 20.0.0 + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.6.2': + dependencies: + '@octokit/openapi-types': 22.2.0 + + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.3.0': + optional: true + + '@pagefind/darwin-x64@1.3.0': + optional: true + + '@pagefind/default-ui@1.3.0': {} + + '@pagefind/linux-arm64@1.3.0': + optional: true + + '@pagefind/linux-x64@1.3.0': + optional: true + + '@pagefind/windows-x64@1.3.0': + optional: true + + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true - '@octokit/types@13.6.2': - dependencies: - '@octokit/openapi-types': 22.2.0 + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true - '@oslojs/encoding@1.1.0': {} + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true - '@pagefind/darwin-arm64@1.2.0': + '@parcel/watcher-linux-x64-glibc@2.5.0': optional: true - '@pagefind/darwin-x64@1.2.0': + '@parcel/watcher-linux-x64-musl@2.5.0': optional: true - '@pagefind/default-ui@1.2.0': {} + '@parcel/watcher-wasm@2.5.0': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 - '@pagefind/linux-arm64@1.2.0': + '@parcel/watcher-win32-arm64@2.5.0': optional: true - '@pagefind/linux-x64@1.2.0': + '@parcel/watcher-win32-ia32@2.5.0': optional: true - '@pagefind/windows-x64@1.2.0': + '@parcel/watcher-win32-x64@2.5.0': optional: true + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.49.0': + '@playwright/test@1.49.1': dependencies: - playwright: 1.49.0 + playwright: 1.49.1 '@pnpm/config.env-replace@1.1.0': {} @@ -7199,66 +8148,90 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@rollup/pluginutils@5.1.3(rollup@4.27.4)': + '@poppinss/cliui@6.4.2': + dependencies: + '@poppinss/colors': 4.1.4 + cli-boxes: 4.0.1 + cli-table3: 0.6.5 + cli-truncate: 4.0.0 + log-update: 6.1.0 + pretty-hrtime: 1.0.3 + string-width: 7.2.0 + supports-color: 10.0.0 + terminal-size: 4.0.0 + wordwrap: 1.0.0 + + '@poppinss/colors@4.1.4': + dependencies: + kleur: 4.1.5 + + '@poppinss/hooks@7.2.4': {} + + '@poppinss/macroable@1.0.3': {} + + '@rollup/pluginutils@5.1.4(rollup@4.29.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.27.4 + rollup: 4.29.1 + + '@rollup/rollup-android-arm-eabi@4.29.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.27.4': + '@rollup/rollup-android-arm64@4.29.1': optional: true - '@rollup/rollup-android-arm64@4.27.4': + '@rollup/rollup-darwin-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-arm64@4.27.4': + '@rollup/rollup-darwin-x64@4.29.1': optional: true - '@rollup/rollup-darwin-x64@4.27.4': + '@rollup/rollup-freebsd-arm64@4.29.1': optional: true - '@rollup/rollup-freebsd-arm64@4.27.4': + '@rollup/rollup-freebsd-x64@4.29.1': optional: true - '@rollup/rollup-freebsd-x64@4.27.4': + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': + '@rollup/rollup-linux-arm-musleabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.27.4': + '@rollup/rollup-linux-arm64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.27.4': + '@rollup/rollup-linux-arm64-musl@4.29.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.27.4': + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.27.4': + '@rollup/rollup-linux-riscv64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.27.4': + '@rollup/rollup-linux-s390x-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.27.4': + '@rollup/rollup-linux-x64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-musl@4.27.4': + '@rollup/rollup-linux-x64-musl@4.29.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.27.4': + '@rollup/rollup-win32-arm64-msvc@4.29.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.27.4': + '@rollup/rollup-win32-ia32-msvc@4.29.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.27.4': + '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)': @@ -7269,57 +8242,34 @@ snapshots: transitivePeerDependencies: - zenObservable - '@shikijs/core@1.23.1': - dependencies: - '@shikijs/engine-javascript': 1.23.1 - '@shikijs/engine-oniguruma': 1.23.1 - '@shikijs/types': 1.23.1 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 - - '@shikijs/core@1.24.0': + '@shikijs/core@1.24.4': dependencies: - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.23.1': + '@shikijs/engine-javascript@1.24.4': dependencies: - '@shikijs/types': 1.23.1 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-es: 0.4.1 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + oniguruma-to-es: 0.8.1 - '@shikijs/engine-javascript@1.24.0': + '@shikijs/engine-oniguruma@1.24.4': dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-es: 0.7.0 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 - '@shikijs/engine-oniguruma@1.23.1': + '@shikijs/types@1.24.4': dependencies: - '@shikijs/types': 1.23.1 - '@shikijs/vscode-textmate': 9.3.0 - - '@shikijs/engine-oniguruma@1.24.0': - dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 - - '@shikijs/types@1.23.1': - dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - '@shikijs/types@1.24.0': - dependencies: - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@9.3.1': {} - '@shikijs/vscode-textmate@9.3.0': {} + '@sinclair/typebox@0.27.8': {} '@sindresorhus/is@4.6.0': {} @@ -7339,34 +8289,40 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.17.8 + '@types/node': 20.17.10 '@types/responselike': 1.0.3 + '@types/chai@4.3.20': {} + '@types/cookie@0.6.0': {} + '@types/cross-spawn@6.0.6': + dependencies: + '@types/node': 22.10.2 + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -7382,6 +8338,11 @@ snapshots: '@types/estree@1.0.6': {} + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 22.10.2 + '@types/hast@2.3.10': dependencies: '@types/unist': 2.0.11 @@ -7392,11 +8353,26 @@ snapshots: '@types/http-cache-semantics@4.0.4': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@1.1.2': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 22.10.2 + '@types/keyv@3.1.4': dependencies: - '@types/node': 20.17.8 + '@types/node': 20.17.10 '@types/mdast@4.0.4': dependencies: @@ -7418,32 +8394,36 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@20.17.8': + '@types/node@20.17.10': dependencies: undici-types: 6.19.8 + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 + '@types/normalize-package-data@2.4.4': {} '@types/parse5@6.0.3': {} - '@types/prop-types@15.7.13': {} + '@types/prop-types@15.7.14': {} - '@types/react-dom@18.3.1': + '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.12 + '@types/react': 18.3.18 - '@types/react@18.3.12': + '@types/react@18.3.18': dependencies: - '@types/prop-types': 15.7.13 + '@types/prop-types': 15.7.14 csstype: 3.1.3 '@types/responselike@1.0.3': dependencies: - '@types/node': 20.17.8 + '@types/node': 20.17.10 '@types/sax@1.2.7': dependencies: - '@types/node': 20.17.8 + '@types/node': 17.0.45 '@types/unist@2.0.11': {} @@ -7451,8 +8431,14 @@ snapshots: '@types/which-pm-runs@1.0.2': {} + '@types/which@3.0.4': {} + '@types/yargs-parser@21.0.3': {} + '@types/yargs@15.0.19': + dependencies: + '@types/yargs-parser': 21.0.3 + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 @@ -7469,7 +8455,7 @@ snapshots: graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.2(typescript@5.4.5) + ts-api-utils: 1.4.3(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -7481,7 +8467,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7 + debug: 4.4.0 eslint: 8.57.1 optionalDependencies: typescript: 5.4.5 @@ -7493,18 +8479,18 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.16.0': + '@typescript-eslint/scope-manager@8.18.2': dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.4.5) - debug: 4.3.7 + debug: 4.4.0 eslint: 8.57.1 - ts-api-utils: 1.4.2(typescript@5.4.5) + ts-api-utils: 1.4.3(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -7512,34 +8498,33 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.16.0': {} + '@typescript-eslint/types@8.18.2': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7 + debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.2(typescript@5.4.5) + ts-api-utils: 1.4.3(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.16.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.18.2(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 - debug: 4.3.7 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.2(typescript@5.4.5) - optionalDependencies: + ts-api-utils: 1.4.3(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7555,14 +8540,13 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.16.0(eslint@8.57.1)(typescript@5.4.5)': + '@typescript-eslint/utils@8.18.2(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.4.5) eslint: 8.57.1 - optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7572,82 +8556,42 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.16.0': + '@typescript-eslint/visitor-keys@8.18.2': dependencies: - '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/types': 8.18.2 eslint-visitor-keys: 4.2.0 - '@ungap/structured-clone@1.2.0': {} + '@ungap/structured-clone@1.2.1': {} - '@vitejs/plugin-react@4.3.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.6': - dependencies: - '@vitest/spy': 2.1.6 - '@vitest/utils': 2.1.6 - chai: 5.1.2 - tinyrainbow: 1.2.0 - - '@vitest/mocker@2.1.6(vite@5.2.10(@types/node@20.17.8))': - dependencies: - '@vitest/spy': 2.1.6 - estree-walker: 3.0.3 - magic-string: 0.30.14 - optionalDependencies: - vite: 5.2.10(@types/node@20.17.8) - - '@vitest/pretty-format@2.1.6': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/runner@2.1.6': - dependencies: - '@vitest/utils': 2.1.6 - pathe: 1.1.2 - - '@vitest/snapshot@2.1.6': - dependencies: - '@vitest/pretty-format': 2.1.6 - magic-string: 0.30.14 - pathe: 1.1.2 - - '@vitest/spy@2.1.6': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@2.1.6': + '@volar/kit@2.4.11(typescript@5.7.2)': dependencies: - '@vitest/pretty-format': 2.1.6 - loupe: 3.1.2 - tinyrainbow: 1.2.0 - - '@volar/kit@2.4.10(typescript@5.4.5)': - dependencies: - '@volar/language-service': 2.4.10 - '@volar/typescript': 2.4.10 + '@volar/language-service': 2.4.11 + '@volar/typescript': 2.4.11 typesafe-path: 0.2.2 - typescript: 5.4.5 + typescript: 5.7.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-core@2.4.10': + '@volar/language-core@2.4.11': dependencies: - '@volar/source-map': 2.4.10 + '@volar/source-map': 2.4.11 - '@volar/language-server@2.4.10': + '@volar/language-server@2.4.11': dependencies: - '@volar/language-core': 2.4.10 - '@volar/language-service': 2.4.10 - '@volar/typescript': 2.4.10 + '@volar/language-core': 2.4.11 + '@volar/language-service': 2.4.11 + '@volar/typescript': 2.4.11 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -7655,18 +8599,18 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-service@2.4.10': + '@volar/language-service@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/source-map@2.4.10': {} + '@volar/source-map@2.4.11': {} - '@volar/typescript@2.4.10': + '@volar/typescript@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -7729,6 +8673,10 @@ snapshots: dependencies: type-fest: 1.4.0 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@2.1.1: {} ansi-regex@3.0.1: {} @@ -7749,6 +8697,8 @@ snapshots: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} any-observable@0.3.0(rxjs@6.6.7): @@ -7762,6 +8712,33 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + api-contract-validator@2.2.8(openapi-types@12.1.3): + dependencies: + api-schema-builder: 2.0.11(openapi-types@12.1.3) + chalk: 3.0.0 + columnify: 1.6.0 + jest-diff: 25.5.0 + jest-matcher-utils: 25.5.0 + lodash.flatten: 4.4.0 + lodash.get: 4.4.2 + lodash.set: 4.3.2 + uri-js: 4.4.1 + transitivePeerDependencies: + - openapi-types + + api-schema-builder@2.0.11(openapi-types@12.1.3): + dependencies: + ajv: 6.12.6 + clone-deep: 4.0.1 + decimal.js: 10.4.3 + js-yaml: 3.14.1 + json-schema-deref-sync: 0.14.0 + lodash.get: 4.4.2 + openapi-schema-validator: 3.0.3 + swagger-parser: 10.0.3(openapi-types@12.1.3) + transitivePeerDependencies: + - openapi-types + arg@5.0.2: {} argparse@1.0.10: @@ -7772,41 +8749,44 @@ snapshots: aria-query@5.3.2: {} - array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + call-bound: 1.0.3 + is-array-buffer: 3.0.5 array-includes@3.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.23.7 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + get-intrinsic: 1.2.6 + is-string: 1.1.1 array-iterate@2.0.1: {} array-union@2.1.0: {} - array.prototype.flat@1.3.2: + array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.23.7 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.4: dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.23.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.2.6 + is-array-buffer: 3.0.5 + + as-table@1.0.55: + dependencies: + printable-characters: 1.0.42 assertion-error@2.0.1: {} @@ -7816,19 +8796,19 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.33.5(astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)): + astro-expressive-code@0.33.5(astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)): dependencies: - astro: 4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5) + astro: 4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2) hast-util-to-html: 8.0.4 remark-expressive-code: 0.33.5 - astro-integration-kit@0.16.1(astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1)): + astro-integration-kit@0.16.1(astro@5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)): dependencies: - astro: 5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) pathe: 1.1.2 recast: 0.23.9 - astro@4.16.16(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5): + astro@4.16.18(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.1 @@ -7836,9 +8816,9 @@ snapshots: '@astrojs/telemetry': 3.1.0 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.27.4) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) '@types/babel__core': 7.20.5 '@types/cookie': 0.6.0 acorn: 8.14.0 @@ -7850,7 +8830,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 @@ -7867,31 +8847,31 @@ snapshots: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 ora: 8.1.1 - p-limit: 6.1.0 + p-limit: 6.2.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.23.1 + shiki: 1.24.4 tinyexec: 0.3.1 - tsconfck: 3.1.4(typescript@5.4.5) + tsconfck: 3.1.4(typescript@5.7.2) unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 5.4.11(@types/node@20.17.8) - vitefu: 1.0.4(vite@5.4.11(@types/node@20.17.8)) + vite: 5.4.11(@types/node@22.10.2) + vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.2)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.4.5)(zod@3.23.8) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -7907,14 +8887,14 @@ snapshots: - terser - typescript - astro@5.0.0-beta.12(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1): + astro@5.0.0-beta.12(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.1 '@astrojs/markdown-remark': 6.0.0-beta.3 '@astrojs/telemetry': 3.2.0-beta.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.27.4) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -7925,7 +8905,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 @@ -7941,32 +8921,32 @@ snapshots: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - p-limit: 6.1.0 + p-limit: 6.2.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.23.1 + shiki: 1.24.4 tinyexec: 0.3.1 tsconfck: 3.1.4(typescript@5.7.2) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.23.8) + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -7985,14 +8965,14 @@ snapshots: - typescript - yaml - astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.4.5)(yaml@2.6.1): + astro@5.0.2(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.2 '@astrojs/markdown-remark': 6.0.0 '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.27.4) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -8003,7 +8983,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 @@ -8019,32 +8999,32 @@ snapshots: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - p-limit: 6.1.0 + p-limit: 6.2.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.23.1 + shiki: 1.24.4 tinyexec: 0.3.1 - tsconfck: 3.1.4(typescript@5.4.5) + tsconfck: 3.1.4(typescript@5.7.2) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.4.5)(zod@3.23.8) + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -8063,14 +9043,92 @@ snapshots: - typescript - yaml - astro@5.0.2(@types/node@20.17.8)(rollup@4.27.4)(typescript@5.7.2)(yaml@2.6.1): + astro@5.0.3(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.2 '@astrojs/markdown-remark': 6.0.0 '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.27.4) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@types/cookie': 0.6.0 + acorn: 8.14.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.1.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.4.0 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.17 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.0.1 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.24.4 + tinyexec: 0.3.1 + tsconfck: 3.1.4(typescript@5.7.2) + ultrahtml: 1.5.3 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) + which-pm: 3.0.0 + xxhash-wasm: 1.1.0 + yargs-parser: 21.1.1 + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) + optionalDependencies: + sharp: 0.33.5 + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - yaml + + astro@5.1.1(@types/node@22.10.2)(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.2 + '@astrojs/markdown-remark': 6.0.1 + '@astrojs/telemetry': 3.2.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -8081,7 +9139,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 @@ -8097,36 +9155,54 @@ snapshots: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - p-limit: 6.1.0 + p-limit: 6.2.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.23.1 + shiki: 1.24.4 tinyexec: 0.3.1 tsconfck: 3.1.4(typescript@5.7.2) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 + unstorage: 1.14.1 vfile: 6.0.3 - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)) + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.23.8) + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis - jiti - less - lightningcss @@ -8139,8 +9215,13 @@ snapshots: - terser - tsx - typescript + - uploadthing - yaml + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -8160,7 +9241,7 @@ snapshots: dependencies: bare-events: 2.5.0 bare-path: 2.1.3 - bare-stream: 2.4.2 + bare-stream: 2.6.1 optional: true bare-os@2.4.4: @@ -8171,9 +9252,9 @@ snapshots: bare-os: 2.4.4 optional: true - bare-stream@2.4.2: + bare-stream@2.6.1: dependencies: - streamx: 2.20.2 + streamx: 2.21.1 optional: true base-64@1.0.0: {} @@ -8210,7 +9291,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.3.0 + chalk: 5.4.1 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -8221,10 +9302,10 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.3.0 + chalk: 5.4.1 cli-boxes: 3.0.0 string-width: 7.2.0 - type-fest: 4.29.0 + type-fest: 4.30.2 widest-line: 5.0.0 wrap-ansi: 9.0.0 @@ -8245,12 +9326,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001684 - electron-to-chromium: 1.5.66 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001690 + electron-to-chromium: 1.5.76 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) buffer@5.7.1: dependencies: @@ -8263,9 +9344,9 @@ snapshots: dependencies: run-applescript: 5.0.0 - bundle-require@5.0.0(esbuild@0.24.0): + bundle-require@5.1.0(esbuild@0.24.2): dependencies: - esbuild: 0.24.0 + esbuild: 0.24.2 load-tsconfig: 0.2.5 cac@6.7.14: {} @@ -8294,14 +9375,23 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 - call-bind@1.0.7: + call-bind-apply-helpers@1.0.1: dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.6 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + call-me-maybe@1.0.2: {} callsites@3.1.0: {} @@ -8312,7 +9402,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001684: {} + caniuse-lite@1.0.30001690: {} ccount@2.0.1: {} @@ -8338,12 +9428,17 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + chalk@5.4.1: {} character-entities-html4@2.1.0: {} @@ -8355,6 +9450,8 @@ snapshots: chardet@0.7.0: {} + charenc@0.0.2: {} + check-error@2.1.1: {} chokidar@3.6.0: @@ -8369,7 +9466,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.1: + chokidar@4.0.3: dependencies: readdirp: 4.0.2 @@ -8379,12 +9476,18 @@ snapshots: ci-info@4.1.0: {} + citty@0.1.6: + dependencies: + consola: 3.3.1 + clean-stack@4.2.0: dependencies: escape-string-regexp: 5.0.0 cli-boxes@3.0.0: {} + cli-boxes@4.0.1: {} + cli-cursor@2.1.0: dependencies: restore-cursor: 2.0.0 @@ -8399,29 +9502,54 @@ snapshots: cli-spinners@2.9.2: {} + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + cli-truncate@0.2.1: dependencies: slice-ansi: 0.0.4 string-width: 1.0.2 + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + cli-width@2.2.1: {} cli-width@3.0.0: {} cli-width@4.1.0: {} + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + clone-response@1.0.3: dependencies: mimic-response: 1.0.1 clone@1.0.4: {} + clone@2.1.2: {} + clsx@2.1.1: {} code-point-at@1.1.0: {} @@ -8450,6 +9578,11 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + columnify@1.6.0: + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + comma-separated-tokens@2.0.3: {} commander-version@1.1.0: @@ -8461,8 +9594,13 @@ snapshots: commander@6.2.1: {} + commander@9.5.0: + optional: true + common-ancestor-path@1.0.1: {} + common-path-prefix@3.0.0: {} + concat-map@0.0.1: {} confbox@0.1.8: {} @@ -8480,10 +9618,14 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 - consola@3.2.3: {} + consola@3.3.1: {} + + convert-hrtime@5.0.0: {} convert-source-map@2.0.0: {} + cookie-es@1.2.2: {} + cookie@0.7.2: {} cosmiconfig@8.3.6(typescript@5.4.5): @@ -8501,6 +9643,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 + + crypt@0.0.2: {} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 @@ -8511,30 +9659,36 @@ snapshots: csstype@3.1.3: {} - data-view-buffer@1.0.1: + dag-map@1.0.2: {} + + data-uri-to-buffer@2.0.2: {} + + data-view-buffer@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-length@1.0.1: + data-view-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: + data-view-byte-offset@1.0.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 date-fns@1.30.1: {} - debug@4.3.7: + debug@4.4.0: dependencies: ms: 2.1.3 + decimal.js@10.4.3: {} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -8571,9 +9725,9 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 define-lazy-prop@3.0.0: {} @@ -8583,6 +9737,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + del@7.1.0: dependencies: globby: 13.2.2 @@ -8600,10 +9756,14 @@ snapshots: dequal@2.0.3: {} + destr@2.0.3: {} + destroy@1.2.0: {} detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + detect-libc@2.0.3: {} deterministic-object-hash@2.0.2: @@ -8616,6 +9776,10 @@ snapshots: dependencies: dequal: 2.0.3 + diff-sequences@25.2.6: {} + + diff-sequences@29.6.3: {} + diff@5.2.0: {} dir-glob@3.0.1: @@ -8640,14 +9804,22 @@ snapshots: dset@3.1.4: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + eastasianwidth@0.2.0: {} ee-first@1.1.1: {} - electron-to-chromium@1.5.66: {} + electron-to-chromium@1.5.76: {} elegant-spinner@1.0.1: {} + emittery@1.0.3: {} + emmet@2.4.11: dependencies: '@emmetio/abbreviation': 2.3.3 @@ -8674,62 +9846,63 @@ snapshots: entities@4.5.0: {} + environment@1.1.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.5: + es-abstract@1.23.7: dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + call-bind: 1.0.8 + call-bound: 1.0.3 + 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.0.0 es-set-tostringtag: 2.0.3 es-to-primitive: 1.3.0 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.6 + get-symbol-description: 1.1.0 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 + 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.0 + math-intrinsics: 1.1.0 object-inspect: 1.13.3 object-keys: 1.1.1 - object.assign: 4.1.5 + object.assign: 4.1.7 regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + safe-array-concat: 1.1.3 + safe-regex-test: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.3 + 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.0.2 - which-typed-array: 1.1.16 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -8741,7 +9914,7 @@ snapshots: es-set-tostringtag@2.0.3: dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -8752,8 +9925,8 @@ snapshots: es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 esast-util-from-estree@2.0.0: dependencies: @@ -8769,6 +9942,91 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 + esbuild-android-64@0.15.18: + optional: true + + esbuild-android-arm64@0.15.18: + optional: true + + esbuild-darwin-64@0.15.18: + optional: true + + esbuild-darwin-arm64@0.15.18: + optional: true + + esbuild-freebsd-64@0.15.18: + optional: true + + esbuild-freebsd-arm64@0.15.18: + optional: true + + esbuild-linux-32@0.15.18: + optional: true + + esbuild-linux-64@0.15.18: + optional: true + + esbuild-linux-arm64@0.15.18: + optional: true + + esbuild-linux-arm@0.15.18: + optional: true + + esbuild-linux-mips64le@0.15.18: + optional: true + + esbuild-linux-ppc64le@0.15.18: + optional: true + + esbuild-linux-riscv64@0.15.18: + optional: true + + esbuild-linux-s390x@0.15.18: + optional: true + + esbuild-netbsd-64@0.15.18: + optional: true + + esbuild-openbsd-64@0.15.18: + optional: true + + esbuild-sunos-64@0.15.18: + optional: true + + esbuild-windows-32@0.15.18: + optional: true + + esbuild-windows-64@0.15.18: + optional: true + + esbuild-windows-arm64@0.15.18: + optional: true + + esbuild@0.15.18: + optionalDependencies: + '@esbuild/android-arm': 0.15.18 + '@esbuild/linux-loong64': 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 @@ -8795,32 +10053,6 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -8874,6 +10106,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.0 '@esbuild/win32-x64': 0.24.0 + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -8886,9 +10146,9 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-plugin-qwik@1.11.0(eslint@8.57.1)(typescript@5.4.5): + eslint-plugin-qwik@1.12.0(eslint@8.57.1)(typescript@5.4.5): dependencies: - '@typescript-eslint/utils': 8.16.0(eslint@8.57.1)(typescript@5.4.5) + '@typescript-eslint/utils': 8.18.2(eslint@8.57.1)(typescript@5.4.5) eslint: 8.57.1 jsx-ast-utils: 3.3.5 transitivePeerDependencies: @@ -8913,11 +10173,11 @@ snapshots: '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 + debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -9030,12 +10290,22 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + exit-hook@3.2.0: {} expand-template@2.0.3: {} - expect-type@1.1.0: {} - expressive-code@0.33.5: dependencies: '@expressive-code/core': 0.33.5 @@ -9075,7 +10345,7 @@ snapshots: fast-uri@3.0.3: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -9106,6 +10376,11 @@ snapshots: filter-obj@5.1.0: {} + find-cache-dir@5.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + find-up-simple@1.0.0: {} find-up@4.1.0: @@ -9153,6 +10428,12 @@ snapshots: fs-constants@1.0.0: {} + fs-extra@11.2.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 @@ -9175,12 +10456,14 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: + function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.5 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -9190,13 +10473,25 @@ snapshots: get-east-asian-width@1.3.0: {} - get-intrinsic@1.2.4: + get-intrinsic@1.2.6: dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.0.0 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-port-please@3.1.2: {} + + get-source@2.0.12: + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 get-stream@5.2.0: dependencies: @@ -9204,11 +10499,15 @@ snapshots: get-stream@6.0.1: {} - get-symbol-description@1.0.2: + get-stream@8.0.1: {} + + get-symbol-description@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 + + getopts@2.3.0: {} github-from-package@0.0.0: {} @@ -9255,7 +10554,7 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 globby@11.1.0: dependencies: @@ -9276,9 +10575,7 @@ snapshots: globrex@0.1.2: {} - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + gopd@1.2.0: {} got@11.8.6: dependencies: @@ -9321,11 +10618,24 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 + h3@1.13.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.1 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 - has-bigints@1.0.2: {} + has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -9333,15 +10643,17 @@ snapshots: has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + 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.0.3: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 has-yarn@3.0.0: {} @@ -9413,7 +10725,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 hast-util-from-parse5: 8.0.2 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 @@ -9478,7 +10790,7 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-html@9.0.3: + hast-util-to-html@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -9596,6 +10908,8 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-shutdown@1.2.2: {} + http2-wrapper@1.0.3: dependencies: quick-lru: 5.1.1 @@ -9612,6 +10926,8 @@ snapshots: human-signals@4.3.1: {} + human-signals@5.0.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -9699,7 +11015,7 @@ snapshots: inquirer@9.3.7: dependencies: - '@inquirer/figures': 1.0.8 + '@inquirer/figures': 1.0.9 ansi-escapes: 4.3.2 cli-width: 4.1.0 external-editor: 3.1.0 @@ -9712,11 +11028,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 - internal-slot@1.0.7: + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 + + iron-webcrypto@1.2.1: {} is-alphabetical@2.0.1: {} @@ -9725,10 +11043,11 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-array-buffer@3.0.4: + is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 is-arrayish@0.2.1: {} @@ -9738,19 +11057,21 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-bigint@1.0.4: + is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + is-boolean-object@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-buffer@2.0.5: {} is-callable@1.2.7: {} @@ -9759,16 +11080,19 @@ snapshots: dependencies: ci-info: 3.9.0 - is-core-module@2.15.1: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + is-data-view@1.0.2: dependencies: - is-typed-array: 1.1.13 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + is-typed-array: 1.1.15 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-decimal@2.0.1: {} @@ -9779,11 +11103,13 @@ snapshots: is-extendable@0.1.1: {} + is-extglob@1.0.0: {} + is-extglob@2.1.1: {} - is-finalizationregistry@1.1.0: + is-finalizationregistry@1.1.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 is-fullwidth-code-point@1.0.0: dependencies: @@ -9793,10 +11119,20 @@ snapshots: is-fullwidth-code-point@3.0.0: {} + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 + is-glob@2.0.1: + dependencies: + is-extglob: 1.0.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -9816,6 +11152,10 @@ snapshots: is-interactive@2.0.0: {} + is-invalid-path@0.1.0: + dependencies: + is-glob: 2.0.1 + is-map@2.0.3: {} is-name-taken@2.0.0: @@ -9824,12 +11164,11 @@ snapshots: package-name-conflict: 1.0.3 validate-npm-package-name: 3.0.0 - is-negative-zero@2.0.3: {} - is-npm@6.0.0: {} - is-number-object@1.0.7: + is-number-object@1.1.1: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -9848,12 +11187,18 @@ snapshots: is-plain-obj@4.1.0: {} + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + is-promise@2.2.2: {} - is-regex@1.1.4: + is-regex@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 is-scoped@3.0.0: dependencies: @@ -9861,9 +11206,9 @@ snapshots: is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: + is-shared-array-buffer@1.0.4: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 is-stream@1.1.0: {} @@ -9871,21 +11216,24 @@ snapshots: is-stream@3.0.0: {} - is-string@1.0.7: + is-string@1.1.1: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - is-symbol@1.0.4: + is-symbol@1.1.1: dependencies: - has-symbols: 1.0.3 + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 - is-typed-array@1.1.13: + is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.16 + which-typed-array: 1.1.18 is-typedarray@1.0.0: {} @@ -9897,16 +11245,20 @@ snapshots: is-url-superb@6.1.0: {} + is-valid-path@0.1.1: + dependencies: + is-invalid-path: 0.1.0 + is-weakmap@2.0.2: {} - is-weakref@1.0.2: + is-weakref@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 - is-weakset@2.0.3: + is-weakset@2.0.4: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 is-windows@1.0.2: {} @@ -9920,12 +11272,20 @@ snapshots: is-yarn-global@0.4.1: {} + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + isarray@2.0.5: {} isbinaryfile@5.0.4: {} isexe@2.0.0: {} + isexe@3.1.1: {} + + isobject@3.0.1: {} + issue-regex@4.3.0: {} jackspeak@3.4.3: @@ -9934,6 +11294,33 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jest-diff@25.5.0: + dependencies: + chalk: 3.0.0 + diff-sequences: 25.2.6 + jest-get-type: 25.2.6 + pretty-format: 25.5.0 + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-get-type@25.2.6: {} + + jest-get-type@29.6.3: {} + + jest-matcher-utils@25.5.0: + dependencies: + chalk: 3.0.0 + jest-diff: 25.5.0 + jest-get-type: 25.2.6 + pretty-format: 25.5.0 + + jiti@2.4.2: {} + joycon@3.1.1: {} js-tokens@4.0.0: {} @@ -9947,12 +11334,23 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} + json-schema-deref-sync@0.14.0: + dependencies: + clone: 2.1.2 + dag-map: 1.0.2 + is-valid-path: 0.1.1 + lodash: 4.17.21 + md5: 2.2.1 + memory-cache: 0.2.0 + traverse: 0.6.10 + valid-url: 1.0.9 + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -9969,12 +11367,18 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 keyv@4.5.4: dependencies: @@ -9990,58 +11394,79 @@ snapshots: dependencies: package-json: 8.1.1 - lefthook-darwin-arm64@1.8.4: + lefthook-darwin-arm64@1.10.0: optional: true - lefthook-darwin-x64@1.8.4: + lefthook-darwin-x64@1.10.0: optional: true - lefthook-freebsd-arm64@1.8.4: + lefthook-freebsd-arm64@1.10.0: optional: true - lefthook-freebsd-x64@1.8.4: + lefthook-freebsd-x64@1.10.0: optional: true - lefthook-linux-arm64@1.8.4: + lefthook-linux-arm64@1.10.0: optional: true - lefthook-linux-x64@1.8.4: + lefthook-linux-x64@1.10.0: optional: true - lefthook-openbsd-arm64@1.8.4: + lefthook-openbsd-arm64@1.10.0: optional: true - lefthook-openbsd-x64@1.8.4: + lefthook-openbsd-x64@1.10.0: optional: true - lefthook-windows-arm64@1.8.4: + lefthook-windows-arm64@1.10.0: optional: true - lefthook-windows-x64@1.8.4: + lefthook-windows-x64@1.10.0: optional: true - lefthook@1.8.4: + lefthook@1.10.0: optionalDependencies: - lefthook-darwin-arm64: 1.8.4 - lefthook-darwin-x64: 1.8.4 - lefthook-freebsd-arm64: 1.8.4 - lefthook-freebsd-x64: 1.8.4 - lefthook-linux-arm64: 1.8.4 - lefthook-linux-x64: 1.8.4 - lefthook-openbsd-arm64: 1.8.4 - lefthook-openbsd-x64: 1.8.4 - lefthook-windows-arm64: 1.8.4 - lefthook-windows-x64: 1.8.4 + lefthook-darwin-arm64: 1.10.0 + lefthook-darwin-x64: 1.10.0 + lefthook-freebsd-arm64: 1.10.0 + lefthook-freebsd-x64: 1.10.0 + lefthook-linux-arm64: 1.10.0 + lefthook-linux-x64: 1.10.0 + lefthook-openbsd-arm64: 1.10.0 + lefthook-openbsd-x64: 1.10.0 + lefthook-windows-arm64: 1.10.0 + lefthook-windows-x64: 1.10.0 levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.2: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.0 + '@parcel/watcher-wasm': 2.5.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.3.1 + crossws: 0.3.1 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.13.0 + http-shutdown: 1.2.2 + jiti: 2.4.2 + mlly: 1.7.3 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.8.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + listr-input@0.2.1: dependencies: inquirer: 7.3.3 @@ -10106,10 +11531,16 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash.flatten@4.4.0: {} + + lodash.get@4.4.2: {} + lodash.isequal@4.5.0: {} lodash.merge@4.6.2: {} + lodash.set@4.3.2: {} + lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} @@ -10129,12 +11560,12 @@ snapshots: log-symbols@5.1.0: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 is-unicode-supported: 1.3.0 log-symbols@6.0.0: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 is-unicode-supported: 1.3.0 log-update@2.3.0: @@ -10143,6 +11574,14 @@ snapshots: cli-cursor: 2.1.0 wrap-ansi: 3.0.1 + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -10167,20 +11606,28 @@ snapshots: lru-cache@7.18.3: {} - magic-string@0.30.14: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 source-map-js: 1.2.1 markdown-extensions@2.0.0: {} markdown-table@3.0.4: {} + math-intrinsics@1.1.0: {} + + md5@2.2.1: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -10194,7 +11641,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-visit-parents: 6.0.1 transitivePeerDependencies: @@ -10302,7 +11749,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -10339,7 +11786,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -10363,6 +11810,8 @@ snapshots: dependencies: '@types/mdast': 4.0.4 + memory-cache@0.2.0: {} + meow@12.1.1: {} merge-stream@2.0.0: {} @@ -10396,7 +11845,7 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - parse-entities: 4.0.1 + parse-entities: 4.0.2 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: @@ -10626,7 +12075,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7 + debug: 4.4.0 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -10656,6 +12105,8 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@3.0.0: {} + mimic-fn@1.2.0: {} mimic-fn@2.1.0: {} @@ -10699,6 +12150,8 @@ snapshots: muggle-string@0.4.1: {} + mustache@4.2.0: {} + mute-stream@0.0.7: {} mute-stream@0.0.8: {} @@ -10737,12 +12190,18 @@ snapshots: node-addon-api@6.1.0: {} - node-releases@2.0.18: {} + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.4: {} + + node-forge@1.3.1: {} + + node-releases@2.0.19: {} normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.15.1 + is-core-module: 2.16.1 semver: 7.6.3 validate-npm-package-license: 3.0.4 @@ -10754,7 +12213,7 @@ snapshots: np@8.0.4(typescript@5.4.5): dependencies: - chalk: 5.3.0 + chalk: 5.4.1 cosmiconfig: 8.3.6(typescript@5.4.5) del: 7.1.0 escape-goat: 4.0.0 @@ -10828,19 +12287,30 @@ snapshots: object-keys@1.1.1: {} - object.assign@4.1.5: + object.assign@4.1.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.0.0 + has-symbols: 1.1.0 object-keys: 1.1.1 - object.values@1.2.0: + object.values@1.2.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.0.0 + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + ohash@1.1.4: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -10865,17 +12335,11 @@ snapshots: dependencies: mimic-function: 5.0.1 - oniguruma-to-es@0.4.1: - dependencies: - emoji-regex-xs: 1.0.0 - regex: 5.0.2 - regex-recursion: 4.3.0 - - oniguruma-to-es@0.7.0: + oniguruma-to-es@0.8.1: dependencies: emoji-regex-xs: 1.0.0 regex: 5.0.2 - regex-recursion: 4.3.0 + regex-recursion: 5.0.0 open@9.1.0: dependencies: @@ -10884,6 +12348,17 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 2.2.0 + openapi-schema-validator@3.0.3: + dependencies: + ajv: 6.12.6 + lodash.merge: 4.6.2 + openapi-types: 1.3.4 + swagger-schema-official: 2.0.0-bab6bed + + openapi-types@1.3.4: {} + + openapi-types@12.1.3: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -10907,7 +12382,7 @@ snapshots: ora@8.1.1: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -10951,7 +12426,7 @@ snapshots: dependencies: yocto-queue: 1.1.1 - p-limit@6.1.0: + p-limit@6.2.0: dependencies: yocto-queue: 1.1.1 @@ -10998,26 +12473,25 @@ snapshots: registry-url: 6.0.1 semver: 7.6.3 - package-manager-detector@0.2.5: {} + package-manager-detector@0.2.8: {} package-name-conflict@1.0.3: {} - pagefind@1.2.0: + pagefind@1.3.0: optionalDependencies: - '@pagefind/darwin-arm64': 1.2.0 - '@pagefind/darwin-x64': 1.2.0 - '@pagefind/linux-arm64': 1.2.0 - '@pagefind/linux-x64': 1.2.0 - '@pagefind/windows-x64': 1.2.0 + '@pagefind/darwin-arm64': 1.3.0 + '@pagefind/darwin-x64': 1.3.0 + '@pagefind/linux-arm64': 1.3.0 + '@pagefind/linux-x64': 1.3.0 + '@pagefind/windows-x64': 1.3.0 parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-entities@4.0.1: + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 - character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 decode-named-character-reference: 1.0.2 @@ -11102,15 +12576,15 @@ snapshots: dependencies: find-up: 6.3.0 - pkg-pr-new@0.0.8: + pkg-pr-new@0.0.35: dependencies: '@jsdevtools/ez-spawn': 3.0.4 '@octokit/action': 6.1.0 - fast-glob: 3.3.2 ignore: 5.3.2 isbinaryfile: 5.0.4 pkg-types: 1.2.1 query-registry: 3.0.1 + tinyglobby: 0.2.10 pkg-types@1.2.1: dependencies: @@ -11118,20 +12592,21 @@ snapshots: mlly: 1.7.3 pathe: 1.1.2 - playwright-core@1.49.0: {} + playwright-core@1.49.1: {} - playwright@1.49.0: + playwright@1.49.1: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.49.1 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.0.0: {} - postcss-load-config@6.0.1(postcss@8.4.49)(yaml@2.6.1): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.6.1): dependencies: - lilconfig: 3.1.2 + lilconfig: 3.1.3 optionalDependencies: + jiti: 2.4.2 postcss: 8.4.49 yaml: 2.6.1 @@ -11174,19 +12649,29 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-astro@0.13.0: - dependencies: - '@astrojs/compiler': 1.8.2 - prettier: 3.4.1 - sass-formatter: 0.7.9 - optional: true - prettier@2.8.7: optional: true prettier@2.8.8: {} - prettier@3.4.1: {} + prettier@3.4.2: {} + + pretty-format@25.5.0: + dependencies: + '@jest/types': 25.5.0 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 16.13.1 + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + pretty-hrtime@1.0.3: {} + + printable-characters@1.0.42: {} prismjs@1.29.0: {} @@ -11218,7 +12703,7 @@ snapshots: quick-lru: 7.0.0 url-join: 5.0.0 validate-npm-package-name: 5.0.1 - zod: 3.23.8 + zod: 3.24.1 zod-package-json: 1.0.3 query-string@9.1.1: @@ -11235,6 +12720,8 @@ snapshots: quick-lru@7.0.0: {} + radix3@1.1.2: {} + range-parser@1.2.1: {} rc@1.2.8: @@ -11250,6 +12737,10 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-is@16.13.1: {} + + react-is@18.3.1: {} + react-refresh@0.14.2: {} react@18.3.1: @@ -11333,19 +12824,20 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - reflect.getprototypeof@1.0.7: + reflect.getprototypeof@1.0.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + dunder-proto: 1.0.1 + es-abstract: 1.23.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - which-builtin-type: 1.2.0 + get-intrinsic: 1.2.6 + gopd: 1.2.0 + which-builtin-type: 1.2.1 regenerator-runtime@0.14.1: {} - regex-recursion@4.3.0: + regex-recursion@5.0.0: dependencies: regex-utilities: 2.3.0 @@ -11357,7 +12849,7 @@ snapshots: regexp.prototype.flags@1.5.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 @@ -11397,7 +12889,7 @@ snapshots: rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 unified: 11.0.5 rehype@13.0.2: @@ -11569,34 +13061,37 @@ snapshots: retext-stringify: 4.0.0 unified: 11.0.5 + retry@0.13.1: {} + reusify@1.0.4: {} rimraf@3.0.2: dependencies: glob: 7.2.3 - rollup@4.27.4: + rollup@4.29.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.27.4 - '@rollup/rollup-android-arm64': 4.27.4 - '@rollup/rollup-darwin-arm64': 4.27.4 - '@rollup/rollup-darwin-x64': 4.27.4 - '@rollup/rollup-freebsd-arm64': 4.27.4 - '@rollup/rollup-freebsd-x64': 4.27.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 - '@rollup/rollup-linux-arm-musleabihf': 4.27.4 - '@rollup/rollup-linux-arm64-gnu': 4.27.4 - '@rollup/rollup-linux-arm64-musl': 4.27.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 - '@rollup/rollup-linux-riscv64-gnu': 4.27.4 - '@rollup/rollup-linux-s390x-gnu': 4.27.4 - '@rollup/rollup-linux-x64-gnu': 4.27.4 - '@rollup/rollup-linux-x64-musl': 4.27.4 - '@rollup/rollup-win32-arm64-msvc': 4.27.4 - '@rollup/rollup-win32-ia32-msvc': 4.27.4 - '@rollup/rollup-win32-x64-msvc': 4.27.4 + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 fsevents: 2.3.3 run-applescript@5.0.0: @@ -11619,31 +13114,24 @@ snapshots: dependencies: tslib: 2.8.1 - s.color@0.0.15: - optional: true - - safe-array-concat@1.1.2: + safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + has-symbols: 1.1.0 isarray: 2.0.5 safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-regex-test@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.1 safer-buffer@2.1.2: {} - sass-formatter@0.7.9: - dependencies: - suf-log: 2.5.3 - optional: true - sax@1.4.1: {} scheduler@0.23.2: @@ -11667,7 +13155,7 @@ snapshots: send@1.1.0: dependencies: - debug: 4.3.7 + debug: 4.4.0 destroy: 1.2.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -11682,6 +13170,10 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@11.0.3: + dependencies: + type-fest: 2.19.0 + server-destroy@1.0.1: {} set-function-length@1.2.2: @@ -11689,8 +13181,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.2.6 + gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -11702,6 +13194,10 @@ snapshots: setprototypeof@1.2.0: {} + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + sharp@0.32.6: dependencies: color: 4.2.3 @@ -11746,32 +13242,42 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.23.1: + shiki@1.24.4: dependencies: - '@shikijs/core': 1.23.1 - '@shikijs/engine-javascript': 1.23.1 - '@shikijs/engine-oniguruma': 1.23.1 - '@shikijs/types': 1.23.1 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/core': 1.24.4 + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - shiki@1.24.0: + side-channel-list@1.0.0: dependencies: - '@shikijs/core': 1.24.0 - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 - side-channel@1.0.6: + side-channel-weakmap@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.6 object-inspect: 1.13.3 + side-channel-map: 1.0.1 - siginfo@2.0.0: {} + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 signal-exit@3.0.7: {} @@ -11802,8 +13308,20 @@ snapshots: slash@4.0.0: {} + slash@5.1.0: {} + slice-ansi@0.0.4: {} + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + source-map-js@1.2.1: {} source-map@0.6.1: {} @@ -11839,7 +13357,10 @@ snapshots: sprintf-js@1.0.3: {} - stackback@0.0.2: {} + stacktracey@2.1.8: + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 statuses@2.0.1: {} @@ -11849,11 +13370,11 @@ snapshots: stream-replace-string@2.0.0: {} - streamx@2.20.2: + streamx@2.21.1: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.2.1 + text-decoder: 1.2.3 optionalDependencies: bare-events: 2.5.0 @@ -11888,22 +13409,26 @@ snapshots: get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 - string.prototype.trim@1.2.9: + string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.23.7 es-object-atoms: 1.0.0 + has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.8: + string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.0.0 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.0.0 @@ -11958,7 +13483,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -11966,10 +13491,7 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - suf-log@2.5.3: - dependencies: - s.color: 0.0.15 - optional: true + supports-color@10.0.0: {} supports-color@2.0.0: {} @@ -11981,15 +13503,27 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@9.4.0: {} + supports-hyperlinks@2.3.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 + swagger-parser@10.0.3(openapi-types@12.1.3): + dependencies: + '@apidevtools/swagger-parser': 10.0.3(openapi-types@12.1.3) + transitivePeerDependencies: + - openapi-types + + swagger-schema-official@2.0.0-bab6bed: {} + symbol-observable@1.2.0: {} symbol-observable@4.0.0: {} + system-architecture@0.1.0: {} + tar-fs@2.1.1: dependencies: chownr: 1.1.4 @@ -12017,7 +13551,7 @@ snapshots: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 - streamx: 2.20.2 + streamx: 2.21.1 term-size@2.2.1: {} @@ -12026,7 +13560,11 @@ snapshots: ansi-escapes: 5.0.0 supports-hyperlinks: 2.3.0 - text-decoder@1.2.1: {} + terminal-size@4.0.0: {} + + text-decoder@1.2.3: + dependencies: + b4a: 1.6.7 text-table@0.2.0: {} @@ -12040,9 +13578,11 @@ snapshots: through@2.3.8: {} - tiny-invariant@1.3.3: {} + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 - tinybench@2.9.0: {} + tiny-invariant@1.3.3: {} tinyexec@0.3.1: {} @@ -12051,12 +13591,6 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.2: {} - - tinyrainbow@1.2.0: {} - - tinyspy@3.0.2: {} - titleize@3.0.0: {} tmp@0.0.33: @@ -12073,13 +13607,19 @@ snapshots: dependencies: punycode: 2.3.1 + traverse@0.6.10: + dependencies: + gopd: 1.2.0 + typedarray.prototype.slice: 1.0.3 + which-typed-array: 1.1.18 + tree-kill@1.2.2: {} trim-lines@3.0.1: {} trough@2.2.0: {} - ts-api-utils@1.4.2(typescript@5.4.5): + ts-api-utils@1.4.3(typescript@5.4.5): dependencies: typescript: 5.4.5 @@ -12097,19 +13637,23 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.5(postcss@8.4.49)(typescript@5.4.5)(yaml@2.6.1): + tsm@2.3.0: dependencies: - bundle-require: 5.0.0(esbuild@0.24.0) + esbuild: 0.15.18 + + tsup@8.3.5(jiti@2.4.2)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 - chokidar: 4.0.1 - consola: 3.2.3 - debug: 4.3.7 - esbuild: 0.24.0 + chokidar: 4.0.3 + consola: 3.3.1 + debug: 4.4.0 + esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.4.49)(yaml@2.6.1) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.6.1) resolve-from: 5.0.0 - rollup: 4.27.4 + rollup: 4.29.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.1 @@ -12117,7 +13661,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.49 - typescript: 5.4.5 + typescript: 5.7.2 transitivePeerDependencies: - jiti - supports-color @@ -12144,45 +13688,54 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.29.0: {} + type-fest@4.30.2: {} - typed-array-buffer@1.0.2: + typed-array-buffer@1.0.3: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-typed-array: 1.1.13 + is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: + typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.3: + typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - reflect.getprototypeof: 1.0.7 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.9 typed-array-length@1.0.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - is-typed-array: 1.1.13 + gopd: 1.2.0 + is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.7 + reflect.getprototypeof: 1.0.9 typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 + typedarray.prototype.slice@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + typed-array-buffer: 1.0.3 + typed-array-byte-offset: 1.0.4 + types-eslintrc@1.0.3: dependencies: types-json: 1.2.2 @@ -12208,18 +13761,30 @@ snapshots: ultrahtml@1.5.3: {} - unbox-primitive@1.0.2: + unbox-primitive@1.1.0: dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + uncrypto@0.1.3: {} undici-types@6.19.8: {} + undici-types@6.20.0: {} + undici@6.21.0: {} - undici@7.0.0: {} + undici@7.2.0: {} + + unenv@1.10.0: + dependencies: + consola: 3.3.1 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 unherit@3.0.1: {} @@ -12329,18 +13894,39 @@ snapshots: universalify@0.1.2: {} + universalify@2.0.1: {} + + unstorage@1.14.1: + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + citty: 0.1.6 + destr: 2.0.3 + h3: 1.13.0 + listhen: 1.9.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.4 + ofetch: 1.4.1 + ufo: 1.5.4 + untildify@4.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.3.1 + pathe: 1.1.2 + + update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 update-notifier@6.0.2: dependencies: boxen: 7.1.1 - chalk: 5.3.0 + chalk: 5.4.1 configstore: 6.0.0 has-yarn: 3.0.0 import-lazy: 4.0.0 @@ -12354,6 +13940,8 @@ snapshots: semver-diff: 4.0.0 xdg-basedir: 5.1.0 + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -12364,6 +13952,8 @@ snapshots: vali-date@1.0.0: {} + valid-url@1.0.9: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -12375,6 +13965,8 @@ snapshots: validate-npm-package-name@5.0.1: {} + validator@13.12.0: {} + vfile-location@4.1.0: dependencies: '@types/unist': 2.0.11 @@ -12407,145 +13999,93 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.6(@types/node@20.17.8): - dependencies: - cac: 6.7.14 - debug: 4.3.7 - es-module-lexer: 1.5.4 - pathe: 1.1.2 - vite: 5.4.11(@types/node@20.17.8) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.4.11(@types/node@20.17.8)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.4.11(@types/node@20.17.10)): dependencies: - debug: 4.3.7 + debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.4.5) optionalDependencies: - vite: 5.4.11(@types/node@20.17.8) + vite: 5.4.11(@types/node@20.17.10) transitivePeerDependencies: - supports-color - typescript - vite@5.2.10(@types/node@20.17.8): + vite@5.4.11(@types/node@20.17.10): dependencies: - esbuild: 0.20.2 + esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.27.4 + rollup: 4.29.1 optionalDependencies: - '@types/node': 20.17.8 + '@types/node': 20.17.10 fsevents: 2.3.3 - vite@5.4.11(@types/node@20.17.8): + vite@5.4.11(@types/node@22.10.2): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.27.4 + rollup: 4.29.1 optionalDependencies: - '@types/node': 20.17.8 + '@types/node': 22.10.2 fsevents: 2.3.3 - vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1): + vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1): dependencies: esbuild: 0.24.0 postcss: 8.4.49 - rollup: 4.27.4 + rollup: 4.29.1 optionalDependencies: - '@types/node': 20.17.8 + '@types/node': 22.10.2 fsevents: 2.3.3 + jiti: 2.4.2 yaml: 2.6.1 - vitefu@1.0.4(vite@5.4.11(@types/node@20.17.8)): - optionalDependencies: - vite: 5.4.11(@types/node@20.17.8) - - vitefu@1.0.4(vite@6.0.1(@types/node@20.17.8)(yaml@2.6.1)): + vitefu@1.0.4(vite@5.4.11(@types/node@22.10.2)): optionalDependencies: - vite: 6.0.1(@types/node@20.17.8)(yaml@2.6.1) + vite: 5.4.11(@types/node@22.10.2) - vitest@2.1.6(@types/node@20.17.8): - dependencies: - '@vitest/expect': 2.1.6 - '@vitest/mocker': 2.1.6(vite@5.2.10(@types/node@20.17.8)) - '@vitest/pretty-format': 2.1.6 - '@vitest/runner': 2.1.6 - '@vitest/snapshot': 2.1.6 - '@vitest/spy': 2.1.6 - '@vitest/utils': 2.1.6 - chai: 5.1.2 - debug: 4.3.7 - expect-type: 1.1.0 - magic-string: 0.30.14 - pathe: 1.1.2 - std-env: 3.8.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.2 - tinyrainbow: 1.2.0 - vite: 5.2.10(@types/node@20.17.8) - vite-node: 2.1.6(@types/node@20.17.8) - why-is-node-running: 2.3.0 + vitefu@1.0.4(vite@6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)): optionalDependencies: - '@types/node': 20.17.8 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser + vite: 6.0.5(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1) - volar-service-css@0.0.62(@volar/language-service@2.4.10): + volar-service-css@0.0.62(@volar/language-service@2.4.11): dependencies: - vscode-css-languageservice: 6.3.1 + vscode-css-languageservice: 6.3.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-emmet@0.0.62(@volar/language-service@2.4.10): + volar-service-emmet@0.0.62(@volar/language-service@2.4.11): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-html@0.0.62(@volar/language-service@2.4.10): + volar-service-html@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-prettier@0.0.62(@volar/language-service@2.4.10)(prettier@3.4.1): + volar-service-prettier@0.0.62(@volar/language-service@2.4.11)(prettier@3.4.2): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 - prettier: 3.4.1 + '@volar/language-service': 2.4.11 + prettier: 3.4.2 - volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.10): + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-typescript@0.0.62(@volar/language-service@2.4.10): + volar-service-typescript@0.0.62(@volar/language-service@2.4.11): dependencies: path-browserify: 1.0.1 semver: 7.6.3 @@ -12554,16 +14094,16 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-yaml@0.0.62(@volar/language-service@2.4.10): + volar-service-yaml@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-uri: 3.0.8 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - vscode-css-languageservice@6.3.1: + vscode-css-languageservice@6.3.2: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -12631,36 +14171,36 @@ snapshots: tr46: 1.0.1 webidl-conversions: 4.0.2 - which-boxed-primitive@1.0.2: + which-boxed-primitive@1.1.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - which-builtin-type@1.2.0: + which-builtin-type@1.2.1: dependencies: - call-bind: 1.0.7 - function.prototype.name: 1.1.6 + call-bound: 1.0.3 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.1.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 + is-regex: 1.2.1 + is-weakref: 1.1.0 isarray: 2.0.5 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.16 + which-typed-array: 1.1.18 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 + is-weakset: 2.0.4 which-pm-runs@1.1.0: {} @@ -12668,22 +14208,22 @@ snapshots: dependencies: load-yaml-file: 0.2.0 - which-typed-array@1.1.16: + which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 which@2.0.2: dependencies: isexe: 2.0.0 - why-is-node-running@2.3.0: + which@5.0.0: dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 + isexe: 3.1.1 widest-line@4.0.1: dependencies: @@ -12695,6 +14235,8 @@ snapshots: word-wrap@1.2.5: {} + wordwrap@1.0.0: {} + wrap-ansi@3.0.1: dependencies: string-width: 2.1.1 @@ -12778,7 +14320,7 @@ snapshots: yocto-queue@1.1.1: {} - yocto-spinner@0.1.1: + yocto-spinner@0.1.2: dependencies: yoctocolors: 2.1.1 @@ -12786,24 +14328,39 @@ snapshots: yoctocolors@2.1.1: {} - zod-package-json@1.0.3: + youch-terminal@2.2.3: + dependencies: + kleur: 4.1.5 + string-width: 4.2.3 + wordwrap: 1.0.0 + + youch@3.3.4: + dependencies: + cookie: 0.7.2 + mustache: 4.2.0 + stacktracey: 2.1.8 + + z-schema@5.0.5: dependencies: - zod: 3.23.8 + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.12.0 + optionalDependencies: + commander: 9.5.0 - zod-to-json-schema@3.23.5(zod@3.23.8): + zod-package-json@1.0.3: dependencies: - zod: 3.23.8 + zod: 3.24.1 - zod-to-ts@1.2.0(typescript@5.4.5)(zod@3.23.8): + zod-to-json-schema@3.24.1(zod@3.24.1): dependencies: - typescript: 5.4.5 - zod: 3.23.8 + zod: 3.24.1 - zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.23.8): + zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.24.1): dependencies: typescript: 5.7.2 - zod: 3.23.8 + zod: 3.24.1 - zod@3.23.8: {} + zod@3.24.1: {} zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 511750bf..7d3f1798 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,4 @@ packages: - libs/* - libs/*/tests/fixtures/* - apps/* + - '!**/labs/**' diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..b6b09f75 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,19 @@ +import { configDefaults, defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["./tests/unit/**/*.{test,spec}.ts"], + exclude: [...configDefaults.exclude, "**/e2e/**"], + reporters: [ + "default", + "html", + "verbose", + ...(process.env.GITHUB_ACTIONS ? ["github-actions"] : []) + ], + outputFile: "./tests/unit/report/html/index.html", + coverage: { + provider: "v8", + reportsDirectory: "./tests/unit/coverage" + } + } +});