From 13b4a7d65d9d9a047a8f3d14de8c6fb028efe1cc Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Tue, 31 Dec 2024 10:35:58 -0800 Subject: [PATCH 01/11] fix #156 also add some tests --- bun.lockb | Bin 272619 -> 271062 bytes src/attach.test.ts | 16 ++++++++++ src/attach.ts | 43 ++++++++++++++------------- src/sample.test.ts | 5 ---- tests/preamble.ts | 72 +++++++++++++++++++++++++++++++++++++++++++++ tsconfig.json | 2 +- 6 files changed, 112 insertions(+), 26 deletions(-) create mode 100644 src/attach.test.ts delete mode 100644 src/sample.test.ts create mode 100644 tests/preamble.ts diff --git a/bun.lockb b/bun.lockb index 415591d8e00e477ad9f1eba091f1519db740e1b9..5d2253c9cc0e6f00b95a01a24254f2fba13c7a44 100755 GIT binary patch delta 55784 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 n(>M?F6!l%S-W=a { + it("nvim_buf_set_lines with a large file", async () => { + await withNvimClient(async (nvim) => { + const lines: string[] = []; + for (let line = 0; line < 500; line += 1) { + lines.push("x".repeat(100)); + } + await nvim.call("nvim_buf_set_lines", [0, 0, -1, false, lines]); + const roundtripLines = await nvim.call("nvim_buf_get_lines", [0, 0, -1, false]); + expect(roundtripLines).toEqual(lines); + }); + }); +}); diff --git a/src/attach.ts b/src/attach.ts index 48e277f..635ddde 100644 --- a/src/attach.ts +++ b/src/attach.ts @@ -1,5 +1,6 @@ import { Packr, UnpackrStream, addExtension, unpack } from "msgpackr"; import { EventEmitter } from "node:events"; +import net from "node:net"; import { createLogger, prettyRPCMessage } from "./logger.ts"; import { MessageType, @@ -41,26 +42,28 @@ export async function attach({ let lastReqId = 0; let handlerId = 0; - const nvimSocket = await Bun.connect({ - unix: socket, - socket: { - binaryType: "uint8array", - data(_, data) { - // Sometimes RPC messages are split into multiple socket messages. - // `unpackrStream` handles collecting all socket messages if the RPC message - // is split and decoding it. - unpackrStream.write(data); - }, - error(_, error) { - logger?.error("socket error", error); - }, - end() { - logger?.debug("connection closed by neovim"); - }, - close() { - logger?.debug("connection closed by bunvim"); - }, - }, + const nvimSocket = await new Promise((resolve, reject) => { + const client = new net.Socket(); + client.once("error", reject); + client.once("connect", () => { + client + .removeListener("error", reject) + .on("data", (data: Buffer) => { + unpackrStream.write(data); + }) + .on("error", (error) => { + logger?.error("socket error", error); + }) + .on("end", () => { + logger?.debug("connection closed by neovim"); + }) + .on("close", () => { + logger?.debug("connection closed by bunvim"); + }); + resolve(client); + }); + + client.connect(socket); }); function processMessageOutQueue() { diff --git a/src/sample.test.ts b/src/sample.test.ts deleted file mode 100644 index 32d5d4a..0000000 --- a/src/sample.test.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { expect, test } from "bun:test"; - -test("2 + 1", () => { - expect(2 + 1).toBe(3); -}); diff --git a/tests/preamble.ts b/tests/preamble.ts new file mode 100644 index 0000000..84f84a9 --- /dev/null +++ b/tests/preamble.ts @@ -0,0 +1,72 @@ +import { attach, type Nvim } from "../src/index.ts"; +import { unlink } from "node:fs/promises"; +import { spawn } from "child_process"; +import path from "path"; + +const SOCK = `/tmp/bunvim-test.sock`; +export async function withNvimProcess(fn: (sock: string) => Promise) { + try { + await unlink(SOCK); + } catch (e) { + if ((e as { code: string }).code !== "ENOENT") { + console.error(e); + } + } + + const nvimProcess = spawn( + "nvim", + ["--headless", "-n", "--clean", "--listen", SOCK], + { + // root dir relative to this file + cwd: path.resolve(path.dirname(__filename), "../"), + }, + ); + + if (!nvimProcess.pid) { + throw new Error("Failed to start nvim process"); + } + + try { + nvimProcess.on("error", (err) => { + throw err; + }); + + nvimProcess.on("exit", (code, signal) => { + if (code !== 1) { + throw new Error( + `Nvim process exited with code ${code} and signal ${signal}`, + ); + } + }); + + // give enough time for socket to be created + // TODO: poll for socket instead + await new Promise((resolve) => setTimeout(resolve, 500)); + + await fn(SOCK); + } finally { + const res = nvimProcess.kill(); + console.log(`Killed process ${nvimProcess.pid} with result ${res}`); + } +} + +export async function withNvimClient(fn: (nvim: Nvim) => Promise) { + return await withNvimProcess(async (sock) => { + const nvim = await attach({ + socket: sock, + client: { name: "test" }, + logging: { level: "debug" }, + }); + + try { + await fn(nvim); + } finally { + nvim.detach(); + } + }); +} + +process.on("uncaughtException", (err) => { + console.error(err); + process.exit(1); +}); diff --git a/tsconfig.json b/tsconfig.json index 8021421..fe4da99 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,5 +30,5 @@ "checkJs": true, "esModuleInterop": true }, - "include": ["src", "./package.json"] + "include": ["src", "test", "./package.json"] } From 2fc96196bb17b51c4514585b288d71e3ba74063a Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Tue, 31 Dec 2024 10:38:01 -0800 Subject: [PATCH 02/11] add neovim dep to tests --- .github/workflows/release.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b9258b0..06d3ee6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,6 +20,11 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x + - name: Setup Neovim + uses: rhysd/action-setup-vim@v1 + with: + neovim: true + version: stable - name: Install bun uses: oven-sh/setup-bun@v2 - name: Install dependencies From ec36df31b0ee8cce6d493850e78b0b98b8c00dbf Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Wed, 1 Jan 2025 12:23:42 -0800 Subject: [PATCH 03/11] fully close the socket connection on detach --- src/attach.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/attach.ts b/src/attach.ts index 635ddde..c0b1239 100644 --- a/src/attach.ts +++ b/src/attach.ts @@ -198,7 +198,7 @@ export async function attach({ requestHandlers.set(method as string, callback); }, detach() { - nvimSocket.end(); + nvimSocket.destroy(); }, }; } From 0142261a0d3ad217d7833cc534c4e5dceae06011 Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Wed, 1 Jan 2025 12:27:11 -0800 Subject: [PATCH 04/11] make unpackrStream not shared It causes multiple instances of bunvim to share the unpackrStream, which means that all attached handlers get triggered! --- src/attach.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/attach.ts b/src/attach.ts index c0b1239..cfb80c8 100644 --- a/src/attach.ts +++ b/src/attach.ts @@ -15,7 +15,6 @@ import { } from "./types.ts"; const packr = new Packr({ useRecords: false }); -const unpackrStream = new UnpackrStream({ useRecords: false }); [0, 1, 2].forEach((type) => { // https://neovim.io/doc/user/api.html#api-definitions @@ -42,6 +41,7 @@ export async function attach({ let lastReqId = 0; let handlerId = 0; + const unpackrStream = new UnpackrStream({ useRecords: false }); const nvimSocket = await new Promise((resolve, reject) => { const client = new net.Socket(); client.once("error", reject); @@ -199,6 +199,7 @@ export async function attach({ }, detach() { nvimSocket.destroy(); + unpackrStream.end(); }, }; } From fab8ceb3143f0f9686dc89bf54f1f38fa1cb1aa6 Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Sat, 11 Jan 2025 12:28:49 -0800 Subject: [PATCH 05/11] port to node/vitest/swc-core --- README.md | 436 +- bun.lockb | Bin 271062 -> 0 bytes package-lock.json | 10819 ++++++++++++++++++++++++++++++++++++++++++ package.json | 34 +- src/attach.test.ts | 2 +- src/attach.ts | 2 +- src/cli/generate.ts | 2 +- src/cli/index.ts | 8 +- src/logger.ts | 2 +- src/tests.ts | 2 +- src/types.ts | 4 +- tests/preamble.ts | 4 +- tsconfig.json | 2 +- 13 files changed, 10857 insertions(+), 460 deletions(-) delete mode 100755 bun.lockb create mode 100644 package-lock.json diff --git a/README.md b/README.md index 2d3bfc2..821a998 100644 --- a/README.md +++ b/README.md @@ -1,437 +1,9 @@ -# Bunvim +# nvim-node - -Bunvim is a [Bun](https://bun.sh/) client that allows you to interact with Neovim through RPC -using TypeScript and JavaScript. If you're familiar with Neovim's Lua API, you'll find this client easy to use. +nvim-node is a port of [bunvim](https://github.com/wallpants/bunvim) to node. -This client includes [TypeScript definitions](https://github.com/wallpants/bunvim/blob/main/src/neovim-api.types.ts), -generated from [Neovim's api-metadata](https://neovim.io/doc/user/api.html#api-metadata), describing API function signatures, -including function parameters and return values. +I really like the minimalist approach taken by bunvim relative to [neovim node-client](https://github.com/neovim/node-client). I appreciate the stronger types and closer-to-the-metal, minimalist approach. It feels more like using a query-builder rather than an ORM. -All functionality is implemented in [one file](https://github.com/wallpants/bunvim/blob/main/src/attach.ts). -If you're looking for higher levels of abstraction, take a look at [neovim/node-client](https://github.com/neovim/node-client) -and [neoclide/neovim](https://github.com/neoclide/neovim). Good luck. - -## ✅ Requirements - -- [x] [Bun](https://bun.sh/) -- [x] [Neovim](https://neovim.io/) - -## 📦 Installation - -```sh -bun install bunvim -``` - -## 💻 Usage - -For examples of plugins using Bunvim, take a look at [napoleon.nvim](https://github.com/wallpants/napoleon.nvim), -[ghost-text.nvim](https://github.com/wallpants/ghost-text.nvim) and [github-preview.nvim](https://github.com/wallpants/github-preview.nvim). - -You should keep a tab open with [Neovim API docs](https://neovim.io/doc/user/api.html) when working with Bunvim. -Although this client includes generated TypeScript types, you'll find the detailed descriptions in the official docs very helpful if not necessary. - -Create a script: - -```typescript -// my-plugin.ts -import { attach } from "bunvim"; - -// RPC listenning address -const SOCKET = "/tmp/bunvim.nvim.socket"; - -const nvim = await attach({ - socket: SOCKET, - client: { name: "my-plugin-name" }, -}); - -// append "hello world" to current buffer -await nvim.call("nvim_buf_set_lines", [0, -1, -1, true, ["hello world"]]); - -// disable relative numbers -await nvim.call("nvim_set_option_value", ["relativenumber", false, {}]); - -// create a vertical split -await nvim.call("nvim_command", ["vs"]); - -// print cursor position on cursor move -await nvim.call("nvim_create_autocmd", [ - ["CursorHold", "CursorHoldI"], - { - desc: "Print Cursor Position", - command: `lua - local cursor_pos = vim.api.nvim_win_get_cursor(0) - vim.print(cursor_pos)`, - }, -]); - -nvim.detach(); -``` - -Initialize Neovim with the [RPC listening address](https://neovim.io/doc/user/starting.html#--listen) specified above: - -```bash -nvim --listen /tmp/bunvim.nvim.socket -``` - -Execute your script from another terminal: - -```sh -bun run my-plugin.ts -``` - -If your plugin is executed as a child process of Neovim: - -```lua --- somewhere in your neovim lua config files - -local function run_script() - - -- neovim sets the environment variable NVIM in all its child processes - -- NVIM = the RPC listening address assigned to the current neovim instance - -- neovim sets an RPC listening address if you don't manually specify one - -- https://neovim.io/doc/user/builtin.html#jobstart-env - - vim.fn.jobstart("bun run my-plugin.ts", { - cwd = vim.fn.expand("~/path/to/plugin/"), - }) -end - -vim.api.nvim_create_user_command("RunMyScript", run_script, {}) -``` - -You could then open Neovim without manually specifying an RPC listening address, just `nvim` and then run the command `:RunMyScript`. -Your Bun process would then have access to the `NVIM` environment variable. - -```typescript -// my-plugin.ts -import { attach } from "bunvim"; - -const SOCKET = process.env["NVIM"]; -if (!SOCKET) throw Error("socket missing"); - -const nvim = await attach({ - socket: SOCKET, - client: { name: "my-plugin-name" }, -}); -``` - -## 📖 API Reference - -This module exports only one method `attach` and a bunch of TypeScript types. `attach` returns -an `Nvim` object that can be used to interact with Neovim. - -
- - nvim.call(function: string, args: unknown[]) - - -> - -> Used to call [any of these functions](https://neovim.io/doc/user/api.html). They're all typed. You should -> get function names autocompletion & warnings from TypeScript if the parameters don't match the expected types. -> Some function calls return a value, others don't. -> -> ```typescript -> const bufferContent = await nvim.call("nvim_buf_get_lines", [0, 0, -1, true]); -> ``` - -> --- - -
- -
- - nvim.channelId - - -> - -> RPC Channel ID. -> -> ```typescript -> const channelId = nvim.channelId; -> -> await nvim.call("nvim_create_autocmd", [ -> ["CursorMove"], -> { -> desc: "Notify my-plugin", -> command: `lua -> vim.rpcnotify(${channelId}, "my-notification")`, -> }, -> ]); -> ``` - -> --- - -
- -
- - nvim.onNotification(notification: string, callback: function) - - -> - -> Registers a handler for a specific RPC Notification. -> -> Notifications must be typed before you declare a handler for them, or TypeScript will complain. -> -> ```typescript -> import { attach, type BaseEvents, type EventsMap } from "bunvim"; -> -> // an interface to define your notifications and their args -> interface MyEvents extends BaseEvents { -> requests: EventsMap; // default type -> notifications: { -> // declare custom notification: "cursor_move", -> // that would be called with args: [row: number, col: number] -> "cursor_move": [row: number, col: number]; -> }; -> } -> -> // attach to neovim -> const nvim = await attach({ ... }) -> -> let count = 0; -> -> // register a handler for the notification "cursor_move" -> nvim.onNotification("cursor_move", async ([row, col]) => { -> // "row" and "col" are of type "number" as specified above -> -> // CAUTION: -> // it's up to you to make sure the handler receives the correct args, -> // bunvim doesn't do any validations -> -> // print row and col in neovim -> await nvim.call("nvim_exec_lua", [`print("row: ${row} - col: ${col}")`, []]); -> -> // return `true` to remove handler -> return count++ >= 5; -> }); -> -> // multiple handlers can be registered for the same notification -> nvim.onNotification("cursor_move", async ([row, col]) => { -> // replace contents in current buffer lines 1 and 2 -> await nvim.call("nvim_buf_set_lines", [0, 0, 2, true, [`row: ${row}`, `col: ${col}`]]); -> }); -> -> const channelId = nvim.channelId; -> -> // create autocommand to notify our plugin via `vim.rpcnotify` -> // whenever the cursor moves -> await nvim.call("nvim_create_autocmd", [ -> ["CursorHold", "CursorHoldI"], -> { -> desc: "Notify on Cursor Move", -> command: `lua -> local cursor_pos = vim.api.nvim_win_get_cursor(0) -> local row = cursor_pos[1] -> local col = cursor_pos[2] -> vim.rpcnotify(${channelId}, "cursor_move", row, col)`, -> }, -> ]); -> ``` - -> --- - -
- -
- - nvim.onRequest(request: string, callback: function) - - -> - -> Registers a handler for a specific RPC Request. -> -> Requests must be typed before you declare a handler for them, or TypeScript will complain. -> -> The difference between an RPC Notification and an RPC Request, is that requests block neovim -> until a response is returned. Notifications are non-blocking. -> -> ```typescript -> import { attach, type BaseEvents, type EventsMap } from "bunvim"; -> import { gracefulShutdown } from "./utils.ts"; -> -> // an interface to define your requests and their args -> interface MyEvents extends BaseEvents { -> notifications: EventsMap; // default type -> requests: { -> // declare custom request: "before_exit", -> // that would be called with args: [buffer_name: string] -> "before_exit": [buffer_name: string]; -> }; -> } -> -> // attach to neovim -> const nvim = await attach({ ... }) -> -> // register a handler for the request "before_exit" -> nvim.onRequest("before_exit", async ([buffer_name]) => { -> // "buffer_name" is of type "string" as specified above -> -> // CAUTION: -> // it's up to you to make sure the handler receives the correct args, -> // bunvim doesn't do any validations -> -> // this should actually never get called, -> // because this handler gets overwritten below -> console.log("buffer_name: ", buffer_name); -> -> // we must return something to unblock neovim -> return null; -> }); -> -> // only one handler per request may be registered. -> // if you call `nvim.onRequest` for an already registered handler, -> // the older handler is replaced with the new one. -> nvim.onRequest("before_exit", async ([buffer_name]) => { -> gracefulShutdown(buffer_name); -> return null; -> }); -> -> const channelId = nvim.channelId; -> -> // create autocommand to call our function via `vim.rpcrequest` -> // whenever neovim is about to close -> await nvim.call("nvim_create_autocmd", [ -> ["VimLeavePre"], -> { -> desc: "RPC Request before exit", -> command: `lua -> local buffer_name = vim.api.nvim_get_current_buf() -> vim.rpcrequest(${channelId}, "before_exit", buffer_name)`, -> }, -> ]); -> ``` - -> --- - -
- -
- - nvim.detach() - - -> - -> Closes connection with neovim. -> -> ```ts -> nvim.detach(); -> ``` - -> --- - -
- -
- - nvim.logger - - -> - -> Instance of [winston logger](https://github.com/winstonjs/winston). -> May be `undefined` if logging was not enabled. -> -> Used to log data to console and/or file. Does not log/print messages to Neovim. -> -> [See Logging](#%EF%B8%8F-logging). -> -> ```typescript -> // log functions sorted from highest to lowest priority: -> -> nvim.logger?.error("error message"); -> nvim.logger?.warn("warn message"); -> nvim.logger?.info("info message"); -> nvim.logger?.http("http message"); -> nvim.logger?.verbose("verbose message"); -> nvim.logger?.debug("debug message"); -> nvim.logger?.silly("silly message"); -> ``` - -> --- - -
- -## 🖨️ Logging - -To enable logging to **Console** and/or **File**, a `logging.level` -must be specified when calling the `attach` method. - -```typescript -const nvim = await attach({ - socket: SOCKET, - client: { name: "my-plugin-name" }, - logging: { - level: "debug", // <= LOG LEVEL - }, -}); - -nvim.logger?.info("hello world"); -``` - -**Bunvim** internally logs with `logger.debug()` and `logger.error()`. -Set `logging.level` higher than `debug` to not display bunvim's internal logs when -printing logs for your plugin. - -Levels from highest to lowest priority: - -1. error -2. warn -3. info -4. http -5. verbose -6. debug -7. silly - -### Console - -After setting a `logging.level`, you can see your logs live with the command `bunvim logs` and -specifying the `client.name` you defined in your `attach`. - -In a terminal, run the command: - -```sh -# this process will listen for logs and print them to the console -# Ctrl-C to stop process - -bunx bunvim logs my-plugin-name -``` - -For more information about the CLI tool, run the command: - -```sh -bunx bunvim --help -``` - -### File - -You can also write your logs to a `file` by specifying a path when calling the `attach` method: - -```typescript -const nvim = await attach({ - socket: SOCKET, - client: { name: "my-plugin-name" }, - logging: { - level: "debug", // <= LOG LEVEL - file: : "~/my-plugin-name.log" // <= PATH TO LOG FILE - }, -}); -``` - -### Neovim - -If you want to log/print a message to the user in Neovim, use: - -```typescript -import { NVIM_LOG_LEVELS } from "bunvim"; - -await nvim.call("nvim_notify", ["some message", NVIM_LOG_LEVELS.INFO, {}]); -``` +However, I decided to leave bun for now since it has relatively poor support for [async stack traces](https://github.com/oven-sh/bun/issues/2704) and debugging (stepping through async calls). diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 5d2253c9cc0e6f00b95a01a24254f2fba13c7a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271062 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 z 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ⓈOl|+p;^%7Z#RJI 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.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@commitlint/cli": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.17.1", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/cz-commitlint": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "lodash.isplainobject": "^4.0.6", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">=v18" + }, + "peerDependencies": { + "commitizen": "^4.0.3", + "inquirer": "^9.0.0" + } + }, + "node_modules/@commitlint/ensure": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/lint": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/message": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-commits-parser": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-commits-parser/node_modules/meow": { + "version": "12.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-commits-parser/node_modules/split2": { + "version": "4.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@commitlint/read": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read/node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/rules": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^7.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up/node_modules/locate-path": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up/node_modules/locate-path/node_modules/p-locate": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit/node_modules/yocto-queue": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up/node_modules/path-exists": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@commitlint/types": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@inquirer/figures": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.6.tgz", + "integrity": "sha512-z8YVS3XszxFTO73iwvFDNpQIzdMmSDTP/mB3E/ucR37V3Sx57hSExcXyMoNwaucWxnsWf4xfbZv0iZ30jr0M4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "6.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.0.0", + "@octokit/request": "^9.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "10.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^9.0.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "7.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request-error": "^6.0.0", + "@octokit/types": "^13.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "9.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^6.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "9.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "6.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@oxc-resolver/binding-darwin-arm64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-1.12.0.tgz", + "integrity": "sha512-wYe+dlF8npM7cwopOOxbdNjtmJp17e/xF5c0K2WooQXy5VOh74icydM33+Uh/SZDgwyum09/U1FVCX5GdeQk+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxc-resolver/binding-darwin-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-1.12.0.tgz", + "integrity": "sha512-FZxxp99om+SlvBr1cjzF8A3TjYcS0BInCqjUlM+2f9m9bPTR2Bng9Zq5Q09ZQyrKJjfGKqlOEHs3akuVOnrx3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxc-resolver/binding-freebsd-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-1.12.0.tgz", + "integrity": "sha512-BZi0iU6IEOnXGSkqt1OjTTkN9wfyaK6kTpQwL/axl8eCcNDc7wbv1vloHgILf7ozAY1TP75nsLYlASYI4B5kGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.12.0.tgz", + "integrity": "sha512-L2qnMEnZAqxbG9b1J3di/w/THIm+1fMVfbbTMWIQNMMXdMeqqDN6ojnOLDtuP564rAh4TBFPdLyEfGhMz6ipNA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.12.0.tgz", + "integrity": "sha512-otVbS4zeo3n71zgGLBYRTriDzc0zpruC0WI3ICwjpIk454cLwGV0yzh4jlGYWQJYJk0BRAmXFd3ooKIF+bKBHw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.12.0.tgz", + "integrity": "sha512-IStQDjIT7Lzmqg1i9wXvPL/NsYsxF24WqaQFS8b8rxra+z0VG7saBOsEnOaa4jcEY8MVpLYabFhTV+fSsA2vnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-x64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.12.0.tgz", + "integrity": "sha512-SipT7EVORz8pOQSFwemOm91TpSiBAGmOjG830/o+aLEsvQ4pEy223+SAnCfITh7+AahldYsJnVoIs519jmIlKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-x64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-1.12.0.tgz", + "integrity": "sha512-mGh0XfUzKdn+WFaqPacziNraCWL5znkHRfQVxG9avGS9zb2KC/N1EBbPzFqutDwixGDP54r2gx4q54YCJEZ4iQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-wasm32-wasi": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-1.12.0.tgz", + "integrity": "sha512-SZN6v7apKmQf/Vwiqb6e/s3Y2Oacw8uW8V2i1AlxtyaEFvnFE0UBn89zq6swEwE3OCajNWs0yPvgAXUMddYc7Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.12.0.tgz", + "integrity": "sha512-GRe4bqCfFsyghruEn5bv47s9w3EWBdO2q72xCz5kpQ0LWbw+enPHtTjw3qX5PUcFYpKykM55FaO0hFDs1yzatw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@oxc-resolver/binding-win32-x64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.12.0.tgz", + "integrity": "sha512-Z3llHH0jfJP4mlWq3DT7bK6qV+/vYe0+xzCgfc67+Tc/U3eYndujl880bexeGdGNPh87JeYznpZAOJ44N7QVVQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", + "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", + "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", + "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", + "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", + "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", + "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", + "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", + "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", + "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", + "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", + "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", + "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", + "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", + "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", + "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", + "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", + "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", + "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", + "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@semantic-release/commit-analyzer": { + "version": "13.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "import-from-esm": "^1.0.3", + "lodash-es": "^4.17.21", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/error": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/github": { + "version": "11.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "debug": "^4.3.4", + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^7.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=24.1.0" + } + }, + "node_modules/@semantic-release/npm": { + "version": "12.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "execa": "^9.0.0", + "fs-extra": "^11.0.0", + "lodash-es": "^4.17.21", + "nerf-dart": "^1.0.0", + "normalize-url": "^8.0.0", + "npm": "^10.5.0", + "rc": "^1.2.8", + "read-pkg": "^9.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^3.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/fs-extra": { + "version": "11.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "14.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "get-stream": "^7.0.0", + "import-from-esm": "^1.0.3", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-package-up": "^11.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@swc-node/core": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc-node/core/-/core-1.13.3.tgz", + "integrity": "sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "@swc/types": ">= 0.1" + } + }, + "node_modules/@swc-node/register": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc-node/register/-/register-1.10.9.tgz", + "integrity": "sha512-iXy2sjP0phPEpK2yivjRC3PAgoLaT4sjSk0LDWCTdcTBJmR4waEog0E6eJbvoOkLkOtWw37SB8vCkl/bbh4+8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc-node/core": "^1.13.3", + "@swc-node/sourcemap-support": "^0.5.1", + "colorette": "^2.0.20", + "debug": "^4.3.5", + "oxc-resolver": "^1.10.2", + "pirates": "^4.0.6", + "tslib": "^2.6.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "typescript": ">= 4.3" + } + }, + "node_modules/@swc-node/sourcemap-support": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.5.1.tgz", + "integrity": "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map-support": "^0.5.21", + "tslib": "^2.6.3" + } + }, + "node_modules/@swc/core": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.7.tgz", + "integrity": "sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.10.7", + "@swc/core-darwin-x64": "1.10.7", + "@swc/core-linux-arm-gnueabihf": "1.10.7", + "@swc/core-linux-arm64-gnu": "1.10.7", + "@swc/core-linux-arm64-musl": "1.10.7", + "@swc/core-linux-x64-gnu": "1.10.7", + "@swc/core-linux-x64-musl": "1.10.7", + "@swc/core-win32-arm64-msvc": "1.10.7", + "@swc/core-win32-ia32-msvc": "1.10.7", + "@swc/core-win32-x64-msvc": "1.10.7" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.7.tgz", + "integrity": "sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.7.tgz", + "integrity": "sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.7.tgz", + "integrity": "sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.7.tgz", + "integrity": "sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.7.tgz", + "integrity": "sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.7.tgz", + "integrity": "sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.7.tgz", + "integrity": "sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.7.tgz", + "integrity": "sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.7.tgz", + "integrity": "sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.7.tgz", + "integrity": "sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@swc/types": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitest/expect": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", + "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", + "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", + "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.8", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", + "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", + "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", + "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/array-ify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/async": { + "version": "3.2.6", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "3.0.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/clean-stack": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs/node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/yargs/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorspace": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/commitizen": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commitizen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/commitizen/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commitizen/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/commitizen/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/commitizen/node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/commitizen/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/commitizen/node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/commitlint": { + "version": "19.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/cli": "^19.5.0", + "@commitlint/types": "^19.5.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-filter": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commits-parser": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jiti": "^1.21.6" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk/node_modules/supports-color/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/env-ci": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^8.0.0", + "java-properties": "^1.0.2" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + } + }, + "node_modules/env-ci/node_modules/execa": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/get-stream": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/human-signals": { + "version": "5.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/npm-run-path": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-ci/node_modules/execa/node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "9.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "9.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.17.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-versions": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "dev": true, + "license": "ISC" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/from2": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/from2/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-timeout": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-log-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "0.6.8" + } + }, + "node_modules/git-raw-commits": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/git-raw-commits/node_modules/meow": { + "version": "12.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits/node_modules/split2": { + "version": "4.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-directory": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hook-std": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hosted-git-info": { + "version": "8.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "8.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from-esm": { + "version": "1.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" + }, + "engines": { + "node": ">=16.20" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/index-to-position": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "9.3.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.7.tgz", + "integrity": "sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@inquirer/figures": "^1.0.3", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/into-stream": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-text-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/issue-parser": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + } + }, + "node_modules/java-properties": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logform": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/marked": { + "version": "12.0.2", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/marked-terminal": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "chalk": "^5.3.0", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.5", + "node-emoji": "^2.1.3", + "supports-hyperlinks": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "marked": ">=1 <14" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "4.0.4", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm": { + "version": "10.9.0", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^8.0.0", + "@npmcli/config": "^9.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "@npmcli/promise-spawn": "^8.0.1", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "@sigstore/tuf": "^2.3.4", + "abbrev": "^3.0.0", + "archy": "~1.0.0", + "cacache": "^19.0.1", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^8.0.0", + "ini": "^5.0.0", + "init-package-json": "^7.0.1", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^9.0.0", + "libnpmdiff": "^7.0.0", + "libnpmexec": "^9.0.0", + "libnpmfund": "^6.0.0", + "libnpmhook": "^11.0.0", + "libnpmorg": "^7.0.0", + "libnpmpack": "^8.0.0", + "libnpmpublish": "^10.0.0", + "libnpmsearch": "^8.0.0", + "libnpmteam": "^7.0.0", + "libnpmversion": "^7.0.0", + "make-fetch-happen": "^14.0.1", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.2.0", + "nopt": "^8.0.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.1", + "npm-user-validate": "^3.0.0", + "p-map": "^4.0.0", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^4.0.0", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/unicorn-magic": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "ssri": "^12.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/agent": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/fs": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/cacache": { + "version": "18.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "13.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/minipass-fetch": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/ssri": { + "version": "10.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-filename": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-slug": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/p-map": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^6.0.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "tar": "^6.2.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^8.0.0", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "14.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/agent": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { + "version": "18.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "13.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { + "version": "10.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/nopt/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "12.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/p-map/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/p-map/node_modules/aggregate-error/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/p-map/node_modules/aggregate-error/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "19.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "5.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.18", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "12.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/agent": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/fs": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/cacache": { + "version": "18.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "13.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/minipass-fetch": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/proc-log": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/ssri": { + "version": "10.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/unique-filename": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/unique-slug": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oxc-resolver": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-1.12.0.tgz", + "integrity": "sha512-YlaCIArvWNKCWZFRrMjhh2l5jK80eXnpYP+bhRc1J/7cW3TiyEY0ngJo73o/5n8hA3+4yLdTmXLNTQ3Ncz50LQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-resolver/binding-darwin-arm64": "1.12.0", + "@oxc-resolver/binding-darwin-x64": "1.12.0", + "@oxc-resolver/binding-freebsd-x64": "1.12.0", + "@oxc-resolver/binding-linux-arm-gnueabihf": "1.12.0", + "@oxc-resolver/binding-linux-arm64-gnu": "1.12.0", + "@oxc-resolver/binding-linux-arm64-musl": "1.12.0", + "@oxc-resolver/binding-linux-x64-gnu": "1.12.0", + "@oxc-resolver/binding-linux-x64-musl": "1.12.0", + "@oxc-resolver/binding-wasm32-wasi": "1.12.0", + "@oxc-resolver/binding-win32-arm64-msvc": "1.12.0", + "@oxc-resolver/binding-win32-x64-msvc": "1.12.0" + } + }, + "node_modules/p-each-series": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-conf": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up/node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up/node_modules/locate-path/node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up/node_modules/locate-path/node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up/node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-organize-imports": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/pretty-ms": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "license": "ISC" + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/rc/node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-up": { + "version": "11.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-package-up/node_modules/type-fest": { + "version": "4.26.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "6.0.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "4.26.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/registry-auth-token": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", + "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.30.1", + "@rollup/rollup-android-arm64": "4.30.1", + "@rollup/rollup-darwin-arm64": "4.30.1", + "@rollup/rollup-darwin-x64": "4.30.1", + "@rollup/rollup-freebsd-arm64": "4.30.1", + "@rollup/rollup-freebsd-x64": "4.30.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", + "@rollup/rollup-linux-arm-musleabihf": "4.30.1", + "@rollup/rollup-linux-arm64-gnu": "4.30.1", + "@rollup/rollup-linux-arm64-musl": "4.30.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", + "@rollup/rollup-linux-riscv64-gnu": "4.30.1", + "@rollup/rollup-linux-s390x-gnu": "4.30.1", + "@rollup/rollup-linux-x64-gnu": "4.30.1", + "@rollup/rollup-linux-x64-musl": "4.30.1", + "@rollup/rollup-win32-arm64-msvc": "4.30.1", + "@rollup/rollup-win32-ia32-msvc": "4.30.1", + "@rollup/rollup-win32-x64-msvc": "4.30.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/semantic-release": { + "version": "24.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/commit-analyzer": "^13.0.0-beta.1", + "@semantic-release/error": "^4.0.0", + "@semantic-release/github": "^11.0.0", + "@semantic-release/npm": "^12.0.0", + "@semantic-release/release-notes-generator": "^14.0.0-beta.1", + "aggregate-error": "^5.0.0", + "cosmiconfig": "^9.0.0", + "debug": "^4.0.0", + "env-ci": "^11.0.0", + "execa": "^9.0.0", + "figures": "^6.0.0", + "find-versions": "^6.0.0", + "get-stream": "^6.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^3.0.0", + "hosted-git-info": "^8.0.0", + "import-from-esm": "^1.3.1", + "lodash-es": "^4.17.21", + "marked": "^12.0.0", + "marked-terminal": "^7.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^3.0.0", + "p-reduce": "^3.0.0", + "read-package-up": "^11.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^4.0.0", + "signale": "^1.2.1", + "yargs": "^17.5.1" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=20.8.1" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver-regex": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/signale": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/signale/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/signale/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/signale/node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/signale/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk/node_modules/supports-color/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/figures": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split2": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-combiner2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner2/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/super-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "function-timeout": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/temp-dir": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/tempy": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "2.19.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-extensions": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/time-span": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/traverse": { + "version": "0.6.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.8.0", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universal-user-agent": { + "version": "7.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", + "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", + "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.8", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", + "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 + } + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "3.17.0", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index bb86aca..34cc9ba 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,16 @@ { - "name": "bunvim", - "author": "wallpants", + "name": "nvim-node", + "author": "dlants", "type": "module", "version": "0.0.0", "license": "MIT", - "description": "Neovim bun client", + "description": "minimalist neovim client for node", "repository": { "type": "git", - "url": "git://github.com/wallpants/bunvim.git" - }, - "bin": { - "bunvim": "src/cli/index.ts" + "url": "git://github.com/dlants/nvim-node.git" }, "exports": { - "types": "./src/index.ts", - "bun": "./src/index.ts" + "types": "./src/index.ts" }, "release": { "branches": [ @@ -38,13 +34,13 @@ }, "scripts": { "commit": "cz", - "vi": "nvim", "format": "prettier **/*.{md,ts,yml} -w", "lint": "eslint . --ext ts --report-unused-disable-directives --max-warnings 0", "typecheck": "tsc", - "check": "bun run typecheck && bun run lint" + "check": "npm run typecheck && npm run lint" }, "dependencies": { + "@types/node": "^22.10.5", "commander": "^12.1.0", "msgpackr": "^1.11.2", "winston": "^3.16.0" @@ -52,7 +48,7 @@ "devDependencies": { "@commitlint/config-conventional": "^19.5.0", "@commitlint/cz-commitlint": "^19.5.0", - "@types/bun": "^1.1.12", + "@swc-node/register": "^1.10.9", "@typescript-eslint/eslint-plugin": "^8.12.2", "@typescript-eslint/parser": "^8.13.0", "commitizen": "^4.3.1", @@ -61,6 +57,16 @@ "prettier": "^3.3.3", "prettier-plugin-organize-imports": "^4.1.0", "semantic-release": "^24.2.0", - "typescript": "^5.6.3" - } + "typescript": "^5.6.3", + "vitest": "^2.1.8" + }, + "main": "index.js", + "directories": { + "doc": "docs", + "test": "tests" + }, + "bugs": { + "url": "https://github.com/dlants/nvim-node/issues" + }, + "homepage": "https://github.com/dlants/nvim-node#readme" } diff --git a/src/attach.test.ts b/src/attach.test.ts index aa2b96e..3ef5ab9 100644 --- a/src/attach.test.ts +++ b/src/attach.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "bun:test"; +import { describe, expect, it } from "vitest"; import { withNvimClient } from "../tests/preamble"; describe("src/attach.test.ts", () => { diff --git a/src/attach.ts b/src/attach.ts index cfb80c8..bee892f 100644 --- a/src/attach.ts +++ b/src/attach.ts @@ -58,7 +58,7 @@ export async function attach({ logger?.debug("connection closed by neovim"); }) .on("close", () => { - logger?.debug("connection closed by bunvim"); + logger?.debug("connection closed by node"); }); resolve(client); }); diff --git a/src/cli/generate.ts b/src/cli/generate.ts index d4f6dec..8ecf3c2 100644 --- a/src/cli/generate.ts +++ b/src/cli/generate.ts @@ -40,7 +40,7 @@ export function generateTypescriptContent(neovimApi: ApiMeta) { * file generated by bunvim: https://github.com/gualcasas/bunvim */ -import { type EventsMap } from "bunvim"; +import { type EventsMap } from "nvim-node"; export type NeovimApi< Notifications extends EventsMap = EventsMap, diff --git a/src/cli/index.ts b/src/cli/index.ts index 4653068..a88d613 100755 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,16 +1,16 @@ -#!/usr/bin/env bun +#!/usr/bin/env node --import @swc-node/register/esm-register script.ts import { program } from "commander"; import { version } from "../../package.json"; -program.name("bunvim").description("CLI to work with neovim's bun client").version(version); +program.name("nvim-node").description("CLI to work with neovim's node client").version(version); program .command("logs") - .description("print bunvim client logs") + .description("print nvim-node client logs") .argument("", "Client name you specify in your attach call.") .action((name) => { Bun.spawn({ - cmd: ["tail", "-F", "-n", "0", `/tmp/${name}.bunvim.logs`], + cmd: ["tail", "-F", "-n", "0", `/tmp/${name}.node.logs`], stdin: null, stdout: "inherit", }); diff --git a/src/logger.ts b/src/logger.ts index 9110329..d238558 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -8,7 +8,7 @@ export function createLogger( ) { if (!logging?.level) return; - const defaultFilePath = `/tmp/${client.name}.bunvim.logs`; + const defaultFilePath = `/tmp/${client.name}.node.logs`; const logger = winston.createLogger({ level: logging.level, diff --git a/src/tests.ts b/src/tests.ts index d72a0a9..37e5054 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -15,7 +15,7 @@ type MyEvents = { const nvim = await attach({ socket: SOCKET, client: { - name: "bunvim", + name: "node", version: { minor: 0, }, diff --git a/src/types.ts b/src/types.ts index 37adb14..5d491ce 100644 --- a/src/types.ts +++ b/src/types.ts @@ -86,7 +86,7 @@ export type AttachParams = { * @example * ```lua * -- init.lua - * vim.fn.jobstart("bun run src/main.ts", { cwd = root_dir }) + * vim.fn.jobstart("npm run src/main.ts", { cwd = root_dir }) * ``` * * ```typescript @@ -112,7 +112,7 @@ export type AttachParams = { logging?: { /** * @remarks - * bunvim internally logs with `logger.debug()` and `logger.error()` + * node internally logs with `logger.debug()` and `logger.error()` * Set logLevel higher than `debug` to not display bunvim's internal logs * * Levels from highest to lowest priority diff --git a/tests/preamble.ts b/tests/preamble.ts index 84f84a9..2b4936a 100644 --- a/tests/preamble.ts +++ b/tests/preamble.ts @@ -3,7 +3,7 @@ import { unlink } from "node:fs/promises"; import { spawn } from "child_process"; import path from "path"; -const SOCK = `/tmp/bunvim-test.sock`; +const SOCK = `/tmp/nvim-node-test.sock`; export async function withNvimProcess(fn: (sock: string) => Promise) { try { await unlink(SOCK); @@ -51,7 +51,7 @@ export async function withNvimProcess(fn: (sock: string) => Promise) { } export async function withNvimClient(fn: (nvim: Nvim) => Promise) { - return await withNvimProcess(async (sock) => { + return withNvimProcess(async (sock) => { const nvim = await attach({ socket: sock, client: { name: "test" }, diff --git a/tsconfig.json b/tsconfig.json index fe4da99..1ce2b42 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "target": "ESNext", "moduleResolution": "Bundler", "moduleDetection": "force", - "types": ["bun-types"], + "types": [], "allowImportingTsExtensions": true, "noEmit": true, "strict": true, From 57523c84e6e43ae7d888eb0a7c08d5fcfc8244de Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Sat, 11 Jan 2025 12:47:34 -0800 Subject: [PATCH 06/11] fixup package.json --- package.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 34cc9ba..31b9c5e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nvim-node", "author": "dlants", "type": "module", - "version": "0.0.0", + "version": "0.0.1", "license": "MIT", "description": "minimalist neovim client for node", "repository": { @@ -10,7 +10,10 @@ "url": "git://github.com/dlants/nvim-node.git" }, "exports": { - "types": "./src/index.ts" + ".": { + "default": "./src/index.ts", + "types": "./src/index.ts" + } }, "release": { "branches": [ From c0d215a2f01f4d0f369617f69e87afcc1f56417b Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Sat, 11 Jan 2025 13:34:42 -0800 Subject: [PATCH 07/11] fixup Bun dependency in logs script --- package.json | 2 +- src/cli/index.ts | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 31b9c5e..0803ee2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nvim-node", "author": "dlants", "type": "module", - "version": "0.0.1", + "version": "0.0.2", "license": "MIT", "description": "minimalist neovim client for node", "repository": { diff --git a/src/cli/index.ts b/src/cli/index.ts index a88d613..0e73fb6 100755 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,5 +1,5 @@ -#!/usr/bin/env node --import @swc-node/register/esm-register script.ts import { program } from "commander"; +import { spawn } from "node:child_process"; import { version } from "../../package.json"; program.name("nvim-node").description("CLI to work with neovim's node client").version(version); @@ -9,10 +9,8 @@ program .description("print nvim-node client logs") .argument("", "Client name you specify in your attach call.") .action((name) => { - Bun.spawn({ - cmd: ["tail", "-F", "-n", "0", `/tmp/${name}.node.logs`], - stdin: null, - stdout: "inherit", + spawn("tail", ["-F", "-n", "0", `/tmp/${name}.node.logs`], { + stdio: ["ignore", "inherit", "inherit"], }); }) .exitOverride(() => process.exit(0)); From c271707c3dcd13fec398196c343c61e9869951f8 Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Mon, 12 May 2025 09:19:57 -0700 Subject: [PATCH 08/11] fixup/simplify logging --- package.json | 2 +- src/attach.ts | 16 +++---- src/logger.test.ts | 60 +++++++++++++++++++++++++ src/logger.ts | 46 ++++---------------- tests/preamble.ts | 106 ++++++++++++++++++++++----------------------- vitest.config.ts | 8 ++++ 6 files changed, 138 insertions(+), 100 deletions(-) create mode 100644 src/logger.test.ts create mode 100644 vitest.config.ts diff --git a/package.json b/package.json index 0803ee2..735835d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nvim-node", "author": "dlants", "type": "module", - "version": "0.0.2", + "version": "0.0.3", "license": "MIT", "description": "minimalist neovim client for node", "repository": { diff --git a/src/attach.ts b/src/attach.ts index bee892f..49b0e7c 100644 --- a/src/attach.ts +++ b/src/attach.ts @@ -30,7 +30,7 @@ export async function attach({ client, logging, }: AttachParams): Promise> { - const logger = createLogger(client, logging); + const logger = createLogger(client, logging?.level ?? "info", logging?.file); const messageOutQueue: RPCMessage[] = []; // eslint-disable-next-line @typescript-eslint/no-explicit-any const notificationHandlers = new Map>>(); @@ -52,13 +52,13 @@ export async function attach({ unpackrStream.write(data); }) .on("error", (error) => { - logger?.error("socket error", error); + logger.error("socket error", error); }) .on("end", () => { - logger?.debug("connection closed by neovim"); + logger.debug("connection closed by neovim"); }) .on("close", () => { - logger?.debug("connection closed by node"); + logger.debug("connection closed by node"); }); resolve(client); }); @@ -73,11 +73,11 @@ export async function attach({ const message = messageOutQueue.shift(); if (!message) { - logger?.error("Cannot process undefined message"); + logger.error("Cannot process undefined message"); return; } - logger?.debug(prettyRPCMessage(message, "out")); + logger.debug(prettyRPCMessage(message, "out")); nvimSocket.write(packr.pack(message) as unknown as Uint8Array); processMessageOutQueue(); } @@ -100,7 +100,7 @@ export async function attach({ unpackrStream.on("data", (message: RPCMessage) => { (async () => { - logger?.debug(prettyRPCMessage(message, "in")); + logger.debug(prettyRPCMessage(message, "in")); if (message[0] === MessageType.NOTIFY) { // asynchronously run notification handlers. // RPCNotifications don't need a response @@ -154,7 +154,7 @@ export async function attach({ // Continue processing queue processMessageOutQueue(); - })().catch((err: unknown) => logger?.error("unpackrStream error", err)); + })().catch((err: unknown) => logger.error("unpackrStream error", err)); }); const call: Nvim["call"] = (func, args) => { diff --git a/src/logger.test.ts b/src/logger.test.ts new file mode 100644 index 0000000..20b07c5 --- /dev/null +++ b/src/logger.test.ts @@ -0,0 +1,60 @@ +import fs from "node:fs/promises"; +import { resolve } from "node:path"; +import { beforeEach, describe, expect, it } from "vitest"; +import { withNvimClient } from "../tests/preamble"; + +describe("src/logger.test.ts", () => { + const logFilePath = resolve("/tmp/test-logging.log"); + + beforeEach(async () => { + try { + await fs.unlink(logFilePath); + } catch (e) { + console.error(e); + } + }); + + it("logs messages in correct format and order", async () => { + await withNvimClient( + async (nvim) => { + // Add various log messages at different levels + nvim.logger?.error("Error level message"); + nvim.logger?.warn("Warning level message"); + nvim.logger?.info("Info level message"); + nvim.logger?.debug("Debug level message"); + + // Read log file and verify contents + const logContent = await fs.readFile(logFilePath, "utf-8"); + + // Split lines and check each log entry individually + const logLines = logContent.trim().split("\n"); + + // Check that we have the expected number of log lines (3 since debug is below the threshold) + expect(logLines.length).toBe(3); + + // Parse and verify each line + const logs = logLines.map((line) => JSON.parse(line)); + + // Check error message + expect(logs[0].level).toBe("error"); + expect(logs[0].message).toBe("Error level message"); + expect(logs[0].timestamp).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/); + + // Check warn message + expect(logs[1].level).toBe("warn"); + expect(logs[1].message).toBe("Warning level message"); + expect(logs[1].timestamp).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/); + + // Check info message + expect(logs[2].level).toBe("info"); + expect(logs[2].message).toBe("Info level message"); + expect(logs[2].timestamp).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/); + + // Check that debug messages don't appear (set log level to info) + const debugEntries = logs.filter((log) => log.level === "debug"); + expect(debugEntries.length).toBe(0); + }, + { logFile: logFilePath, logLevel: "info" }, + ); + }); +}); diff --git a/src/logger.ts b/src/logger.ts index d238558..de89503 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -2,50 +2,20 @@ import { resolve } from "node:path"; import winston from "winston"; import { MessageType, type Client, type LogLevel, type RPCMessage } from "./types.ts"; -export function createLogger( - client: Client, - logging?: { level?: LogLevel | undefined; file?: string | undefined }, -) { - if (!logging?.level) return; - - const defaultFilePath = `/tmp/${client.name}.node.logs`; - +export function createLogger(client: Client, level: LogLevel, file?: string) { + // Create a simple and standard winston logger + const filename = file ? resolve(file) : `/tmp/${client.name}.log`; const logger = winston.createLogger({ - level: logging.level, + level, + format: winston.format.combine(winston.format.timestamp(), winston.format.json()), transports: [ new winston.transports.File({ - filename: defaultFilePath, - format: winston.format.combine( - winston.format.colorize(), - winston.format.timestamp({ format: "HH:mm:ss.SSS" }), - winston.format.printf((info) => `\n${info.level} ${info["timestamp"]}`), - ), - }), - new winston.transports.File({ - filename: defaultFilePath, - format: winston.format.combine( - winston.format((info) => { - // @ts-expect-error ts mad we delete non-optional prop `level` - delete info.level; - return info; - })(), - winston.format.prettyPrint({ - colorize: true, - }), - ), + filename, + options: { flags: 'w' } // 'w' flag truncates the file if it exists }), ], }); - - if (logging.file) { - const resolved = resolve(logging.file); - logger.add( - new winston.transports.File({ - filename: resolved, - format: winston.format.combine(winston.format.timestamp(), winston.format.json()), - }), - ); - } + console.log(`creating logger of level ${level} and file ${file}`); return logger; } diff --git a/tests/preamble.ts b/tests/preamble.ts index 2b4936a..12b3009 100644 --- a/tests/preamble.ts +++ b/tests/preamble.ts @@ -1,72 +1,72 @@ -import { attach, type Nvim } from "../src/index.ts"; -import { unlink } from "node:fs/promises"; import { spawn } from "child_process"; +import { unlink } from "node:fs/promises"; import path from "path"; +import { attach, type LogLevel, type Nvim } from "../src/index.ts"; const SOCK = `/tmp/nvim-node-test.sock`; export async function withNvimProcess(fn: (sock: string) => Promise) { - try { - await unlink(SOCK); - } catch (e) { - if ((e as { code: string }).code !== "ENOENT") { - console.error(e); + try { + await unlink(SOCK); + } catch (e) { + if ((e as { code: string }).code !== "ENOENT") { + console.error(e); + } } - } - - const nvimProcess = spawn( - "nvim", - ["--headless", "-n", "--clean", "--listen", SOCK], - { - // root dir relative to this file - cwd: path.resolve(path.dirname(__filename), "../"), - }, - ); - if (!nvimProcess.pid) { - throw new Error("Failed to start nvim process"); - } - - try { - nvimProcess.on("error", (err) => { - throw err; + const nvimProcess = spawn("nvim", ["--headless", "-n", "--clean", "--listen", SOCK], { + // root dir relative to this file + cwd: path.resolve(path.dirname(__filename), "../"), }); - nvimProcess.on("exit", (code, signal) => { - if (code !== 1) { - throw new Error( - `Nvim process exited with code ${code} and signal ${signal}`, - ); - } - }); + if (!nvimProcess.pid) { + throw new Error("Failed to start nvim process"); + } - // give enough time for socket to be created - // TODO: poll for socket instead - await new Promise((resolve) => setTimeout(resolve, 500)); + try { + nvimProcess.on("error", (err) => { + throw err; + }); - await fn(SOCK); - } finally { - const res = nvimProcess.kill(); - console.log(`Killed process ${nvimProcess.pid} with result ${res}`); - } -} + nvimProcess.on("exit", (code, signal) => { + if (code !== 1) { + throw new Error(`Nvim process exited with code ${code} and signal ${signal}`); + } + }); -export async function withNvimClient(fn: (nvim: Nvim) => Promise) { - return withNvimProcess(async (sock) => { - const nvim = await attach({ - socket: sock, - client: { name: "test" }, - logging: { level: "debug" }, - }); + // give enough time for socket to be created + // TODO: poll for socket instead + await new Promise((resolve) => setTimeout(resolve, 500)); - try { - await fn(nvim); + await fn(SOCK); } finally { - nvim.detach(); + const res = nvimProcess.kill(); + console.log(`Killed process ${nvimProcess.pid} with result ${res}`); } - }); +} + +export async function withNvimClient( + fn: (nvim: Nvim) => Promise, + options: { + logFile?: string; + logLevel?: LogLevel; + } = {}, +) { + return withNvimProcess(async (sock) => { + const nvim = await attach({ + socket: sock, + client: { name: "test" }, + logging: { level: options.logLevel ?? "debug", file: options.logFile }, + }); + + try { + await fn(nvim); + } finally { + nvim.detach(); + } + }); } process.on("uncaughtException", (err) => { - console.error(err); - process.exit(1); + console.error(err); + process.exit(1); }); diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..10daf73 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,8 @@ +/// +import { defineConfig } from "vite"; + +export default defineConfig({ + test: { + fileParallelism: false, + }, +}); From 391308fcef7bffdfd836dad0aefdfa132d97b41c Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Mon, 12 May 2025 09:24:52 -0700 Subject: [PATCH 09/11] update actions/release for node instead of bun --- .github/workflows/release.yml | 25 ++++++++----------------- src/logger.ts | 2 +- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 06d3ee6..aaf16fe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,29 +20,21 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x + cache: "npm" - name: Setup Neovim uses: rhysd/action-setup-vim@v1 with: neovim: true version: stable - - name: Install bun - uses: oven-sh/setup-bun@v2 - name: Install dependencies - run: bun install --no-save + run: npm ci - name: Validate PR commits with commitlint if: github.event_name == 'pull_request' - run: bun run commitlint --from=origin/main --to=HEAD - - name: Validate code formatting - run: | - bun run format - if [[ $(git status --porcelain) ]]; then - echo "Code not properly formatted. Please run 'bun run format' locally and commit changes." - exit 1 - fi + run: npm run commitlint -- --from=origin/main --to=HEAD - name: Lint & check types - run: bun run check + run: npm run check - name: Test - run: bun test + run: npx vitest run Release: needs: [Test] @@ -61,12 +53,11 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - - name: Install bun - uses: oven-sh/setup-bun@v2 + cache: "npm" - name: Install dependencies - run: bun install + run: npm ci - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: bun run semantic-release + run: npm run semantic-release diff --git a/src/logger.ts b/src/logger.ts index de89503..bd32eda 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -11,7 +11,7 @@ export function createLogger(client: Client, level: LogLevel, file?: string) { transports: [ new winston.transports.File({ filename, - options: { flags: 'w' } // 'w' flag truncates the file if it exists + options: { flags: "w" }, // 'w' flag truncates the file if it exists }), ], }); From 830beae21ef735c66bcb0d66bf178f555ccd66ba Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Mon, 12 May 2025 09:28:57 -0700 Subject: [PATCH 10/11] fixup eslint issues --- .eslintrc.json | 1 + package-lock.json | 4 ++-- src/logger.test.ts | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 1e79cd1..fcd22f3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,6 +11,7 @@ "plugin:@typescript-eslint/strict-type-checked", "plugin:@typescript-eslint/stylistic-type-checked" ], + "ignorePatterns": ["vitest.config.ts"], "rules": { "@typescript-eslint/restrict-template-expressions": ["error", { "allowNumber": true }], "@typescript-eslint/consistent-type-definitions": ["error", "type"], diff --git a/package-lock.json b/package-lock.json index e6cb1ac..4e6273f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nvim-node", - "version": "0.0.0", + "version": "0.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nvim-node", - "version": "0.0.0", + "version": "0.0.3", "license": "MIT", "dependencies": { "@types/node": "^22.10.5", diff --git a/src/logger.test.ts b/src/logger.test.ts index 20b07c5..9d1256d 100644 --- a/src/logger.test.ts +++ b/src/logger.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import fs from "node:fs/promises"; import { resolve } from "node:path"; import { beforeEach, describe, expect, it } from "vitest"; @@ -33,6 +34,7 @@ describe("src/logger.test.ts", () => { expect(logLines.length).toBe(3); // Parse and verify each line + // eslint-disable-next-line @typescript-eslint/no-unsafe-return const logs = logLines.map((line) => JSON.parse(line)); // Check error message From fb5c91fabf1d520d18a339f527a6df327e5bc361 Mon Sep 17 00:00:00 2001 From: Denis Lantsman Date: Mon, 12 May 2025 09:32:17 -0700 Subject: [PATCH 11/11] fixup release trigger --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aaf16fe..98ec8cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -43,8 +43,7 @@ jobs: issues: write pull-requests: write if: | - github.ref == 'refs/heads/main' && - github.event.repository.fork == false + github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: - name: Checkout Code