├── examples
└── api
│ ├── .env.example
│ ├── README.md
│ ├── package.json
│ ├── tsconfig.json
│ └── src
│ ├── prompts
│ └── story.tsx
│ └── index.ts
├── packages
├── tokenizer
│ ├── rustfmt.toml
│ ├── build.rs
│ ├── npm
│ │ ├── darwin-x64
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── android-arm64
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── darwin-arm64
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── freebsd-x64
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── linux-x64-gnu
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── win32-ia32-msvc
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── win32-x64-msvc
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── android-arm-eabi
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── darwin-universal
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── linux-arm64-gnu
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── linux-x64-musl
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── win32-arm64-msvc
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── linux-arm64-musl
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ ├── linux-riscv64-gnu
│ │ │ ├── README.md
│ │ │ └── package.json
│ │ └── linux-arm-gnueabihf
│ │ │ ├── README.md
│ │ │ └── package.json
│ ├── .npmignore
│ ├── .cargo
│ │ └── config.toml
│ ├── index.d.ts
│ ├── __test__
│ │ └── index.spec.mjs
│ ├── Cargo.toml
│ ├── src
│ │ └── lib.rs
│ ├── package.json
│ ├── .gitignore
│ ├── index.js
│ └── pnpm-lock.yaml
└── promptre
│ ├── src
│ ├── components
│ │ ├── fragment.tsx
│ │ ├── user-message.tsx
│ │ ├── system-message.tsx
│ │ └── assistant-message.tsx
│ ├── index.ts
│ ├── scopes.bench.tsx
│ ├── node.ts
│ ├── prompt.ts
│ ├── base.test.tsx
│ └── core.ts
│ ├── package.json
│ └── tsconfig.json
├── pnpm-workspace.yaml
├── .gitignore
├── turbo.json
├── README.md
├── package.json
├── LICENSE
└── pnpm-lock.yaml
/examples/api/.env.example:
--------------------------------------------------------------------------------
1 | OPENAI_API_KEY="sk-abcd1234"
2 |
--------------------------------------------------------------------------------
/packages/tokenizer/rustfmt.toml:
--------------------------------------------------------------------------------
1 | tab_spaces = 2
2 | edition = "2021"
3 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - "apps/**"
3 | - "examples/**"
4 | - "packages/**"
5 |
--------------------------------------------------------------------------------
/packages/tokenizer/build.rs:
--------------------------------------------------------------------------------
1 | extern crate napi_build;
2 |
3 | fn main() {
4 | napi_build::setup();
5 | }
6 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-x64/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-darwin-x64`
2 |
3 | This is the **x86_64-apple-darwin** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/android-arm64/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-android-arm64`
2 |
3 | This is the **aarch64-linux-android** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-arm64/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-darwin-arm64`
2 |
3 | This is the **aarch64-apple-darwin** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/freebsd-x64/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-freebsd-x64`
2 |
3 | This is the **x86_64-unknown-freebsd** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-x64-gnu/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-x64-gnu`
2 |
3 | This is the **x86_64-unknown-linux-gnu** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-ia32-msvc/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-win32-ia32-msvc`
2 |
3 | This is the **i686-pc-windows-msvc** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-x64-msvc/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-win32-x64-msvc`
2 |
3 | This is the **x86_64-pc-windows-msvc** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/android-arm-eabi/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-android-arm-eabi`
2 |
3 | This is the **armv7-linux-androideabi** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-universal/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-darwin-universal`
2 |
3 | This is the **universal-apple-darwin** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm64-gnu/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-arm64-gnu`
2 |
3 | This is the **aarch64-unknown-linux-gnu** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-x64-musl/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-x64-musl`
2 |
3 | This is the **x86_64-unknown-linux-musl** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-arm64-msvc/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-win32-arm64-msvc`
2 |
3 | This is the **aarch64-pc-windows-msvc** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm64-musl/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-arm64-musl`
2 |
3 | This is the **aarch64-unknown-linux-musl** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-riscv64-gnu/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-riscv64-gnu`
2 |
3 | This is the **riscv64gc-unknown-linux-gnu** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm-gnueabihf/README.md:
--------------------------------------------------------------------------------
1 | # `tokenizer-linux-arm-gnueabihf`
2 |
3 | This is the **armv7-unknown-linux-gnueabihf** binary for `tokenizer`
4 |
--------------------------------------------------------------------------------
/examples/api/README.md:
--------------------------------------------------------------------------------
1 | # API
2 |
3 | An example using Fastify to serve Promptre prompts. This example implements file-based routing and passes query parameters as props to prompts.
4 |
--------------------------------------------------------------------------------
/packages/tokenizer/.npmignore:
--------------------------------------------------------------------------------
1 | target
2 | Cargo.lock
3 | .cargo
4 | .github
5 | npm
6 | .eslintrc
7 | .prettierignore
8 | rustfmt.toml
9 | yarn.lock
10 | *.node
11 | .yarn
12 | __test__
13 | renovate.json
14 |
--------------------------------------------------------------------------------
/packages/tokenizer/.cargo/config.toml:
--------------------------------------------------------------------------------
1 | [target.aarch64-unknown-linux-musl]
2 | linker = "aarch64-linux-musl-gcc"
3 | rustflags = ["-C", "target-feature=-crt-static"]
4 | [target.x86_64-pc-windows-msvc]
5 | rustflags = ["-C", "target-feature=+crt-static"]
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # TURBO
2 | .turbo
3 |
4 | # DEPENDENCIES
5 | node_modules/
6 | /.pnp
7 | .pnp.js
8 | yarn.lock
9 |
10 | # BUILD
11 | dist/
12 |
13 | # ENV FILES
14 | .env
15 |
16 | # TYPESCRIPT
17 | *.tsbuildinfo
18 |
19 | # MAC
20 | ._*
21 | .DS_Store
22 | Thumbs.db
23 |
--------------------------------------------------------------------------------
/packages/promptre/src/components/fragment.tsx:
--------------------------------------------------------------------------------
1 | import type { PromptNode } from "../node";
2 |
3 | export type FragmentProps = {
4 | children?: PromptNode;
5 | };
6 |
7 | export function Fragment({ children }: FragmentProps): PromptNode {
8 | return children;
9 | }
10 |
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "pipeline": {
4 | "build": {
5 | "dependsOn": ["^build"],
6 | "outputs": ["dist/**"]
7 | },
8 | "clean": {
9 | "cache": false
10 | },
11 | "test": {}
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/tokenizer/index.d.ts:
--------------------------------------------------------------------------------
1 | /* tslint:disable */
2 | /* eslint-disable */
3 |
4 | /* auto-generated by NAPI-RS */
5 |
6 | export class Tokenizer {
7 | model: string
8 | constructor(model: string)
9 | countTokens(text: string): number
10 | getContextSize(): number
11 | }
12 |
--------------------------------------------------------------------------------
/packages/promptre/src/components/user-message.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "../index";
2 | import type { PromptNode } from "../node";
3 |
4 | export type UserMessageProps = {
5 | children?: PromptNode;
6 | };
7 |
8 | export function UserMessage({ children }: UserMessageProps): PromptNode {
9 | return {children};
10 | }
11 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-universal/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-darwin-universal",
3 | "version": "0.0.0",
4 | "os": [
5 | "darwin"
6 | ],
7 | "main": "tokenizer.darwin-universal.node",
8 | "files": [
9 | "tokenizer.darwin-universal.node"
10 | ],
11 | "license": "MIT",
12 | "engines": {
13 | "node": ">= 10"
14 | }
15 | }
--------------------------------------------------------------------------------
/packages/promptre/src/components/system-message.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "../index";
2 | import type { PromptNode } from "../node";
3 |
4 | export type SystemMessageProps = {
5 | children?: PromptNode;
6 | };
7 |
8 | export function SystemMessage({ children }: SystemMessageProps): PromptNode {
9 | return {children};
10 | }
11 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-x64/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-darwin-x64",
3 | "version": "0.0.0",
4 | "os": [
5 | "darwin"
6 | ],
7 | "cpu": [
8 | "x64"
9 | ],
10 | "main": "tokenizer.darwin-x64.node",
11 | "files": [
12 | "tokenizer.darwin-x64.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Promptre
2 |
3 | **Promptre** is a JSX-based library used to make **prompt**s **re**active. This project is heavily inspired by [Priompt](https://github.com/anysphere/priompt). However, Promptre is a toy library with minimal features and slightly different syntax suited to my own needs.
4 |
5 | An example of using Promptre to serve API requests can be found in `/examples/api/`.
6 |
--------------------------------------------------------------------------------
/packages/tokenizer/__test__/index.spec.mjs:
--------------------------------------------------------------------------------
1 | import test from "ava";
2 |
3 | import { Tokenizer } from "../index.js";
4 |
5 | const tokenizer = new Tokenizer("gpt-4");
6 |
7 | test("tokens count is non-zero", (t) => {
8 | t.truthy(tokenizer.countTokens("test"));
9 | });
10 |
11 | test("gpt-4 context size is 8192", (t) => {
12 | t.is(tokenizer.getContextSize(), 8192);
13 | });
14 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/freebsd-x64/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-freebsd-x64",
3 | "version": "0.0.0",
4 | "os": [
5 | "freebsd"
6 | ],
7 | "cpu": [
8 | "x64"
9 | ],
10 | "main": "tokenizer.freebsd-x64.node",
11 | "files": [
12 | "tokenizer.freebsd-x64.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/darwin-arm64/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-darwin-arm64",
3 | "version": "0.0.0",
4 | "os": [
5 | "darwin"
6 | ],
7 | "cpu": [
8 | "arm64"
9 | ],
10 | "main": "tokenizer.darwin-arm64.node",
11 | "files": [
12 | "tokenizer.darwin-arm64.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/android-arm64/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-android-arm64",
3 | "version": "0.0.0",
4 | "os": [
5 | "android"
6 | ],
7 | "cpu": [
8 | "arm64"
9 | ],
10 | "main": "tokenizer.android-arm64.node",
11 | "files": [
12 | "tokenizer.android-arm64.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-x64-msvc/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-win32-x64-msvc",
3 | "version": "0.0.0",
4 | "os": [
5 | "win32"
6 | ],
7 | "cpu": [
8 | "x64"
9 | ],
10 | "main": "tokenizer.win32-x64-msvc.node",
11 | "files": [
12 | "tokenizer.win32-x64-msvc.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/promptre/src/components/assistant-message.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "../index";
2 | import type { PromptNode } from "../node";
3 |
4 | export type AssistantMessageProps = {
5 | children?: PromptNode;
6 | };
7 |
8 | export function AssistantMessage({
9 | children,
10 | }: AssistantMessageProps): PromptNode {
11 | return {children};
12 | }
13 |
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-ia32-msvc/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-win32-ia32-msvc",
3 | "version": "0.0.0",
4 | "os": [
5 | "win32"
6 | ],
7 | "cpu": [
8 | "ia32"
9 | ],
10 | "main": "tokenizer.win32-ia32-msvc.node",
11 | "files": [
12 | "tokenizer.win32-ia32-msvc.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/android-arm-eabi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-android-arm-eabi",
3 | "version": "0.0.0",
4 | "os": [
5 | "android"
6 | ],
7 | "cpu": [
8 | "arm"
9 | ],
10 | "main": "tokenizer.android-arm-eabi.node",
11 | "files": [
12 | "tokenizer.android-arm-eabi.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/win32-arm64-msvc/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-win32-arm64-msvc",
3 | "version": "0.0.0",
4 | "os": [
5 | "win32"
6 | ],
7 | "cpu": [
8 | "arm64"
9 | ],
10 | "main": "tokenizer.win32-arm64-msvc.node",
11 | "files": [
12 | "tokenizer.win32-arm64-msvc.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm-gnueabihf/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-arm-gnueabihf",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "arm"
9 | ],
10 | "main": "tokenizer.linux-arm-gnueabihf.node",
11 | "files": [
12 | "tokenizer.linux-arm-gnueabihf.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | }
18 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-x64-gnu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-x64-gnu",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "x64"
9 | ],
10 | "main": "tokenizer.linux-x64-gnu.node",
11 | "files": [
12 | "tokenizer.linux-x64-gnu.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | },
18 | "libc": [
19 | "glibc"
20 | ]
21 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-x64-musl/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-x64-musl",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "x64"
9 | ],
10 | "main": "tokenizer.linux-x64-musl.node",
11 | "files": [
12 | "tokenizer.linux-x64-musl.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | },
18 | "libc": [
19 | "musl"
20 | ]
21 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm64-gnu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-arm64-gnu",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "arm64"
9 | ],
10 | "main": "tokenizer.linux-arm64-gnu.node",
11 | "files": [
12 | "tokenizer.linux-arm64-gnu.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | },
18 | "libc": [
19 | "glibc"
20 | ]
21 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-arm64-musl/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-arm64-musl",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "arm64"
9 | ],
10 | "main": "tokenizer.linux-arm64-musl.node",
11 | "files": [
12 | "tokenizer.linux-arm64-musl.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | },
18 | "libc": [
19 | "musl"
20 | ]
21 | }
--------------------------------------------------------------------------------
/packages/tokenizer/npm/linux-riscv64-gnu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tokenizer-linux-riscv64-gnu",
3 | "version": "0.0.0",
4 | "os": [
5 | "linux"
6 | ],
7 | "cpu": [
8 | "riscv64"
9 | ],
10 | "main": "tokenizer.linux-riscv64-gnu.node",
11 | "files": [
12 | "tokenizer.linux-riscv64-gnu.node"
13 | ],
14 | "license": "MIT",
15 | "engines": {
16 | "node": ">= 10"
17 | },
18 | "libc": [
19 | "glibc"
20 | ]
21 | }
--------------------------------------------------------------------------------
/packages/tokenizer/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | edition = "2021"
3 | name = "tokenizer"
4 | version = "0.0.0"
5 |
6 | [lib]
7 | crate-type = ["cdylib"]
8 |
9 | [dependencies]
10 | # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
11 | napi = { version = "2.12.2", default-features = false, features = ["napi4"] }
12 | napi-derive = "2.12.2"
13 | tiktoken-rs = "0.5.8"
14 |
15 | [build-dependencies]
16 | napi-build = "2.0.1"
17 |
18 | [profile.release]
19 | lto = true
20 | strip = "symbols"
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "promptre-monorepo",
3 | "private": true,
4 | "scripts": {
5 | "preinstall": "npx only-allow pnpm",
6 | "clean": "turbo run clean && rm -rf node_modules",
7 | "build": "turbo run build",
8 | "dev": "turbo run dev --parallel",
9 | "start": "turbo run start",
10 | "test": "turbo run test"
11 | },
12 | "devDependencies": {
13 | "@ianvs/prettier-plugin-sort-imports": "^4.1.1",
14 | "prettier": "^3.2.4",
15 | "turbo": "^1.12.2",
16 | "typescript": "^5.3.3"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/promptre/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "promptre",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "dist/index.js",
6 | "types": "dist/index.d.ts",
7 | "scripts": {
8 | "clean": "rm -rf .turbo node_modules dist *.tsbuildinfo",
9 | "build": "tsc",
10 | "test": "vitest run",
11 | "bench": "vitest bench"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "dependencies": {
17 | "@promptre/tokenizer": "workspace:^"
18 | },
19 | "devDependencies": {
20 | "@types/node": "^20.11.14",
21 | "typescript": "^5.3.3",
22 | "vitest": "^1.2.2"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/promptre/src/index.ts:
--------------------------------------------------------------------------------
1 | import type {
2 | MessageProps,
3 | PromptElement,
4 | PromptNode,
5 | ScopeProps,
6 | } from "./node";
7 |
8 | export * from "./node";
9 | export * from "./core";
10 |
11 | export * from "./components/fragment";
12 | export * from "./components/assistant-message";
13 | export * from "./components/system-message";
14 | export * from "./components/user-message";
15 |
16 | export * from "@promptre/tokenizer";
17 |
18 | export namespace JSX {
19 | export interface IntrinsicElements {
20 | scope: ScopeProps;
21 | message: MessageProps;
22 | }
23 | export type Element = PromptElement;
24 | export type ElementType =
25 | | keyof IntrinsicElements
26 | | ((props: any) => PromptNode);
27 | }
28 |
--------------------------------------------------------------------------------
/examples/api/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "api",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "clean": "rm -rf .turbo node_modules dist",
8 | "dev": "pnpm with-env tsx watch --clear-screen=false src/index.ts --tsconfig=tsconfig.json",
9 | "build": "tsc",
10 | "start": "node dist/index.js",
11 | "with-env": "dotenv -e .env --"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "dependencies": {
17 | "@fastify/url-data": "^5.4.0",
18 | "fastify": "^4.26.0",
19 | "openai": "^4.26.0",
20 | "promptre": "workspace:^"
21 | },
22 | "devDependencies": {
23 | "dotenv-cli": "^7.3.0",
24 | "tsx": "^4.7.0",
25 | "typescript": "^5.3.3"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/examples/api/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Base Options: */
4 | "esModuleInterop": true,
5 | "skipLibCheck": true,
6 | "target": "es2022",
7 | "allowJs": true,
8 | "resolveJsonModule": true,
9 | "moduleDetection": "force",
10 | "isolatedModules": true,
11 |
12 | /* Strictness */
13 | "strict": true,
14 | "noUncheckedIndexedAccess": true,
15 |
16 | /* If transpiling with TypeScript: */
17 | "moduleResolution": "NodeNext",
18 | "module": "NodeNext",
19 | "outDir": "dist",
20 | "sourceMap": true,
21 |
22 | /* If your code doesn't run in the DOM: */
23 | "lib": ["es2022"],
24 |
25 | "jsx": "react",
26 | "jsxFactory": "Promptre.createElement",
27 | "jsxFragmentFactory": "Promptre.Fragment"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/examples/api/src/prompts/story.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "promptre";
2 |
3 | export type StoryProps = {
4 | protagonist: string;
5 | };
6 |
7 | export default function Story({ protagonist }: StoryProps) {
8 | return (
9 | <>
10 |
11 | You are a natural storyteller, known for your eloquent writing skills.
12 |
13 |
14 | Please write a story about the young explorer {protagonist}. Limit the
15 | length of your story to one paragraph.
16 |
17 | >
18 | );
19 | }
20 |
21 | export async function onStream(content: string) {
22 | return content.toLowerCase();
23 | }
24 |
25 | export async function onOutput(content: string) {
26 | return content.toUpperCase();
27 | }
28 |
--------------------------------------------------------------------------------
/packages/tokenizer/src/lib.rs:
--------------------------------------------------------------------------------
1 | #![deny(clippy::all)]
2 |
3 | #[macro_use]
4 | extern crate napi_derive;
5 |
6 | use tiktoken_rs::{get_bpe_from_tokenizer, model, tokenizer, CoreBPE};
7 |
8 | #[napi]
9 | pub struct Tokenizer {
10 | bpe: CoreBPE,
11 | pub model: String,
12 | }
13 |
14 | #[napi]
15 | impl Tokenizer {
16 | #[napi(constructor)]
17 | pub fn new(model: String) -> Self {
18 | let tokenizer = tokenizer::get_tokenizer(&model).unwrap();
19 | Self {
20 | model,
21 | bpe: get_bpe_from_tokenizer(tokenizer).unwrap(),
22 | }
23 | }
24 |
25 | #[napi]
26 | pub fn count_tokens(&self, text: String) -> i32 {
27 | let tokens = self.bpe.encode_with_special_tokens(&text);
28 | tokens.len() as i32
29 | }
30 |
31 | #[napi]
32 | pub fn get_context_size(&self) -> i32 {
33 | model::get_context_size(&self.model) as i32
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/packages/tokenizer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@promptre/tokenizer",
3 | "version": "0.0.0",
4 | "main": "index.js",
5 | "types": "index.d.ts",
6 | "napi": {
7 | "name": "tokenizer",
8 | "triples": {
9 | "additional": ["aarch64-apple-darwin", "universal-apple-darwin"]
10 | }
11 | },
12 | "license": "MIT",
13 | "devDependencies": {
14 | "@napi-rs/cli": "^2.18.0",
15 | "ava": "^6.0.1"
16 | },
17 | "ava": {
18 | "timeout": "3m"
19 | },
20 | "engines": {
21 | "node": ">= 10"
22 | },
23 | "scripts": {
24 | "clean": "rm -rf .turbo node_modules target",
25 | "artifacts": "napi artifacts",
26 | "build": "napi build --platform --release",
27 | "build:debug": "napi build --platform",
28 | "prepublishOnly": "napi prepublish -t npm",
29 | "test": "ava",
30 | "universal": "napi universal",
31 | "version": "napi version"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/packages/promptre/src/scopes.bench.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "./index";
2 | import { bench } from "vitest";
3 |
4 | const tokenizer = new Promptre.Tokenizer("gpt-4");
5 |
6 | const options = { time: 1000 };
7 |
8 | interface ScopeTestProps {
9 | count: number;
10 | }
11 |
12 | function ScopeTest({ count }: ScopeTestProps) {
13 | return (
14 | <>
15 | {Array.from(Array(count).keys()).map((i) => (
16 | Test {i}
17 | ))}
18 | >
19 | );
20 | }
21 |
22 | bench(
23 | "100 scopes",
24 | () => {
25 | Promptre.render(, { tokenizer });
26 | },
27 | options,
28 | );
29 |
30 | bench(
31 | "1000 scopes",
32 | () => {
33 | Promptre.render(, { tokenizer });
34 | },
35 | options,
36 | );
37 |
38 | bench(
39 | "10000 scopes",
40 | () => {
41 | Promptre.render(, { tokenizer });
42 | },
43 | options,
44 | );
45 |
--------------------------------------------------------------------------------
/packages/promptre/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Base Options: */
4 | "esModuleInterop": true,
5 | "skipLibCheck": true,
6 | "target": "es2022",
7 | "allowJs": true,
8 | "resolveJsonModule": true,
9 | "moduleDetection": "force",
10 |
11 | /* Strictness */
12 | "strict": true,
13 | "noUncheckedIndexedAccess": true,
14 |
15 | /* If transpiling with TypeScript: */
16 | "moduleResolution": "NodeNext",
17 | "module": "NodeNext",
18 | "outDir": "dist",
19 | "sourceMap": true,
20 |
21 | /* If your code doesn't run in the DOM: */
22 | "lib": ["es2022"],
23 |
24 | /* If you're building for a library: */
25 | "declaration": true,
26 |
27 | /* If you're building for a library in a monorepo: */
28 | "composite": true,
29 | "declarationMap": true,
30 |
31 | "jsx": "react",
32 | "jsxFactory": "Promptre.createElement",
33 | "jsxFragmentFactory": "Promptre.Fragment",
34 |
35 | "rootDir": "src"
36 | },
37 | "include": ["./src/**/*.ts", "./src/**/*.tsx"]
38 | }
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 David Mo
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/packages/promptre/src/node.ts:
--------------------------------------------------------------------------------
1 | // literal values that can be rendered
2 | export type Literal = string | number | boolean | undefined | null;
3 |
4 | export function isLiteral(node: PromptNode): node is Literal {
5 | return (
6 | typeof node === "string" ||
7 | typeof node === "number" ||
8 | typeof node === "boolean" ||
9 | node === undefined ||
10 | node === null
11 | );
12 | }
13 |
14 | export interface Element {
15 | type: S;
16 | props: P & InternalProps;
17 | }
18 |
19 | export type PropsWithPriority
= P & { p?: number; prel?: number };
20 | export type PropsWithChildren
= P & { children?: PromptNode | undefined };
21 |
22 | export type ScopeProps = PropsWithPriority>;
23 | export type ScopeElement = Element<
24 | "scope",
25 | ScopeProps,
26 | { children: PromptNode }
27 | >;
28 |
29 | export type MessageProps = PropsWithChildren<{
30 | role: "assistant" | "system" | "user";
31 | }>;
32 | export type MessageElement = Element<"message", MessageProps, {}>;
33 |
34 | export interface FunctionComponent {
35 | (props: P): PromptNode;
36 | }
37 | export type FunctionComponentElement = Element;
38 |
39 | // represents elements that can be created via `Promptre.createElement`
40 | export type PromptElement =
41 | | ScopeElement
42 | | MessageElement
43 | | FunctionComponentElement;
44 |
45 | // represents anything a Prompt can render
46 | export type PromptNode = PromptNode[] | PromptElement | Literal;
47 |
--------------------------------------------------------------------------------
/packages/promptre/src/prompt.ts:
--------------------------------------------------------------------------------
1 | import { Tokenizer } from "@promptre/tokenizer";
2 |
3 | export type StringPrompt = {
4 | type: "string";
5 | content: string;
6 | };
7 |
8 | export type AssistantMessage = {
9 | role: "assistant";
10 | content: string;
11 | };
12 |
13 | export type SystemMessage = {
14 | role: "system";
15 | content: string;
16 | };
17 |
18 | export type UserMessage = {
19 | role: "user";
20 | content: string;
21 | };
22 |
23 | export type Message = AssistantMessage | SystemMessage | UserMessage;
24 |
25 | export type MessagePrompt = {
26 | type: "message";
27 | messages: Message[];
28 | };
29 |
30 | export type RenderedPrompt = StringPrompt | MessagePrompt;
31 |
32 | export function joinPrompts(prompts: RenderedPrompt[]): RenderedPrompt {
33 | let result: RenderedPrompt | undefined = prompts[0];
34 |
35 | if (result === undefined) {
36 | throw new Error("Cannot join an empty list of prompts");
37 | }
38 |
39 | for (let i = 1; i < prompts.length; ++i) {
40 | const currPrompt = prompts[i]!;
41 |
42 | if (result.type === "string" && currPrompt.type === "string") {
43 | result.content += promptToString(currPrompt);
44 | } else if (result.type === "message" && currPrompt.type === "message") {
45 | for (const message of currPrompt.messages) {
46 | // join messages of the same role
47 | const lastMessage = result.messages.at(-1);
48 | if (lastMessage?.role === message.role) {
49 | lastMessage.content += message.content;
50 | } else {
51 | result.messages.push(message);
52 | }
53 | }
54 | } else {
55 | throw new Error(
56 | `Cannot join prompts of types: \"${result.type}\", \"${currPrompt.type}\"`,
57 | );
58 | }
59 | }
60 |
61 | return result;
62 | }
63 |
64 | export function promptToString(prompt: RenderedPrompt): string {
65 | switch (prompt.type) {
66 | case "string": {
67 | return prompt.content;
68 | }
69 | case "message": {
70 | return prompt.messages.map((message) => message.content).join("");
71 | }
72 | }
73 | }
74 |
75 | export function countPromptTokens(
76 | prompt: RenderedPrompt,
77 | tokenizer: Tokenizer,
78 | ): number {
79 | switch (prompt.type) {
80 | case "string": {
81 | return tokenizer.countTokens(prompt.content);
82 | }
83 | case "message": {
84 | let numTokens = 0;
85 |
86 | for (const message of prompt.messages) {
87 | numTokens += tokenizer.countTokens(message.content);
88 | numTokens += 4; // e.g.: <|im_start|>user<|im_sep|><|im_end|>
89 | }
90 |
91 | numTokens += 3; // e.g.: <|start|>assistant<|im_sep|>
92 |
93 | return numTokens;
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/examples/api/src/index.ts:
--------------------------------------------------------------------------------
1 | import * as Promptre from "promptre";
2 | import urlData from "@fastify/url-data";
3 | import Fastify from "fastify";
4 | import type { FastifyReply, FastifyRequest } from "fastify";
5 | import OpenAI from "openai";
6 |
7 | const openai = new OpenAI();
8 |
9 | const model = "gpt-3.5-turbo";
10 | const tokenizer = new Promptre.Tokenizer(model);
11 |
12 | const fastify = Fastify({ logger: true });
13 | fastify.register(urlData);
14 |
15 | fastify.get<{ Querystring: { stream?: boolean } }>(
16 | "/*",
17 | {
18 | schema: {
19 | querystring: {
20 | type: "object",
21 | properties: { stream: { type: "boolean" } },
22 | },
23 | },
24 | },
25 | async function handler(request, reply) {
26 | const path = request.urlData().path;
27 |
28 | if (!path) {
29 | reply.status(500).send("Failed to get prompt from query");
30 | return;
31 | }
32 |
33 | executeRoute(`./${path}`, request, reply);
34 |
35 | return reply;
36 | },
37 | );
38 |
39 | async function executeRoute(
40 | importURL: string,
41 | request: FastifyRequest<{ Querystring: { stream?: boolean } }>,
42 | reply: FastifyReply,
43 | ) {
44 | try {
45 | const module = await import(importURL);
46 | const { stream, ...props } = request.query;
47 | const prompt = Promptre.render(module.default(props), { tokenizer });
48 |
49 | const messages: OpenAI.Chat.Completions.ChatCompletionMessageParam[] =
50 | prompt.type === "string"
51 | ? [
52 | {
53 | role: "system",
54 | content: prompt.content,
55 | },
56 | ]
57 | : prompt.messages;
58 |
59 | if (stream) {
60 | const chatStream = await openai.chat.completions.create({
61 | model,
62 | messages,
63 | stream: true,
64 | });
65 |
66 | reply.hijack();
67 | reply.raw.writeHead(200, { "Content-Type": "text/event-stream" });
68 |
69 | for await (const chunk of chatStream) {
70 | const content = chunk.choices[0]?.delta?.content;
71 |
72 | if (content === undefined || content === null) {
73 | continue;
74 | }
75 |
76 | const transformed =
77 | "onStream" in module ? await module.onStream(content) : null;
78 |
79 | reply.raw.write(transformed ?? content);
80 | }
81 |
82 | reply.raw.end();
83 | } else {
84 | const chat = await openai.chat.completions.create({
85 | model,
86 | messages,
87 | stream: false,
88 | });
89 |
90 | const content = chat.choices[0]?.message?.content;
91 |
92 | if (content === undefined || content === null) {
93 | reply.status(500).send("Completion is invalid");
94 | return;
95 | }
96 |
97 | const transformed =
98 | "onOutput" in module ? await module.onOutput(content) : null;
99 |
100 | reply.send(transformed ?? content);
101 | }
102 | } catch (err) {
103 | console.error(err);
104 | reply.status(404).send("Prompt not found");
105 | }
106 | }
107 |
108 | async function main() {
109 | try {
110 | await fastify.listen({ port: 3000 });
111 | } catch (err) {
112 | fastify.log.error(err);
113 | process.exit(1);
114 | }
115 | }
116 |
117 | void main();
118 |
--------------------------------------------------------------------------------
/packages/tokenizer/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.toptal.com/developers/gitignore/api/node
2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node
3 |
4 | ### Node ###
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # TypeScript v1 declaration files
49 | typings/
50 |
51 | # TypeScript cache
52 | *.tsbuildinfo
53 |
54 | # Optional npm cache directory
55 | .npm
56 |
57 | # Optional eslint cache
58 | .eslintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variables file
76 | .env
77 | .env.test
78 |
79 | # parcel-bundler cache (https://parceljs.org/)
80 | .cache
81 |
82 | # Next.js build output
83 | .next
84 |
85 | # Nuxt.js build / generate output
86 | .nuxt
87 | dist
88 |
89 | # Gatsby files
90 | .cache/
91 | # Comment in the public line in if your project uses Gatsby and not Next.js
92 | # https://nextjs.org/blog/next-9-1#public-directory-support
93 | # public
94 |
95 | # vuepress build output
96 | .vuepress/dist
97 |
98 | # Serverless directories
99 | .serverless/
100 |
101 | # FuseBox cache
102 | .fusebox/
103 |
104 | # DynamoDB Local files
105 | .dynamodb/
106 |
107 | # TernJS port file
108 | .tern-port
109 |
110 | # Stores VSCode versions used for testing VSCode extensions
111 | .vscode-test
112 |
113 | # End of https://www.toptal.com/developers/gitignore/api/node
114 |
115 | # Created by https://www.toptal.com/developers/gitignore/api/macos
116 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos
117 |
118 | ### macOS ###
119 | # General
120 | .DS_Store
121 | .AppleDouble
122 | .LSOverride
123 |
124 | # Icon must end with two
125 | Icon
126 |
127 |
128 | # Thumbnails
129 | ._*
130 |
131 | # Files that might appear in the root of a volume
132 | .DocumentRevisions-V100
133 | .fseventsd
134 | .Spotlight-V100
135 | .TemporaryItems
136 | .Trashes
137 | .VolumeIcon.icns
138 | .com.apple.timemachine.donotpresent
139 |
140 | # Directories potentially created on remote AFP share
141 | .AppleDB
142 | .AppleDesktop
143 | Network Trash Folder
144 | Temporary Items
145 | .apdisk
146 |
147 | ### macOS Patch ###
148 | # iCloud generated files
149 | *.icloud
150 |
151 | # End of https://www.toptal.com/developers/gitignore/api/macos
152 |
153 | # Created by https://www.toptal.com/developers/gitignore/api/windows
154 | # Edit at https://www.toptal.com/developers/gitignore?templates=windows
155 |
156 | ### Windows ###
157 | # Windows thumbnail cache files
158 | Thumbs.db
159 | Thumbs.db:encryptable
160 | ehthumbs.db
161 | ehthumbs_vista.db
162 |
163 | # Dump file
164 | *.stackdump
165 |
166 | # Folder config file
167 | [Dd]esktop.ini
168 |
169 | # Recycle Bin used on file shares
170 | $RECYCLE.BIN/
171 |
172 | # Windows Installer files
173 | *.cab
174 | *.msi
175 | *.msix
176 | *.msm
177 | *.msp
178 |
179 | # Windows shortcuts
180 | *.lnk
181 |
182 | # End of https://www.toptal.com/developers/gitignore/api/windows
183 |
184 | #Added by cargo
185 |
186 | /target
187 | Cargo.lock
188 |
189 | .pnp.*
190 | .yarn/*
191 | !.yarn/patches
192 | !.yarn/plugins
193 | !.yarn/releases
194 | !.yarn/sdks
195 | !.yarn/versions
196 |
197 | *.node
198 |
--------------------------------------------------------------------------------
/packages/promptre/src/base.test.tsx:
--------------------------------------------------------------------------------
1 | import * as Promptre from "./index";
2 | import { Tokenizer } from "@promptre/tokenizer";
3 | import { expect, test } from "vitest";
4 | import { promptToString } from "./prompt";
5 |
6 | const tokenizer = new Tokenizer("gpt-4");
7 |
8 | function ScopeTest() {
9 | return (
10 |
11 | Scope 1
12 |
13 | Text Scope 2
14 | Scope 3
15 |
16 |
17 | );
18 | }
19 |
20 | test("scope renders all of its children", () => {
21 | expect(
22 | Promptre.render(, { tokenizer, tokenLimit: Infinity }),
23 | ).toMatchObject({
24 | type: "string",
25 | content: "Scope 1 Text Scope 2 Scope 3",
26 | });
27 | });
28 |
29 | test("fragment renders all of its children", () => {
30 | const FragmentTest = () => (
31 | <>
32 |
33 | >
34 | );
35 |
36 | expect(
37 | Promptre.render(, { tokenizer, tokenLimit: Infinity }),
38 | ).toMatchObject({
39 | type: "string",
40 | content: "Scope 1 Text Scope 2 Scope 3 Scope 1 Text Scope 2 Scope 3",
41 | });
42 | });
43 |
44 | test("rendering scopes respects token limit", () => {
45 | for (let tokenLimit = 0; tokenLimit <= 10; ++tokenLimit) {
46 | const prompt = Promptre.render(, { tokenizer, tokenLimit });
47 | const tokens = tokenizer.countTokens(promptToString(prompt));
48 | expect(tokens).lte(tokenLimit);
49 | }
50 | });
51 |
52 | test("throws on token limit smaller than prompt minimum size", () => {
53 | expect(() => {
54 | Promptre.render("test", { tokenizer, tokenLimit: 0 });
55 | }).toThrowError("token limit");
56 | });
57 |
58 | test("prompts with message tags render to message prompts", () => {
59 | const options = {
60 | tokenizer,
61 | tokenLimit: Infinity,
62 | };
63 |
64 | const assistantPrompt = Promptre.render(
65 |
66 |
67 | ,
68 | options,
69 | );
70 |
71 | expect(assistantPrompt).toMatchObject({
72 | type: "message",
73 | messages: [{ role: "assistant", content: "Scope 1 Text Scope 2 Scope 3" }],
74 | });
75 |
76 | const systemPrompt = Promptre.render(
77 |
78 |
79 | ,
80 | options,
81 | );
82 |
83 | expect(systemPrompt).toMatchObject({
84 | type: "message",
85 | messages: [{ role: "system", content: "Scope 1 Text Scope 2 Scope 3" }],
86 | });
87 |
88 | const userPrompt = Promptre.render(
89 |
90 |
91 | ,
92 | options,
93 | );
94 |
95 | expect(userPrompt).toMatchObject({
96 | type: "message",
97 | messages: [{ role: "user", content: "Scope 1 Text Scope 2 Scope 3" }],
98 | });
99 | });
100 |
101 | test("throw on rendering prompts with same nested messages", () => {
102 | expect(() => {
103 | Promptre.render(
104 |
105 |
106 |
107 |
108 | ,
109 | {
110 | tokenizer,
111 | tokenLimit: Infinity,
112 | },
113 | );
114 | }).toThrowError("message element as a child");
115 | });
116 |
117 | test("throw on rendering prompts with different nested messages", () => {
118 | expect(() => {
119 | Promptre.render(
120 |
121 |
122 |
123 |
124 | ,
125 | {
126 | tokenizer,
127 | tokenLimit: Infinity,
128 | },
129 | );
130 | }).toThrowError("message element as a child");
131 | });
132 |
133 | test("falsy values are rendered properly", () => {
134 | const options = {
135 | tokenizer,
136 | tokenLimit: Infinity,
137 | };
138 |
139 | expect(promptToString(Promptre.render(<>{null}>, options))).toBe("");
140 | expect(promptToString(Promptre.render(<>{undefined}>, options))).toBe("");
141 | expect(promptToString(Promptre.render(<>{false}>, options))).toBe("");
142 | expect(promptToString(Promptre.render(<>{NaN}>, options))).toBe("NaN");
143 | expect(promptToString(Promptre.render(<>{0}>, options))).toBe("0");
144 | expect(promptToString(Promptre.render(<>{-0}>, options))).toBe("0");
145 | expect(promptToString(Promptre.render(<>{""}>, options))).toBe("");
146 | });
147 |
--------------------------------------------------------------------------------
/packages/promptre/src/core.ts:
--------------------------------------------------------------------------------
1 | import { Tokenizer } from "@promptre/tokenizer";
2 |
3 | import { isLiteral } from "./node";
4 | import type { FunctionComponent, PromptElement, PromptNode } from "./node";
5 | import { countPromptTokens, joinPrompts, promptToString } from "./prompt";
6 | import type { RenderedPrompt } from "./prompt";
7 |
8 | type IntrinsicElement = keyof JSX.IntrinsicElements;
9 | type IntrinsicElementProps =
10 | JSX.IntrinsicElements[T];
11 |
12 | export function createElement(
13 | tag: T,
14 | props: IntrinsicElementProps,
15 | ...children: PromptNode[]
16 | ): PromptElement;
17 |
18 | export function createElement(
19 | tag: FunctionComponent
,
20 | props: P,
21 | ...children: PromptNode[]
22 | ): PromptElement;
23 |
24 | export function createElement(
25 | tag: T,
26 | props: any,
27 | ...children: PromptNode[]
28 | ): PromptElement {
29 | const propsToPass = {
30 | ...props,
31 | children,
32 | };
33 |
34 | if (typeof tag === "function") {
35 | return {
36 | type: tag,
37 | props: propsToPass,
38 | };
39 | }
40 |
41 | switch (tag) {
42 | case "scope": {
43 | return {
44 | type: "scope",
45 | props: propsToPass,
46 | };
47 | }
48 | case "message": {
49 | return {
50 | type: "message",
51 | props: propsToPass,
52 | };
53 | }
54 | default: {
55 | throw new Error(`Unknown prompt tag: ${tag}`);
56 | }
57 | }
58 | }
59 |
60 | function computePriorities(
61 | node: PromptNode,
62 | parentPriority: number,
63 | priorities: Set,
64 | ) {
65 | if (isLiteral(node)) {
66 | return;
67 | }
68 |
69 | if (Array.isArray(node)) {
70 | for (const child of node) {
71 | computePriorities(child, parentPriority, priorities);
72 | }
73 | return;
74 | }
75 |
76 | if (typeof node.type === "function") {
77 | throw new Error(
78 | "Error rendering: function components should have been pre-rendered",
79 | );
80 | }
81 |
82 | switch (node.type) {
83 | case "scope": {
84 | const priority = node.props.p ?? parentPriority + (node.props.prel ?? 0);
85 | // store priorities for re-use later (e.g. rendering)
86 | if (node.props.p === undefined) {
87 | node.props.p = priority;
88 | }
89 | priorities.add(priority);
90 | computePriorities(node.props.children, priority, priorities);
91 | break;
92 | }
93 | case "message": {
94 | computePriorities(node.props.children, parentPriority, priorities);
95 | break;
96 | }
97 | }
98 | }
99 |
100 | // TODO: what if a node has a higher priorty than its parent?
101 | function renderRecursive(
102 | node: PromptNode,
103 | priorityLimit: number | null,
104 | ): RenderedPrompt | null {
105 | if (isLiteral(node)) {
106 | if (node === false || node === undefined || node === null) {
107 | return null;
108 | }
109 | return { type: "string", content: node.toString() };
110 | }
111 |
112 | if (Array.isArray(node)) {
113 | const results: RenderedPrompt[] = [];
114 |
115 | for (const child of node) {
116 | const renderedChild = renderRecursive(child, priorityLimit);
117 | if (renderedChild !== null) {
118 | results.push(renderedChild);
119 | }
120 | }
121 |
122 | return results.length > 0 ? joinPrompts(results) : null;
123 | }
124 |
125 | if (typeof node.type === "function") {
126 | throw new Error(
127 | "Error rendering: function components should have been pre-rendered",
128 | );
129 | }
130 |
131 | switch (node.type) {
132 | case "scope": {
133 | const priority = node.props.p;
134 |
135 | if (priority === undefined) {
136 | throw new Error(
137 | "Error rendering: scope elements should have had their priorities pre-calculated",
138 | );
139 | }
140 |
141 | if (priorityLimit !== null && priority > priorityLimit) {
142 | return null;
143 | }
144 |
145 | return renderRecursive(node.props.children, priorityLimit);
146 | }
147 | case "message": {
148 | const childrenPrompt = renderRecursive(
149 | node.props.children,
150 | priorityLimit,
151 | );
152 |
153 | if (childrenPrompt === null) {
154 | throw new Error(
155 | "Error rendering: message elements must have some renderable child",
156 | );
157 | }
158 |
159 | switch (childrenPrompt.type) {
160 | case "string": {
161 | return {
162 | type: "message",
163 | messages: [
164 | {
165 | role: node.props.role,
166 | content: promptToString(childrenPrompt),
167 | },
168 | ],
169 | };
170 | }
171 | case "message": {
172 | throw new Error(
173 | "Error rendering: message elements cannot have a message element as a child",
174 | );
175 | }
176 | }
177 | }
178 | }
179 | }
180 |
181 | // Renders all function components to `PromptNode`s
182 | export function renderFunctionComponents(node: PromptNode): PromptNode {
183 | if (isLiteral(node)) {
184 | return node;
185 | }
186 |
187 | if (Array.isArray(node)) {
188 | return node.map((child) => renderFunctionComponents(child));
189 | }
190 |
191 | if (typeof node.type === "function") {
192 | const component = node.type(node.props);
193 | return renderFunctionComponents(component);
194 | }
195 |
196 | node.props.children = renderFunctionComponents(node.props.children);
197 | return node;
198 | }
199 |
200 | export interface RenderOptions {
201 | tokenizer: Tokenizer;
202 | tokenLimit?: number;
203 | }
204 |
205 | export function render(
206 | initialNode: PromptNode,
207 | options: RenderOptions,
208 | ): RenderedPrompt {
209 | const { tokenizer, tokenLimit = tokenizer.getContextSize() } = options;
210 |
211 | const node = renderFunctionComponents(initialNode);
212 |
213 | // compute priority levels to binary search on
214 | const priorities: Set = new Set();
215 | computePriorities(node, 0, priorities);
216 | const sortedPriorities = Array.from(priorities).sort((a, b) => a - b);
217 |
218 | type Result = {
219 | prompt: RenderedPrompt;
220 | numTokens: number;
221 | };
222 | let result: Result | null | undefined = undefined;
223 |
224 | if (sortedPriorities.length === 0) {
225 | // render without priorities
226 | const prompt = renderRecursive(node, null);
227 |
228 | if (prompt !== null) {
229 | const numTokens = countPromptTokens(prompt, tokenizer);
230 | result = { prompt, numTokens };
231 | } else {
232 | result = null;
233 | }
234 | } else {
235 | // binary search to find the best prompt
236 | let left = 0;
237 | let right = sortedPriorities.length - 1;
238 | while (left <= right) {
239 | const middle = left + Math.floor((right - left) / 2);
240 | const candidatePriority = sortedPriorities[middle]!;
241 |
242 | const prompt = renderRecursive(node, candidatePriority);
243 | const numTokens =
244 | prompt !== null ? countPromptTokens(prompt, tokenizer) : 0;
245 |
246 | if (numTokens <= tokenLimit) {
247 | left = middle + 1;
248 | result = prompt !== null ? { prompt, numTokens } : null;
249 | } else {
250 | right = middle - 1;
251 | }
252 | }
253 | }
254 |
255 | if (result === undefined || (result?.numTokens ?? 0) > tokenLimit) {
256 | throw new Error(
257 | `Could not render valid prompt with ${tokenLimit} token limit.`,
258 | );
259 | }
260 |
261 | return result?.prompt ?? { type: "string", content: "" };
262 | }
263 |
--------------------------------------------------------------------------------
/packages/tokenizer/index.js:
--------------------------------------------------------------------------------
1 | /* tslint:disable */
2 | /* eslint-disable */
3 | /* prettier-ignore */
4 |
5 | /* auto-generated by NAPI-RS */
6 |
7 | const { existsSync, readFileSync } = require('fs')
8 | const { join } = require('path')
9 |
10 | const { platform, arch } = process
11 |
12 | let nativeBinding = null
13 | let localFileExisted = false
14 | let loadError = null
15 |
16 | function isMusl() {
17 | // For Node 10
18 | if (!process.report || typeof process.report.getReport !== 'function') {
19 | try {
20 | const lddPath = require('child_process').execSync('which ldd').toString().trim()
21 | return readFileSync(lddPath, 'utf8').includes('musl')
22 | } catch (e) {
23 | return true
24 | }
25 | } else {
26 | const { glibcVersionRuntime } = process.report.getReport().header
27 | return !glibcVersionRuntime
28 | }
29 | }
30 |
31 | switch (platform) {
32 | case 'android':
33 | switch (arch) {
34 | case 'arm64':
35 | localFileExisted = existsSync(join(__dirname, 'tokenizer.android-arm64.node'))
36 | try {
37 | if (localFileExisted) {
38 | nativeBinding = require('./tokenizer.android-arm64.node')
39 | } else {
40 | nativeBinding = require('@promptre/tokenizer-android-arm64')
41 | }
42 | } catch (e) {
43 | loadError = e
44 | }
45 | break
46 | case 'arm':
47 | localFileExisted = existsSync(join(__dirname, 'tokenizer.android-arm-eabi.node'))
48 | try {
49 | if (localFileExisted) {
50 | nativeBinding = require('./tokenizer.android-arm-eabi.node')
51 | } else {
52 | nativeBinding = require('@promptre/tokenizer-android-arm-eabi')
53 | }
54 | } catch (e) {
55 | loadError = e
56 | }
57 | break
58 | default:
59 | throw new Error(`Unsupported architecture on Android ${arch}`)
60 | }
61 | break
62 | case 'win32':
63 | switch (arch) {
64 | case 'x64':
65 | localFileExisted = existsSync(
66 | join(__dirname, 'tokenizer.win32-x64-msvc.node')
67 | )
68 | try {
69 | if (localFileExisted) {
70 | nativeBinding = require('./tokenizer.win32-x64-msvc.node')
71 | } else {
72 | nativeBinding = require('@promptre/tokenizer-win32-x64-msvc')
73 | }
74 | } catch (e) {
75 | loadError = e
76 | }
77 | break
78 | case 'ia32':
79 | localFileExisted = existsSync(
80 | join(__dirname, 'tokenizer.win32-ia32-msvc.node')
81 | )
82 | try {
83 | if (localFileExisted) {
84 | nativeBinding = require('./tokenizer.win32-ia32-msvc.node')
85 | } else {
86 | nativeBinding = require('@promptre/tokenizer-win32-ia32-msvc')
87 | }
88 | } catch (e) {
89 | loadError = e
90 | }
91 | break
92 | case 'arm64':
93 | localFileExisted = existsSync(
94 | join(__dirname, 'tokenizer.win32-arm64-msvc.node')
95 | )
96 | try {
97 | if (localFileExisted) {
98 | nativeBinding = require('./tokenizer.win32-arm64-msvc.node')
99 | } else {
100 | nativeBinding = require('@promptre/tokenizer-win32-arm64-msvc')
101 | }
102 | } catch (e) {
103 | loadError = e
104 | }
105 | break
106 | default:
107 | throw new Error(`Unsupported architecture on Windows: ${arch}`)
108 | }
109 | break
110 | case 'darwin':
111 | localFileExisted = existsSync(join(__dirname, 'tokenizer.darwin-universal.node'))
112 | try {
113 | if (localFileExisted) {
114 | nativeBinding = require('./tokenizer.darwin-universal.node')
115 | } else {
116 | nativeBinding = require('@promptre/tokenizer-darwin-universal')
117 | }
118 | break
119 | } catch {}
120 | switch (arch) {
121 | case 'x64':
122 | localFileExisted = existsSync(join(__dirname, 'tokenizer.darwin-x64.node'))
123 | try {
124 | if (localFileExisted) {
125 | nativeBinding = require('./tokenizer.darwin-x64.node')
126 | } else {
127 | nativeBinding = require('@promptre/tokenizer-darwin-x64')
128 | }
129 | } catch (e) {
130 | loadError = e
131 | }
132 | break
133 | case 'arm64':
134 | localFileExisted = existsSync(
135 | join(__dirname, 'tokenizer.darwin-arm64.node')
136 | )
137 | try {
138 | if (localFileExisted) {
139 | nativeBinding = require('./tokenizer.darwin-arm64.node')
140 | } else {
141 | nativeBinding = require('@promptre/tokenizer-darwin-arm64')
142 | }
143 | } catch (e) {
144 | loadError = e
145 | }
146 | break
147 | default:
148 | throw new Error(`Unsupported architecture on macOS: ${arch}`)
149 | }
150 | break
151 | case 'freebsd':
152 | if (arch !== 'x64') {
153 | throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
154 | }
155 | localFileExisted = existsSync(join(__dirname, 'tokenizer.freebsd-x64.node'))
156 | try {
157 | if (localFileExisted) {
158 | nativeBinding = require('./tokenizer.freebsd-x64.node')
159 | } else {
160 | nativeBinding = require('@promptre/tokenizer-freebsd-x64')
161 | }
162 | } catch (e) {
163 | loadError = e
164 | }
165 | break
166 | case 'linux':
167 | switch (arch) {
168 | case 'x64':
169 | if (isMusl()) {
170 | localFileExisted = existsSync(
171 | join(__dirname, 'tokenizer.linux-x64-musl.node')
172 | )
173 | try {
174 | if (localFileExisted) {
175 | nativeBinding = require('./tokenizer.linux-x64-musl.node')
176 | } else {
177 | nativeBinding = require('@promptre/tokenizer-linux-x64-musl')
178 | }
179 | } catch (e) {
180 | loadError = e
181 | }
182 | } else {
183 | localFileExisted = existsSync(
184 | join(__dirname, 'tokenizer.linux-x64-gnu.node')
185 | )
186 | try {
187 | if (localFileExisted) {
188 | nativeBinding = require('./tokenizer.linux-x64-gnu.node')
189 | } else {
190 | nativeBinding = require('@promptre/tokenizer-linux-x64-gnu')
191 | }
192 | } catch (e) {
193 | loadError = e
194 | }
195 | }
196 | break
197 | case 'arm64':
198 | if (isMusl()) {
199 | localFileExisted = existsSync(
200 | join(__dirname, 'tokenizer.linux-arm64-musl.node')
201 | )
202 | try {
203 | if (localFileExisted) {
204 | nativeBinding = require('./tokenizer.linux-arm64-musl.node')
205 | } else {
206 | nativeBinding = require('@promptre/tokenizer-linux-arm64-musl')
207 | }
208 | } catch (e) {
209 | loadError = e
210 | }
211 | } else {
212 | localFileExisted = existsSync(
213 | join(__dirname, 'tokenizer.linux-arm64-gnu.node')
214 | )
215 | try {
216 | if (localFileExisted) {
217 | nativeBinding = require('./tokenizer.linux-arm64-gnu.node')
218 | } else {
219 | nativeBinding = require('@promptre/tokenizer-linux-arm64-gnu')
220 | }
221 | } catch (e) {
222 | loadError = e
223 | }
224 | }
225 | break
226 | case 'arm':
227 | localFileExisted = existsSync(
228 | join(__dirname, 'tokenizer.linux-arm-gnueabihf.node')
229 | )
230 | try {
231 | if (localFileExisted) {
232 | nativeBinding = require('./tokenizer.linux-arm-gnueabihf.node')
233 | } else {
234 | nativeBinding = require('@promptre/tokenizer-linux-arm-gnueabihf')
235 | }
236 | } catch (e) {
237 | loadError = e
238 | }
239 | break
240 | case 'riscv64':
241 | if (isMusl()) {
242 | localFileExisted = existsSync(
243 | join(__dirname, 'tokenizer.linux-riscv64-musl.node')
244 | )
245 | try {
246 | if (localFileExisted) {
247 | nativeBinding = require('./tokenizer.linux-riscv64-musl.node')
248 | } else {
249 | nativeBinding = require('@promptre/tokenizer-linux-riscv64-musl')
250 | }
251 | } catch (e) {
252 | loadError = e
253 | }
254 | } else {
255 | localFileExisted = existsSync(
256 | join(__dirname, 'tokenizer.linux-riscv64-gnu.node')
257 | )
258 | try {
259 | if (localFileExisted) {
260 | nativeBinding = require('./tokenizer.linux-riscv64-gnu.node')
261 | } else {
262 | nativeBinding = require('@promptre/tokenizer-linux-riscv64-gnu')
263 | }
264 | } catch (e) {
265 | loadError = e
266 | }
267 | }
268 | break
269 | case 's390x':
270 | localFileExisted = existsSync(
271 | join(__dirname, 'tokenizer.linux-s390x-gnu.node')
272 | )
273 | try {
274 | if (localFileExisted) {
275 | nativeBinding = require('./tokenizer.linux-s390x-gnu.node')
276 | } else {
277 | nativeBinding = require('@promptre/tokenizer-linux-s390x-gnu')
278 | }
279 | } catch (e) {
280 | loadError = e
281 | }
282 | break
283 | default:
284 | throw new Error(`Unsupported architecture on Linux: ${arch}`)
285 | }
286 | break
287 | default:
288 | throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
289 | }
290 |
291 | if (!nativeBinding) {
292 | if (loadError) {
293 | throw loadError
294 | }
295 | throw new Error(`Failed to load native binding`)
296 | }
297 |
298 | const { Tokenizer } = nativeBinding
299 |
300 | module.exports.Tokenizer = Tokenizer
301 |
--------------------------------------------------------------------------------
/packages/tokenizer/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | devDependencies:
8 | '@napi-rs/cli':
9 | specifier: ^2.18.0
10 | version: 2.18.0
11 | ava:
12 | specifier: ^6.0.1
13 | version: 6.1.1
14 |
15 | packages:
16 |
17 | /@mapbox/node-pre-gyp@1.0.11:
18 | resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
19 | hasBin: true
20 | dependencies:
21 | detect-libc: 2.0.2
22 | https-proxy-agent: 5.0.1
23 | make-dir: 3.1.0
24 | node-fetch: 2.7.0
25 | nopt: 5.0.0
26 | npmlog: 5.0.1
27 | rimraf: 3.0.2
28 | semver: 7.5.4
29 | tar: 6.2.0
30 | transitivePeerDependencies:
31 | - encoding
32 | - supports-color
33 | dev: true
34 |
35 | /@napi-rs/cli@2.18.0:
36 | resolution: {integrity: sha512-lfSRT7cs3iC4L+kv9suGYQEezn5Nii7Kpu+THsYVI0tA1Vh59LH45p4QADaD7hvIkmOz79eEGtoKQ9nAkAPkzA==}
37 | engines: {node: '>= 10'}
38 | hasBin: true
39 | dev: true
40 |
41 | /@nodelib/fs.scandir@2.1.5:
42 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
43 | engines: {node: '>= 8'}
44 | dependencies:
45 | '@nodelib/fs.stat': 2.0.5
46 | run-parallel: 1.2.0
47 | dev: true
48 |
49 | /@nodelib/fs.stat@2.0.5:
50 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
51 | engines: {node: '>= 8'}
52 | dev: true
53 |
54 | /@nodelib/fs.walk@1.2.8:
55 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
56 | engines: {node: '>= 8'}
57 | dependencies:
58 | '@nodelib/fs.scandir': 2.1.5
59 | fastq: 1.17.0
60 | dev: true
61 |
62 | /@rollup/pluginutils@4.2.1:
63 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
64 | engines: {node: '>= 8.0.0'}
65 | dependencies:
66 | estree-walker: 2.0.2
67 | picomatch: 2.3.1
68 | dev: true
69 |
70 | /@sindresorhus/merge-streams@1.0.0:
71 | resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==}
72 | engines: {node: '>=18'}
73 | dev: true
74 |
75 | /@vercel/nft@0.26.2:
76 | resolution: {integrity: sha512-bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==}
77 | engines: {node: '>=16'}
78 | hasBin: true
79 | dependencies:
80 | '@mapbox/node-pre-gyp': 1.0.11
81 | '@rollup/pluginutils': 4.2.1
82 | acorn: 8.11.3
83 | acorn-import-attributes: 1.9.2(acorn@8.11.3)
84 | async-sema: 3.1.1
85 | bindings: 1.5.0
86 | estree-walker: 2.0.2
87 | glob: 7.2.3
88 | graceful-fs: 4.2.11
89 | micromatch: 4.0.5
90 | node-gyp-build: 4.8.0
91 | resolve-from: 5.0.0
92 | transitivePeerDependencies:
93 | - encoding
94 | - supports-color
95 | dev: true
96 |
97 | /abbrev@1.1.1:
98 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
99 | dev: true
100 |
101 | /acorn-import-attributes@1.9.2(acorn@8.11.3):
102 | resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==}
103 | peerDependencies:
104 | acorn: ^8
105 | dependencies:
106 | acorn: 8.11.3
107 | dev: true
108 |
109 | /acorn-walk@8.3.2:
110 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
111 | engines: {node: '>=0.4.0'}
112 | dev: true
113 |
114 | /acorn@8.11.3:
115 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
116 | engines: {node: '>=0.4.0'}
117 | hasBin: true
118 | dev: true
119 |
120 | /agent-base@6.0.2:
121 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
122 | engines: {node: '>= 6.0.0'}
123 | dependencies:
124 | debug: 4.3.4
125 | transitivePeerDependencies:
126 | - supports-color
127 | dev: true
128 |
129 | /ansi-regex@5.0.1:
130 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
131 | engines: {node: '>=8'}
132 | dev: true
133 |
134 | /ansi-regex@6.0.1:
135 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
136 | engines: {node: '>=12'}
137 | dev: true
138 |
139 | /ansi-styles@4.3.0:
140 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
141 | engines: {node: '>=8'}
142 | dependencies:
143 | color-convert: 2.0.1
144 | dev: true
145 |
146 | /ansi-styles@6.2.1:
147 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
148 | engines: {node: '>=12'}
149 | dev: true
150 |
151 | /aproba@2.0.0:
152 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
153 | dev: true
154 |
155 | /are-we-there-yet@2.0.0:
156 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
157 | engines: {node: '>=10'}
158 | dependencies:
159 | delegates: 1.0.0
160 | readable-stream: 3.6.2
161 | dev: true
162 |
163 | /argparse@1.0.10:
164 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
165 | dependencies:
166 | sprintf-js: 1.0.3
167 | dev: true
168 |
169 | /array-find-index@1.0.2:
170 | resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==}
171 | engines: {node: '>=0.10.0'}
172 | dev: true
173 |
174 | /arrgv@1.0.2:
175 | resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==}
176 | engines: {node: '>=8.0.0'}
177 | dev: true
178 |
179 | /arrify@3.0.0:
180 | resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==}
181 | engines: {node: '>=12'}
182 | dev: true
183 |
184 | /async-sema@3.1.1:
185 | resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
186 | dev: true
187 |
188 | /ava@6.1.1:
189 | resolution: {integrity: sha512-A+DG0Ag0e5zvt262Ze0pG5QH7EBmhn+DB9uK7WkUtJVAtGjZFeKTpUOKx339DMGn53+FB24pCJC5klX2WU4VOw==}
190 | engines: {node: ^18.18 || ^20.8 || ^21}
191 | hasBin: true
192 | peerDependencies:
193 | '@ava/typescript': '*'
194 | peerDependenciesMeta:
195 | '@ava/typescript':
196 | optional: true
197 | dependencies:
198 | '@vercel/nft': 0.26.2
199 | acorn: 8.11.3
200 | acorn-walk: 8.3.2
201 | ansi-styles: 6.2.1
202 | arrgv: 1.0.2
203 | arrify: 3.0.0
204 | callsites: 4.1.0
205 | cbor: 9.0.1
206 | chalk: 5.3.0
207 | chunkd: 2.0.1
208 | ci-info: 4.0.0
209 | ci-parallel-vars: 1.0.1
210 | cli-truncate: 4.0.0
211 | code-excerpt: 4.0.0
212 | common-path-prefix: 3.0.0
213 | concordance: 5.0.4
214 | currently-unhandled: 0.4.1
215 | debug: 4.3.4
216 | emittery: 1.0.2
217 | figures: 6.0.1
218 | globby: 14.0.0
219 | ignore-by-default: 2.1.0
220 | indent-string: 5.0.0
221 | is-plain-object: 5.0.0
222 | is-promise: 4.0.0
223 | matcher: 5.0.0
224 | memoize: 10.0.0
225 | ms: 2.1.3
226 | p-map: 7.0.1
227 | package-config: 5.0.0
228 | picomatch: 3.0.1
229 | plur: 5.1.0
230 | pretty-ms: 9.0.0
231 | resolve-cwd: 3.0.0
232 | stack-utils: 2.0.6
233 | strip-ansi: 7.1.0
234 | supertap: 3.0.1
235 | temp-dir: 3.0.0
236 | write-file-atomic: 5.0.1
237 | yargs: 17.7.2
238 | transitivePeerDependencies:
239 | - encoding
240 | - supports-color
241 | dev: true
242 |
243 | /balanced-match@1.0.2:
244 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
245 | dev: true
246 |
247 | /bindings@1.5.0:
248 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
249 | dependencies:
250 | file-uri-to-path: 1.0.0
251 | dev: true
252 |
253 | /blueimp-md5@2.19.0:
254 | resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
255 | dev: true
256 |
257 | /brace-expansion@1.1.11:
258 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
259 | dependencies:
260 | balanced-match: 1.0.2
261 | concat-map: 0.0.1
262 | dev: true
263 |
264 | /braces@3.0.2:
265 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
266 | engines: {node: '>=8'}
267 | dependencies:
268 | fill-range: 7.0.1
269 | dev: true
270 |
271 | /callsites@4.1.0:
272 | resolution: {integrity: sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==}
273 | engines: {node: '>=12.20'}
274 | dev: true
275 |
276 | /cbor@9.0.1:
277 | resolution: {integrity: sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==}
278 | engines: {node: '>=16'}
279 | dependencies:
280 | nofilter: 3.1.0
281 | dev: true
282 |
283 | /chalk@5.3.0:
284 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
285 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
286 | dev: true
287 |
288 | /chownr@2.0.0:
289 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
290 | engines: {node: '>=10'}
291 | dev: true
292 |
293 | /chunkd@2.0.1:
294 | resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==}
295 | dev: true
296 |
297 | /ci-info@4.0.0:
298 | resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
299 | engines: {node: '>=8'}
300 | dev: true
301 |
302 | /ci-parallel-vars@1.0.1:
303 | resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==}
304 | dev: true
305 |
306 | /cli-truncate@4.0.0:
307 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
308 | engines: {node: '>=18'}
309 | dependencies:
310 | slice-ansi: 5.0.0
311 | string-width: 7.1.0
312 | dev: true
313 |
314 | /cliui@8.0.1:
315 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
316 | engines: {node: '>=12'}
317 | dependencies:
318 | string-width: 4.2.3
319 | strip-ansi: 6.0.1
320 | wrap-ansi: 7.0.0
321 | dev: true
322 |
323 | /code-excerpt@4.0.0:
324 | resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
325 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
326 | dependencies:
327 | convert-to-spaces: 2.0.1
328 | dev: true
329 |
330 | /color-convert@2.0.1:
331 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
332 | engines: {node: '>=7.0.0'}
333 | dependencies:
334 | color-name: 1.1.4
335 | dev: true
336 |
337 | /color-name@1.1.4:
338 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
339 | dev: true
340 |
341 | /color-support@1.1.3:
342 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
343 | hasBin: true
344 | dev: true
345 |
346 | /common-path-prefix@3.0.0:
347 | resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
348 | dev: true
349 |
350 | /concat-map@0.0.1:
351 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
352 | dev: true
353 |
354 | /concordance@5.0.4:
355 | resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==}
356 | engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'}
357 | dependencies:
358 | date-time: 3.1.0
359 | esutils: 2.0.3
360 | fast-diff: 1.3.0
361 | js-string-escape: 1.0.1
362 | lodash: 4.17.21
363 | md5-hex: 3.0.1
364 | semver: 7.5.4
365 | well-known-symbols: 2.0.0
366 | dev: true
367 |
368 | /console-control-strings@1.1.0:
369 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
370 | dev: true
371 |
372 | /convert-to-spaces@2.0.1:
373 | resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
374 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
375 | dev: true
376 |
377 | /currently-unhandled@0.4.1:
378 | resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==}
379 | engines: {node: '>=0.10.0'}
380 | dependencies:
381 | array-find-index: 1.0.2
382 | dev: true
383 |
384 | /date-time@3.1.0:
385 | resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==}
386 | engines: {node: '>=6'}
387 | dependencies:
388 | time-zone: 1.0.0
389 | dev: true
390 |
391 | /debug@4.3.4:
392 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
393 | engines: {node: '>=6.0'}
394 | peerDependencies:
395 | supports-color: '*'
396 | peerDependenciesMeta:
397 | supports-color:
398 | optional: true
399 | dependencies:
400 | ms: 2.1.2
401 | dev: true
402 |
403 | /delegates@1.0.0:
404 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
405 | dev: true
406 |
407 | /detect-libc@2.0.2:
408 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
409 | engines: {node: '>=8'}
410 | dev: true
411 |
412 | /emittery@1.0.2:
413 | resolution: {integrity: sha512-PqHdP6JJrxiSXQzCAzII77dVsfyGWu+7V0ghqkaCej2shF1cnIPeFE9kKZcVTqvBjrRMDVOdNXKEYcjxkznS1g==}
414 | engines: {node: '>=14.16'}
415 | dev: true
416 |
417 | /emoji-regex@10.3.0:
418 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
419 | dev: true
420 |
421 | /emoji-regex@8.0.0:
422 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
423 | dev: true
424 |
425 | /escalade@3.1.1:
426 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
427 | engines: {node: '>=6'}
428 | dev: true
429 |
430 | /escape-string-regexp@2.0.0:
431 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
432 | engines: {node: '>=8'}
433 | dev: true
434 |
435 | /escape-string-regexp@5.0.0:
436 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
437 | engines: {node: '>=12'}
438 | dev: true
439 |
440 | /esprima@4.0.1:
441 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
442 | engines: {node: '>=4'}
443 | hasBin: true
444 | dev: true
445 |
446 | /estree-walker@2.0.2:
447 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
448 | dev: true
449 |
450 | /esutils@2.0.3:
451 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
452 | engines: {node: '>=0.10.0'}
453 | dev: true
454 |
455 | /fast-diff@1.3.0:
456 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
457 | dev: true
458 |
459 | /fast-glob@3.3.2:
460 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
461 | engines: {node: '>=8.6.0'}
462 | dependencies:
463 | '@nodelib/fs.stat': 2.0.5
464 | '@nodelib/fs.walk': 1.2.8
465 | glob-parent: 5.1.2
466 | merge2: 1.4.1
467 | micromatch: 4.0.5
468 | dev: true
469 |
470 | /fastq@1.17.0:
471 | resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==}
472 | dependencies:
473 | reusify: 1.0.4
474 | dev: true
475 |
476 | /figures@6.0.1:
477 | resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==}
478 | engines: {node: '>=18'}
479 | dependencies:
480 | is-unicode-supported: 2.0.0
481 | dev: true
482 |
483 | /file-uri-to-path@1.0.0:
484 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
485 | dev: true
486 |
487 | /fill-range@7.0.1:
488 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
489 | engines: {node: '>=8'}
490 | dependencies:
491 | to-regex-range: 5.0.1
492 | dev: true
493 |
494 | /find-up-simple@1.0.0:
495 | resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==}
496 | engines: {node: '>=18'}
497 | dev: true
498 |
499 | /fs-minipass@2.1.0:
500 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
501 | engines: {node: '>= 8'}
502 | dependencies:
503 | minipass: 3.3.6
504 | dev: true
505 |
506 | /fs.realpath@1.0.0:
507 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
508 | dev: true
509 |
510 | /gauge@3.0.2:
511 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
512 | engines: {node: '>=10'}
513 | dependencies:
514 | aproba: 2.0.0
515 | color-support: 1.1.3
516 | console-control-strings: 1.1.0
517 | has-unicode: 2.0.1
518 | object-assign: 4.1.1
519 | signal-exit: 3.0.7
520 | string-width: 4.2.3
521 | strip-ansi: 6.0.1
522 | wide-align: 1.1.5
523 | dev: true
524 |
525 | /get-caller-file@2.0.5:
526 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
527 | engines: {node: 6.* || 8.* || >= 10.*}
528 | dev: true
529 |
530 | /get-east-asian-width@1.2.0:
531 | resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
532 | engines: {node: '>=18'}
533 | dev: true
534 |
535 | /glob-parent@5.1.2:
536 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
537 | engines: {node: '>= 6'}
538 | dependencies:
539 | is-glob: 4.0.3
540 | dev: true
541 |
542 | /glob@7.2.3:
543 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
544 | dependencies:
545 | fs.realpath: 1.0.0
546 | inflight: 1.0.6
547 | inherits: 2.0.4
548 | minimatch: 3.1.2
549 | once: 1.4.0
550 | path-is-absolute: 1.0.1
551 | dev: true
552 |
553 | /globby@14.0.0:
554 | resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==}
555 | engines: {node: '>=18'}
556 | dependencies:
557 | '@sindresorhus/merge-streams': 1.0.0
558 | fast-glob: 3.3.2
559 | ignore: 5.3.0
560 | path-type: 5.0.0
561 | slash: 5.1.0
562 | unicorn-magic: 0.1.0
563 | dev: true
564 |
565 | /graceful-fs@4.2.11:
566 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
567 | dev: true
568 |
569 | /has-unicode@2.0.1:
570 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
571 | dev: true
572 |
573 | /https-proxy-agent@5.0.1:
574 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
575 | engines: {node: '>= 6'}
576 | dependencies:
577 | agent-base: 6.0.2
578 | debug: 4.3.4
579 | transitivePeerDependencies:
580 | - supports-color
581 | dev: true
582 |
583 | /ignore-by-default@2.1.0:
584 | resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==}
585 | engines: {node: '>=10 <11 || >=12 <13 || >=14'}
586 | dev: true
587 |
588 | /ignore@5.3.0:
589 | resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
590 | engines: {node: '>= 4'}
591 | dev: true
592 |
593 | /imurmurhash@0.1.4:
594 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
595 | engines: {node: '>=0.8.19'}
596 | dev: true
597 |
598 | /indent-string@5.0.0:
599 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
600 | engines: {node: '>=12'}
601 | dev: true
602 |
603 | /inflight@1.0.6:
604 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
605 | dependencies:
606 | once: 1.4.0
607 | wrappy: 1.0.2
608 | dev: true
609 |
610 | /inherits@2.0.4:
611 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
612 | dev: true
613 |
614 | /irregular-plurals@3.5.0:
615 | resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==}
616 | engines: {node: '>=8'}
617 | dev: true
618 |
619 | /is-extglob@2.1.1:
620 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
621 | engines: {node: '>=0.10.0'}
622 | dev: true
623 |
624 | /is-fullwidth-code-point@3.0.0:
625 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
626 | engines: {node: '>=8'}
627 | dev: true
628 |
629 | /is-fullwidth-code-point@4.0.0:
630 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
631 | engines: {node: '>=12'}
632 | dev: true
633 |
634 | /is-glob@4.0.3:
635 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
636 | engines: {node: '>=0.10.0'}
637 | dependencies:
638 | is-extglob: 2.1.1
639 | dev: true
640 |
641 | /is-number@7.0.0:
642 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
643 | engines: {node: '>=0.12.0'}
644 | dev: true
645 |
646 | /is-plain-object@5.0.0:
647 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
648 | engines: {node: '>=0.10.0'}
649 | dev: true
650 |
651 | /is-promise@4.0.0:
652 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
653 | dev: true
654 |
655 | /is-unicode-supported@2.0.0:
656 | resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
657 | engines: {node: '>=18'}
658 | dev: true
659 |
660 | /js-string-escape@1.0.1:
661 | resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
662 | engines: {node: '>= 0.8'}
663 | dev: true
664 |
665 | /js-yaml@3.14.1:
666 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
667 | hasBin: true
668 | dependencies:
669 | argparse: 1.0.10
670 | esprima: 4.0.1
671 | dev: true
672 |
673 | /load-json-file@7.0.1:
674 | resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
675 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
676 | dev: true
677 |
678 | /lodash@4.17.21:
679 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
680 | dev: true
681 |
682 | /lru-cache@6.0.0:
683 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
684 | engines: {node: '>=10'}
685 | dependencies:
686 | yallist: 4.0.0
687 | dev: true
688 |
689 | /make-dir@3.1.0:
690 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
691 | engines: {node: '>=8'}
692 | dependencies:
693 | semver: 6.3.1
694 | dev: true
695 |
696 | /matcher@5.0.0:
697 | resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==}
698 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
699 | dependencies:
700 | escape-string-regexp: 5.0.0
701 | dev: true
702 |
703 | /md5-hex@3.0.1:
704 | resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==}
705 | engines: {node: '>=8'}
706 | dependencies:
707 | blueimp-md5: 2.19.0
708 | dev: true
709 |
710 | /memoize@10.0.0:
711 | resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==}
712 | engines: {node: '>=18'}
713 | dependencies:
714 | mimic-function: 5.0.0
715 | dev: true
716 |
717 | /merge2@1.4.1:
718 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
719 | engines: {node: '>= 8'}
720 | dev: true
721 |
722 | /micromatch@4.0.5:
723 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
724 | engines: {node: '>=8.6'}
725 | dependencies:
726 | braces: 3.0.2
727 | picomatch: 2.3.1
728 | dev: true
729 |
730 | /mimic-function@5.0.0:
731 | resolution: {integrity: sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==}
732 | engines: {node: '>=18'}
733 | dev: true
734 |
735 | /minimatch@3.1.2:
736 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
737 | dependencies:
738 | brace-expansion: 1.1.11
739 | dev: true
740 |
741 | /minipass@3.3.6:
742 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
743 | engines: {node: '>=8'}
744 | dependencies:
745 | yallist: 4.0.0
746 | dev: true
747 |
748 | /minipass@5.0.0:
749 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
750 | engines: {node: '>=8'}
751 | dev: true
752 |
753 | /minizlib@2.1.2:
754 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
755 | engines: {node: '>= 8'}
756 | dependencies:
757 | minipass: 3.3.6
758 | yallist: 4.0.0
759 | dev: true
760 |
761 | /mkdirp@1.0.4:
762 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
763 | engines: {node: '>=10'}
764 | hasBin: true
765 | dev: true
766 |
767 | /ms@2.1.2:
768 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
769 | dev: true
770 |
771 | /ms@2.1.3:
772 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
773 | dev: true
774 |
775 | /node-fetch@2.7.0:
776 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
777 | engines: {node: 4.x || >=6.0.0}
778 | peerDependencies:
779 | encoding: ^0.1.0
780 | peerDependenciesMeta:
781 | encoding:
782 | optional: true
783 | dependencies:
784 | whatwg-url: 5.0.0
785 | dev: true
786 |
787 | /node-gyp-build@4.8.0:
788 | resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==}
789 | hasBin: true
790 | dev: true
791 |
792 | /nofilter@3.1.0:
793 | resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==}
794 | engines: {node: '>=12.19'}
795 | dev: true
796 |
797 | /nopt@5.0.0:
798 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
799 | engines: {node: '>=6'}
800 | hasBin: true
801 | dependencies:
802 | abbrev: 1.1.1
803 | dev: true
804 |
805 | /npmlog@5.0.1:
806 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
807 | dependencies:
808 | are-we-there-yet: 2.0.0
809 | console-control-strings: 1.1.0
810 | gauge: 3.0.2
811 | set-blocking: 2.0.0
812 | dev: true
813 |
814 | /object-assign@4.1.1:
815 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
816 | engines: {node: '>=0.10.0'}
817 | dev: true
818 |
819 | /once@1.4.0:
820 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
821 | dependencies:
822 | wrappy: 1.0.2
823 | dev: true
824 |
825 | /p-map@7.0.1:
826 | resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==}
827 | engines: {node: '>=18'}
828 | dev: true
829 |
830 | /package-config@5.0.0:
831 | resolution: {integrity: sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==}
832 | engines: {node: '>=18'}
833 | dependencies:
834 | find-up-simple: 1.0.0
835 | load-json-file: 7.0.1
836 | dev: true
837 |
838 | /parse-ms@4.0.0:
839 | resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
840 | engines: {node: '>=18'}
841 | dev: true
842 |
843 | /path-is-absolute@1.0.1:
844 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
845 | engines: {node: '>=0.10.0'}
846 | dev: true
847 |
848 | /path-type@5.0.0:
849 | resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
850 | engines: {node: '>=12'}
851 | dev: true
852 |
853 | /picomatch@2.3.1:
854 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
855 | engines: {node: '>=8.6'}
856 | dev: true
857 |
858 | /picomatch@3.0.1:
859 | resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==}
860 | engines: {node: '>=10'}
861 | dev: true
862 |
863 | /plur@5.1.0:
864 | resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==}
865 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
866 | dependencies:
867 | irregular-plurals: 3.5.0
868 | dev: true
869 |
870 | /pretty-ms@9.0.0:
871 | resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==}
872 | engines: {node: '>=18'}
873 | dependencies:
874 | parse-ms: 4.0.0
875 | dev: true
876 |
877 | /queue-microtask@1.2.3:
878 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
879 | dev: true
880 |
881 | /readable-stream@3.6.2:
882 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
883 | engines: {node: '>= 6'}
884 | dependencies:
885 | inherits: 2.0.4
886 | string_decoder: 1.3.0
887 | util-deprecate: 1.0.2
888 | dev: true
889 |
890 | /require-directory@2.1.1:
891 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
892 | engines: {node: '>=0.10.0'}
893 | dev: true
894 |
895 | /resolve-cwd@3.0.0:
896 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
897 | engines: {node: '>=8'}
898 | dependencies:
899 | resolve-from: 5.0.0
900 | dev: true
901 |
902 | /resolve-from@5.0.0:
903 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
904 | engines: {node: '>=8'}
905 | dev: true
906 |
907 | /reusify@1.0.4:
908 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
909 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
910 | dev: true
911 |
912 | /rimraf@3.0.2:
913 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
914 | hasBin: true
915 | dependencies:
916 | glob: 7.2.3
917 | dev: true
918 |
919 | /run-parallel@1.2.0:
920 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
921 | dependencies:
922 | queue-microtask: 1.2.3
923 | dev: true
924 |
925 | /safe-buffer@5.2.1:
926 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
927 | dev: true
928 |
929 | /semver@6.3.1:
930 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
931 | hasBin: true
932 | dev: true
933 |
934 | /semver@7.5.4:
935 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
936 | engines: {node: '>=10'}
937 | hasBin: true
938 | dependencies:
939 | lru-cache: 6.0.0
940 | dev: true
941 |
942 | /serialize-error@7.0.1:
943 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
944 | engines: {node: '>=10'}
945 | dependencies:
946 | type-fest: 0.13.1
947 | dev: true
948 |
949 | /set-blocking@2.0.0:
950 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
951 | dev: true
952 |
953 | /signal-exit@3.0.7:
954 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
955 | dev: true
956 |
957 | /signal-exit@4.1.0:
958 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
959 | engines: {node: '>=14'}
960 | dev: true
961 |
962 | /slash@5.1.0:
963 | resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
964 | engines: {node: '>=14.16'}
965 | dev: true
966 |
967 | /slice-ansi@5.0.0:
968 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
969 | engines: {node: '>=12'}
970 | dependencies:
971 | ansi-styles: 6.2.1
972 | is-fullwidth-code-point: 4.0.0
973 | dev: true
974 |
975 | /sprintf-js@1.0.3:
976 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
977 | dev: true
978 |
979 | /stack-utils@2.0.6:
980 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
981 | engines: {node: '>=10'}
982 | dependencies:
983 | escape-string-regexp: 2.0.0
984 | dev: true
985 |
986 | /string-width@4.2.3:
987 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
988 | engines: {node: '>=8'}
989 | dependencies:
990 | emoji-regex: 8.0.0
991 | is-fullwidth-code-point: 3.0.0
992 | strip-ansi: 6.0.1
993 | dev: true
994 |
995 | /string-width@7.1.0:
996 | resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==}
997 | engines: {node: '>=18'}
998 | dependencies:
999 | emoji-regex: 10.3.0
1000 | get-east-asian-width: 1.2.0
1001 | strip-ansi: 7.1.0
1002 | dev: true
1003 |
1004 | /string_decoder@1.3.0:
1005 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
1006 | dependencies:
1007 | safe-buffer: 5.2.1
1008 | dev: true
1009 |
1010 | /strip-ansi@6.0.1:
1011 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1012 | engines: {node: '>=8'}
1013 | dependencies:
1014 | ansi-regex: 5.0.1
1015 | dev: true
1016 |
1017 | /strip-ansi@7.1.0:
1018 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1019 | engines: {node: '>=12'}
1020 | dependencies:
1021 | ansi-regex: 6.0.1
1022 | dev: true
1023 |
1024 | /supertap@3.0.1:
1025 | resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==}
1026 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1027 | dependencies:
1028 | indent-string: 5.0.0
1029 | js-yaml: 3.14.1
1030 | serialize-error: 7.0.1
1031 | strip-ansi: 7.1.0
1032 | dev: true
1033 |
1034 | /tar@6.2.0:
1035 | resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
1036 | engines: {node: '>=10'}
1037 | dependencies:
1038 | chownr: 2.0.0
1039 | fs-minipass: 2.1.0
1040 | minipass: 5.0.0
1041 | minizlib: 2.1.2
1042 | mkdirp: 1.0.4
1043 | yallist: 4.0.0
1044 | dev: true
1045 |
1046 | /temp-dir@3.0.0:
1047 | resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
1048 | engines: {node: '>=14.16'}
1049 | dev: true
1050 |
1051 | /time-zone@1.0.0:
1052 | resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
1053 | engines: {node: '>=4'}
1054 | dev: true
1055 |
1056 | /to-regex-range@5.0.1:
1057 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1058 | engines: {node: '>=8.0'}
1059 | dependencies:
1060 | is-number: 7.0.0
1061 | dev: true
1062 |
1063 | /tr46@0.0.3:
1064 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1065 | dev: true
1066 |
1067 | /type-fest@0.13.1:
1068 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
1069 | engines: {node: '>=10'}
1070 | dev: true
1071 |
1072 | /unicorn-magic@0.1.0:
1073 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
1074 | engines: {node: '>=18'}
1075 | dev: true
1076 |
1077 | /util-deprecate@1.0.2:
1078 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1079 | dev: true
1080 |
1081 | /webidl-conversions@3.0.1:
1082 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1083 | dev: true
1084 |
1085 | /well-known-symbols@2.0.0:
1086 | resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}
1087 | engines: {node: '>=6'}
1088 | dev: true
1089 |
1090 | /whatwg-url@5.0.0:
1091 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1092 | dependencies:
1093 | tr46: 0.0.3
1094 | webidl-conversions: 3.0.1
1095 | dev: true
1096 |
1097 | /wide-align@1.1.5:
1098 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
1099 | dependencies:
1100 | string-width: 4.2.3
1101 | dev: true
1102 |
1103 | /wrap-ansi@7.0.0:
1104 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1105 | engines: {node: '>=10'}
1106 | dependencies:
1107 | ansi-styles: 4.3.0
1108 | string-width: 4.2.3
1109 | strip-ansi: 6.0.1
1110 | dev: true
1111 |
1112 | /wrappy@1.0.2:
1113 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1114 | dev: true
1115 |
1116 | /write-file-atomic@5.0.1:
1117 | resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
1118 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
1119 | dependencies:
1120 | imurmurhash: 0.1.4
1121 | signal-exit: 4.1.0
1122 | dev: true
1123 |
1124 | /y18n@5.0.8:
1125 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
1126 | engines: {node: '>=10'}
1127 | dev: true
1128 |
1129 | /yallist@4.0.0:
1130 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
1131 | dev: true
1132 |
1133 | /yargs-parser@21.1.1:
1134 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
1135 | engines: {node: '>=12'}
1136 | dev: true
1137 |
1138 | /yargs@17.7.2:
1139 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
1140 | engines: {node: '>=12'}
1141 | dependencies:
1142 | cliui: 8.0.1
1143 | escalade: 3.1.1
1144 | get-caller-file: 2.0.5
1145 | require-directory: 2.1.1
1146 | string-width: 4.2.3
1147 | y18n: 5.0.8
1148 | yargs-parser: 21.1.1
1149 | dev: true
1150 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | devDependencies:
11 | '@ianvs/prettier-plugin-sort-imports':
12 | specifier: ^4.1.1
13 | version: 4.1.1(prettier@3.2.4)
14 | prettier:
15 | specifier: ^3.2.4
16 | version: 3.2.4
17 | turbo:
18 | specifier: ^1.12.2
19 | version: 1.12.2
20 | typescript:
21 | specifier: ^5.3.3
22 | version: 5.3.3
23 |
24 | examples/api:
25 | dependencies:
26 | '@fastify/url-data':
27 | specifier: ^5.4.0
28 | version: 5.4.0
29 | fastify:
30 | specifier: ^4.26.0
31 | version: 4.26.0
32 | openai:
33 | specifier: ^4.26.0
34 | version: 4.26.0
35 | promptre:
36 | specifier: workspace:^
37 | version: link:../../packages/promptre
38 | devDependencies:
39 | dotenv-cli:
40 | specifier: ^7.3.0
41 | version: 7.3.0
42 | tsx:
43 | specifier: ^4.7.0
44 | version: 4.7.0
45 | typescript:
46 | specifier: ^5.3.3
47 | version: 5.3.3
48 |
49 | packages/promptre:
50 | dependencies:
51 | '@promptre/tokenizer':
52 | specifier: workspace:^
53 | version: link:../tokenizer
54 | devDependencies:
55 | '@types/node':
56 | specifier: ^20.11.14
57 | version: 20.11.14
58 | typescript:
59 | specifier: ^5.3.3
60 | version: 5.3.3
61 | vitest:
62 | specifier: ^1.2.2
63 | version: 1.2.2(@types/node@20.11.14)
64 |
65 | packages/tokenizer:
66 | devDependencies:
67 | '@napi-rs/cli':
68 | specifier: ^2.18.0
69 | version: 2.18.0
70 | ava:
71 | specifier: ^6.0.1
72 | version: 6.1.1
73 |
74 | packages/tokenizer/npm/android-arm-eabi: {}
75 |
76 | packages/tokenizer/npm/android-arm64: {}
77 |
78 | packages/tokenizer/npm/darwin-arm64: {}
79 |
80 | packages/tokenizer/npm/darwin-universal: {}
81 |
82 | packages/tokenizer/npm/darwin-x64: {}
83 |
84 | packages/tokenizer/npm/freebsd-x64: {}
85 |
86 | packages/tokenizer/npm/linux-arm-gnueabihf: {}
87 |
88 | packages/tokenizer/npm/linux-arm64-gnu: {}
89 |
90 | packages/tokenizer/npm/linux-arm64-musl: {}
91 |
92 | packages/tokenizer/npm/linux-riscv64-gnu: {}
93 |
94 | packages/tokenizer/npm/linux-x64-gnu: {}
95 |
96 | packages/tokenizer/npm/linux-x64-musl: {}
97 |
98 | packages/tokenizer/npm/win32-arm64-msvc: {}
99 |
100 | packages/tokenizer/npm/win32-ia32-msvc: {}
101 |
102 | packages/tokenizer/npm/win32-x64-msvc: {}
103 |
104 | packages:
105 |
106 | /@ampproject/remapping@2.2.1:
107 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
108 | engines: {node: '>=6.0.0'}
109 | dependencies:
110 | '@jridgewell/gen-mapping': 0.3.3
111 | '@jridgewell/trace-mapping': 0.3.22
112 | dev: true
113 |
114 | /@babel/code-frame@7.23.5:
115 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
116 | engines: {node: '>=6.9.0'}
117 | dependencies:
118 | '@babel/highlight': 7.23.4
119 | chalk: 2.4.2
120 | dev: true
121 |
122 | /@babel/compat-data@7.23.5:
123 | resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
124 | engines: {node: '>=6.9.0'}
125 | dev: true
126 |
127 | /@babel/core@7.23.9:
128 | resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
129 | engines: {node: '>=6.9.0'}
130 | dependencies:
131 | '@ampproject/remapping': 2.2.1
132 | '@babel/code-frame': 7.23.5
133 | '@babel/generator': 7.23.6
134 | '@babel/helper-compilation-targets': 7.23.6
135 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
136 | '@babel/helpers': 7.23.9
137 | '@babel/parser': 7.23.9
138 | '@babel/template': 7.23.9
139 | '@babel/traverse': 7.23.9
140 | '@babel/types': 7.23.9
141 | convert-source-map: 2.0.0
142 | debug: 4.3.4
143 | gensync: 1.0.0-beta.2
144 | json5: 2.2.3
145 | semver: 6.3.1
146 | transitivePeerDependencies:
147 | - supports-color
148 | dev: true
149 |
150 | /@babel/generator@7.23.6:
151 | resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
152 | engines: {node: '>=6.9.0'}
153 | dependencies:
154 | '@babel/types': 7.23.9
155 | '@jridgewell/gen-mapping': 0.3.3
156 | '@jridgewell/trace-mapping': 0.3.22
157 | jsesc: 2.5.2
158 | dev: true
159 |
160 | /@babel/helper-compilation-targets@7.23.6:
161 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
162 | engines: {node: '>=6.9.0'}
163 | dependencies:
164 | '@babel/compat-data': 7.23.5
165 | '@babel/helper-validator-option': 7.23.5
166 | browserslist: 4.22.3
167 | lru-cache: 5.1.1
168 | semver: 6.3.1
169 | dev: true
170 |
171 | /@babel/helper-environment-visitor@7.22.20:
172 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
173 | engines: {node: '>=6.9.0'}
174 | dev: true
175 |
176 | /@babel/helper-function-name@7.23.0:
177 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
178 | engines: {node: '>=6.9.0'}
179 | dependencies:
180 | '@babel/template': 7.23.9
181 | '@babel/types': 7.23.9
182 | dev: true
183 |
184 | /@babel/helper-hoist-variables@7.22.5:
185 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
186 | engines: {node: '>=6.9.0'}
187 | dependencies:
188 | '@babel/types': 7.23.9
189 | dev: true
190 |
191 | /@babel/helper-module-imports@7.22.15:
192 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
193 | engines: {node: '>=6.9.0'}
194 | dependencies:
195 | '@babel/types': 7.23.9
196 | dev: true
197 |
198 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
199 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
200 | engines: {node: '>=6.9.0'}
201 | peerDependencies:
202 | '@babel/core': ^7.0.0
203 | dependencies:
204 | '@babel/core': 7.23.9
205 | '@babel/helper-environment-visitor': 7.22.20
206 | '@babel/helper-module-imports': 7.22.15
207 | '@babel/helper-simple-access': 7.22.5
208 | '@babel/helper-split-export-declaration': 7.22.6
209 | '@babel/helper-validator-identifier': 7.22.20
210 | dev: true
211 |
212 | /@babel/helper-simple-access@7.22.5:
213 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
214 | engines: {node: '>=6.9.0'}
215 | dependencies:
216 | '@babel/types': 7.23.9
217 | dev: true
218 |
219 | /@babel/helper-split-export-declaration@7.22.6:
220 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
221 | engines: {node: '>=6.9.0'}
222 | dependencies:
223 | '@babel/types': 7.23.9
224 | dev: true
225 |
226 | /@babel/helper-string-parser@7.23.4:
227 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
228 | engines: {node: '>=6.9.0'}
229 | dev: true
230 |
231 | /@babel/helper-validator-identifier@7.22.20:
232 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
233 | engines: {node: '>=6.9.0'}
234 | dev: true
235 |
236 | /@babel/helper-validator-option@7.23.5:
237 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
238 | engines: {node: '>=6.9.0'}
239 | dev: true
240 |
241 | /@babel/helpers@7.23.9:
242 | resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
243 | engines: {node: '>=6.9.0'}
244 | dependencies:
245 | '@babel/template': 7.23.9
246 | '@babel/traverse': 7.23.9
247 | '@babel/types': 7.23.9
248 | transitivePeerDependencies:
249 | - supports-color
250 | dev: true
251 |
252 | /@babel/highlight@7.23.4:
253 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
254 | engines: {node: '>=6.9.0'}
255 | dependencies:
256 | '@babel/helper-validator-identifier': 7.22.20
257 | chalk: 2.4.2
258 | js-tokens: 4.0.0
259 | dev: true
260 |
261 | /@babel/parser@7.23.9:
262 | resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
263 | engines: {node: '>=6.0.0'}
264 | hasBin: true
265 | dependencies:
266 | '@babel/types': 7.23.9
267 | dev: true
268 |
269 | /@babel/template@7.23.9:
270 | resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
271 | engines: {node: '>=6.9.0'}
272 | dependencies:
273 | '@babel/code-frame': 7.23.5
274 | '@babel/parser': 7.23.9
275 | '@babel/types': 7.23.9
276 | dev: true
277 |
278 | /@babel/traverse@7.23.9:
279 | resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
280 | engines: {node: '>=6.9.0'}
281 | dependencies:
282 | '@babel/code-frame': 7.23.5
283 | '@babel/generator': 7.23.6
284 | '@babel/helper-environment-visitor': 7.22.20
285 | '@babel/helper-function-name': 7.23.0
286 | '@babel/helper-hoist-variables': 7.22.5
287 | '@babel/helper-split-export-declaration': 7.22.6
288 | '@babel/parser': 7.23.9
289 | '@babel/types': 7.23.9
290 | debug: 4.3.4
291 | globals: 11.12.0
292 | transitivePeerDependencies:
293 | - supports-color
294 | dev: true
295 |
296 | /@babel/types@7.23.9:
297 | resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
298 | engines: {node: '>=6.9.0'}
299 | dependencies:
300 | '@babel/helper-string-parser': 7.23.4
301 | '@babel/helper-validator-identifier': 7.22.20
302 | to-fast-properties: 2.0.0
303 | dev: true
304 |
305 | /@esbuild/aix-ppc64@0.19.12:
306 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
307 | engines: {node: '>=12'}
308 | cpu: [ppc64]
309 | os: [aix]
310 | requiresBuild: true
311 | dev: true
312 | optional: true
313 |
314 | /@esbuild/android-arm64@0.19.12:
315 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
316 | engines: {node: '>=12'}
317 | cpu: [arm64]
318 | os: [android]
319 | requiresBuild: true
320 | dev: true
321 | optional: true
322 |
323 | /@esbuild/android-arm@0.19.12:
324 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
325 | engines: {node: '>=12'}
326 | cpu: [arm]
327 | os: [android]
328 | requiresBuild: true
329 | dev: true
330 | optional: true
331 |
332 | /@esbuild/android-x64@0.19.12:
333 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
334 | engines: {node: '>=12'}
335 | cpu: [x64]
336 | os: [android]
337 | requiresBuild: true
338 | dev: true
339 | optional: true
340 |
341 | /@esbuild/darwin-arm64@0.19.12:
342 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
343 | engines: {node: '>=12'}
344 | cpu: [arm64]
345 | os: [darwin]
346 | requiresBuild: true
347 | dev: true
348 | optional: true
349 |
350 | /@esbuild/darwin-x64@0.19.12:
351 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
352 | engines: {node: '>=12'}
353 | cpu: [x64]
354 | os: [darwin]
355 | requiresBuild: true
356 | dev: true
357 | optional: true
358 |
359 | /@esbuild/freebsd-arm64@0.19.12:
360 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
361 | engines: {node: '>=12'}
362 | cpu: [arm64]
363 | os: [freebsd]
364 | requiresBuild: true
365 | dev: true
366 | optional: true
367 |
368 | /@esbuild/freebsd-x64@0.19.12:
369 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
370 | engines: {node: '>=12'}
371 | cpu: [x64]
372 | os: [freebsd]
373 | requiresBuild: true
374 | dev: true
375 | optional: true
376 |
377 | /@esbuild/linux-arm64@0.19.12:
378 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
379 | engines: {node: '>=12'}
380 | cpu: [arm64]
381 | os: [linux]
382 | requiresBuild: true
383 | dev: true
384 | optional: true
385 |
386 | /@esbuild/linux-arm@0.19.12:
387 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
388 | engines: {node: '>=12'}
389 | cpu: [arm]
390 | os: [linux]
391 | requiresBuild: true
392 | dev: true
393 | optional: true
394 |
395 | /@esbuild/linux-ia32@0.19.12:
396 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
397 | engines: {node: '>=12'}
398 | cpu: [ia32]
399 | os: [linux]
400 | requiresBuild: true
401 | dev: true
402 | optional: true
403 |
404 | /@esbuild/linux-loong64@0.19.12:
405 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
406 | engines: {node: '>=12'}
407 | cpu: [loong64]
408 | os: [linux]
409 | requiresBuild: true
410 | dev: true
411 | optional: true
412 |
413 | /@esbuild/linux-mips64el@0.19.12:
414 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
415 | engines: {node: '>=12'}
416 | cpu: [mips64el]
417 | os: [linux]
418 | requiresBuild: true
419 | dev: true
420 | optional: true
421 |
422 | /@esbuild/linux-ppc64@0.19.12:
423 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
424 | engines: {node: '>=12'}
425 | cpu: [ppc64]
426 | os: [linux]
427 | requiresBuild: true
428 | dev: true
429 | optional: true
430 |
431 | /@esbuild/linux-riscv64@0.19.12:
432 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
433 | engines: {node: '>=12'}
434 | cpu: [riscv64]
435 | os: [linux]
436 | requiresBuild: true
437 | dev: true
438 | optional: true
439 |
440 | /@esbuild/linux-s390x@0.19.12:
441 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
442 | engines: {node: '>=12'}
443 | cpu: [s390x]
444 | os: [linux]
445 | requiresBuild: true
446 | dev: true
447 | optional: true
448 |
449 | /@esbuild/linux-x64@0.19.12:
450 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
451 | engines: {node: '>=12'}
452 | cpu: [x64]
453 | os: [linux]
454 | requiresBuild: true
455 | dev: true
456 | optional: true
457 |
458 | /@esbuild/netbsd-x64@0.19.12:
459 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
460 | engines: {node: '>=12'}
461 | cpu: [x64]
462 | os: [netbsd]
463 | requiresBuild: true
464 | dev: true
465 | optional: true
466 |
467 | /@esbuild/openbsd-x64@0.19.12:
468 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
469 | engines: {node: '>=12'}
470 | cpu: [x64]
471 | os: [openbsd]
472 | requiresBuild: true
473 | dev: true
474 | optional: true
475 |
476 | /@esbuild/sunos-x64@0.19.12:
477 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
478 | engines: {node: '>=12'}
479 | cpu: [x64]
480 | os: [sunos]
481 | requiresBuild: true
482 | dev: true
483 | optional: true
484 |
485 | /@esbuild/win32-arm64@0.19.12:
486 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
487 | engines: {node: '>=12'}
488 | cpu: [arm64]
489 | os: [win32]
490 | requiresBuild: true
491 | dev: true
492 | optional: true
493 |
494 | /@esbuild/win32-ia32@0.19.12:
495 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
496 | engines: {node: '>=12'}
497 | cpu: [ia32]
498 | os: [win32]
499 | requiresBuild: true
500 | dev: true
501 | optional: true
502 |
503 | /@esbuild/win32-x64@0.19.12:
504 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
505 | engines: {node: '>=12'}
506 | cpu: [x64]
507 | os: [win32]
508 | requiresBuild: true
509 | dev: true
510 | optional: true
511 |
512 | /@fastify/ajv-compiler@3.5.0:
513 | resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==}
514 | dependencies:
515 | ajv: 8.12.0
516 | ajv-formats: 2.1.1(ajv@8.12.0)
517 | fast-uri: 2.3.0
518 | dev: false
519 |
520 | /@fastify/deepmerge@1.3.0:
521 | resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==}
522 | dev: false
523 |
524 | /@fastify/error@3.4.1:
525 | resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==}
526 | dev: false
527 |
528 | /@fastify/fast-json-stringify-compiler@4.3.0:
529 | resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==}
530 | dependencies:
531 | fast-json-stringify: 5.11.1
532 | dev: false
533 |
534 | /@fastify/url-data@5.4.0:
535 | resolution: {integrity: sha512-Ht8lAZnIGsBKdFu6yYwN98OH89fFziCMeCq3yyZbIUKl+lbK5njhmPrcxAwfwLW1QoVk6OO0BkUPu1E/3Js94A==}
536 | dependencies:
537 | fast-uri: 2.3.0
538 | fastify-plugin: 4.5.1
539 | dev: false
540 |
541 | /@ianvs/prettier-plugin-sort-imports@4.1.1(prettier@3.2.4):
542 | resolution: {integrity: sha512-kJhXq63ngpTQ2dxgf5GasbPJWsJA3LgoOdd7WGhpUSzLgLgI4IsIzYkbJf9kmpOHe7Vdm/o3PcRA3jmizXUuAQ==}
543 | peerDependencies:
544 | '@vue/compiler-sfc': '>=3.0.0'
545 | prettier: 2 || 3
546 | peerDependenciesMeta:
547 | '@vue/compiler-sfc':
548 | optional: true
549 | dependencies:
550 | '@babel/core': 7.23.9
551 | '@babel/generator': 7.23.6
552 | '@babel/parser': 7.23.9
553 | '@babel/traverse': 7.23.9
554 | '@babel/types': 7.23.9
555 | prettier: 3.2.4
556 | semver: 7.5.4
557 | transitivePeerDependencies:
558 | - supports-color
559 | dev: true
560 |
561 | /@jest/schemas@29.6.3:
562 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
563 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
564 | dependencies:
565 | '@sinclair/typebox': 0.27.8
566 | dev: true
567 |
568 | /@jridgewell/gen-mapping@0.3.3:
569 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
570 | engines: {node: '>=6.0.0'}
571 | dependencies:
572 | '@jridgewell/set-array': 1.1.2
573 | '@jridgewell/sourcemap-codec': 1.4.15
574 | '@jridgewell/trace-mapping': 0.3.22
575 | dev: true
576 |
577 | /@jridgewell/resolve-uri@3.1.1:
578 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
579 | engines: {node: '>=6.0.0'}
580 | dev: true
581 |
582 | /@jridgewell/set-array@1.1.2:
583 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
584 | engines: {node: '>=6.0.0'}
585 | dev: true
586 |
587 | /@jridgewell/sourcemap-codec@1.4.15:
588 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
589 | dev: true
590 |
591 | /@jridgewell/trace-mapping@0.3.22:
592 | resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
593 | dependencies:
594 | '@jridgewell/resolve-uri': 3.1.1
595 | '@jridgewell/sourcemap-codec': 1.4.15
596 | dev: true
597 |
598 | /@mapbox/node-pre-gyp@1.0.11:
599 | resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
600 | hasBin: true
601 | dependencies:
602 | detect-libc: 2.0.2
603 | https-proxy-agent: 5.0.1
604 | make-dir: 3.1.0
605 | node-fetch: 2.7.0
606 | nopt: 5.0.0
607 | npmlog: 5.0.1
608 | rimraf: 3.0.2
609 | semver: 7.5.4
610 | tar: 6.2.0
611 | transitivePeerDependencies:
612 | - encoding
613 | - supports-color
614 | dev: true
615 |
616 | /@napi-rs/cli@2.18.0:
617 | resolution: {integrity: sha512-lfSRT7cs3iC4L+kv9suGYQEezn5Nii7Kpu+THsYVI0tA1Vh59LH45p4QADaD7hvIkmOz79eEGtoKQ9nAkAPkzA==}
618 | engines: {node: '>= 10'}
619 | hasBin: true
620 | dev: true
621 |
622 | /@nodelib/fs.scandir@2.1.5:
623 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
624 | engines: {node: '>= 8'}
625 | dependencies:
626 | '@nodelib/fs.stat': 2.0.5
627 | run-parallel: 1.2.0
628 | dev: true
629 |
630 | /@nodelib/fs.stat@2.0.5:
631 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
632 | engines: {node: '>= 8'}
633 | dev: true
634 |
635 | /@nodelib/fs.walk@1.2.8:
636 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
637 | engines: {node: '>= 8'}
638 | dependencies:
639 | '@nodelib/fs.scandir': 2.1.5
640 | fastq: 1.17.0
641 | dev: true
642 |
643 | /@rollup/pluginutils@4.2.1:
644 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
645 | engines: {node: '>= 8.0.0'}
646 | dependencies:
647 | estree-walker: 2.0.2
648 | picomatch: 2.3.1
649 | dev: true
650 |
651 | /@rollup/rollup-android-arm-eabi@4.9.6:
652 | resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==}
653 | cpu: [arm]
654 | os: [android]
655 | requiresBuild: true
656 | dev: true
657 | optional: true
658 |
659 | /@rollup/rollup-android-arm64@4.9.6:
660 | resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==}
661 | cpu: [arm64]
662 | os: [android]
663 | requiresBuild: true
664 | dev: true
665 | optional: true
666 |
667 | /@rollup/rollup-darwin-arm64@4.9.6:
668 | resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==}
669 | cpu: [arm64]
670 | os: [darwin]
671 | requiresBuild: true
672 | dev: true
673 | optional: true
674 |
675 | /@rollup/rollup-darwin-x64@4.9.6:
676 | resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==}
677 | cpu: [x64]
678 | os: [darwin]
679 | requiresBuild: true
680 | dev: true
681 | optional: true
682 |
683 | /@rollup/rollup-linux-arm-gnueabihf@4.9.6:
684 | resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==}
685 | cpu: [arm]
686 | os: [linux]
687 | requiresBuild: true
688 | dev: true
689 | optional: true
690 |
691 | /@rollup/rollup-linux-arm64-gnu@4.9.6:
692 | resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==}
693 | cpu: [arm64]
694 | os: [linux]
695 | requiresBuild: true
696 | dev: true
697 | optional: true
698 |
699 | /@rollup/rollup-linux-arm64-musl@4.9.6:
700 | resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==}
701 | cpu: [arm64]
702 | os: [linux]
703 | requiresBuild: true
704 | dev: true
705 | optional: true
706 |
707 | /@rollup/rollup-linux-riscv64-gnu@4.9.6:
708 | resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==}
709 | cpu: [riscv64]
710 | os: [linux]
711 | requiresBuild: true
712 | dev: true
713 | optional: true
714 |
715 | /@rollup/rollup-linux-x64-gnu@4.9.6:
716 | resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==}
717 | cpu: [x64]
718 | os: [linux]
719 | requiresBuild: true
720 | dev: true
721 | optional: true
722 |
723 | /@rollup/rollup-linux-x64-musl@4.9.6:
724 | resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==}
725 | cpu: [x64]
726 | os: [linux]
727 | requiresBuild: true
728 | dev: true
729 | optional: true
730 |
731 | /@rollup/rollup-win32-arm64-msvc@4.9.6:
732 | resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==}
733 | cpu: [arm64]
734 | os: [win32]
735 | requiresBuild: true
736 | dev: true
737 | optional: true
738 |
739 | /@rollup/rollup-win32-ia32-msvc@4.9.6:
740 | resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==}
741 | cpu: [ia32]
742 | os: [win32]
743 | requiresBuild: true
744 | dev: true
745 | optional: true
746 |
747 | /@rollup/rollup-win32-x64-msvc@4.9.6:
748 | resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==}
749 | cpu: [x64]
750 | os: [win32]
751 | requiresBuild: true
752 | dev: true
753 | optional: true
754 |
755 | /@sinclair/typebox@0.27.8:
756 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
757 | dev: true
758 |
759 | /@sindresorhus/merge-streams@1.0.0:
760 | resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==}
761 | engines: {node: '>=18'}
762 | dev: true
763 |
764 | /@types/estree@1.0.5:
765 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
766 | dev: true
767 |
768 | /@types/node-fetch@2.6.11:
769 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
770 | dependencies:
771 | '@types/node': 20.11.14
772 | form-data: 4.0.0
773 | dev: false
774 |
775 | /@types/node@18.19.14:
776 | resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==}
777 | dependencies:
778 | undici-types: 5.26.5
779 | dev: false
780 |
781 | /@types/node@20.11.14:
782 | resolution: {integrity: sha512-w3yWCcwULefjP9DmDDsgUskrMoOy5Z8MiwKHr1FvqGPtx7CvJzQvxD7eKpxNtklQxLruxSXWddyeRtyud0RcXQ==}
783 | dependencies:
784 | undici-types: 5.26.5
785 |
786 | /@vercel/nft@0.26.2:
787 | resolution: {integrity: sha512-bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==}
788 | engines: {node: '>=16'}
789 | hasBin: true
790 | dependencies:
791 | '@mapbox/node-pre-gyp': 1.0.11
792 | '@rollup/pluginutils': 4.2.1
793 | acorn: 8.11.3
794 | acorn-import-attributes: 1.9.2(acorn@8.11.3)
795 | async-sema: 3.1.1
796 | bindings: 1.5.0
797 | estree-walker: 2.0.2
798 | glob: 7.2.3
799 | graceful-fs: 4.2.11
800 | micromatch: 4.0.5
801 | node-gyp-build: 4.8.0
802 | resolve-from: 5.0.0
803 | transitivePeerDependencies:
804 | - encoding
805 | - supports-color
806 | dev: true
807 |
808 | /@vitest/expect@1.2.2:
809 | resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==}
810 | dependencies:
811 | '@vitest/spy': 1.2.2
812 | '@vitest/utils': 1.2.2
813 | chai: 4.4.1
814 | dev: true
815 |
816 | /@vitest/runner@1.2.2:
817 | resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==}
818 | dependencies:
819 | '@vitest/utils': 1.2.2
820 | p-limit: 5.0.0
821 | pathe: 1.1.2
822 | dev: true
823 |
824 | /@vitest/snapshot@1.2.2:
825 | resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==}
826 | dependencies:
827 | magic-string: 0.30.5
828 | pathe: 1.1.2
829 | pretty-format: 29.7.0
830 | dev: true
831 |
832 | /@vitest/spy@1.2.2:
833 | resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==}
834 | dependencies:
835 | tinyspy: 2.2.0
836 | dev: true
837 |
838 | /@vitest/utils@1.2.2:
839 | resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==}
840 | dependencies:
841 | diff-sequences: 29.6.3
842 | estree-walker: 3.0.3
843 | loupe: 2.3.7
844 | pretty-format: 29.7.0
845 | dev: true
846 |
847 | /abbrev@1.1.1:
848 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
849 | dev: true
850 |
851 | /abort-controller@3.0.0:
852 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
853 | engines: {node: '>=6.5'}
854 | dependencies:
855 | event-target-shim: 5.0.1
856 | dev: false
857 |
858 | /abstract-logging@2.0.1:
859 | resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
860 | dev: false
861 |
862 | /acorn-import-attributes@1.9.2(acorn@8.11.3):
863 | resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==}
864 | peerDependencies:
865 | acorn: ^8
866 | dependencies:
867 | acorn: 8.11.3
868 | dev: true
869 |
870 | /acorn-walk@8.3.2:
871 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
872 | engines: {node: '>=0.4.0'}
873 | dev: true
874 |
875 | /acorn@8.11.3:
876 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
877 | engines: {node: '>=0.4.0'}
878 | hasBin: true
879 | dev: true
880 |
881 | /agent-base@6.0.2:
882 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
883 | engines: {node: '>= 6.0.0'}
884 | dependencies:
885 | debug: 4.3.4
886 | transitivePeerDependencies:
887 | - supports-color
888 | dev: true
889 |
890 | /agentkeepalive@4.5.0:
891 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
892 | engines: {node: '>= 8.0.0'}
893 | dependencies:
894 | humanize-ms: 1.2.1
895 | dev: false
896 |
897 | /ajv-formats@2.1.1(ajv@8.12.0):
898 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
899 | peerDependencies:
900 | ajv: ^8.0.0
901 | peerDependenciesMeta:
902 | ajv:
903 | optional: true
904 | dependencies:
905 | ajv: 8.12.0
906 | dev: false
907 |
908 | /ajv@8.12.0:
909 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
910 | dependencies:
911 | fast-deep-equal: 3.1.3
912 | json-schema-traverse: 1.0.0
913 | require-from-string: 2.0.2
914 | uri-js: 4.4.1
915 | dev: false
916 |
917 | /ansi-regex@5.0.1:
918 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
919 | engines: {node: '>=8'}
920 | dev: true
921 |
922 | /ansi-regex@6.0.1:
923 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
924 | engines: {node: '>=12'}
925 | dev: true
926 |
927 | /ansi-styles@3.2.1:
928 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
929 | engines: {node: '>=4'}
930 | dependencies:
931 | color-convert: 1.9.3
932 | dev: true
933 |
934 | /ansi-styles@4.3.0:
935 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
936 | engines: {node: '>=8'}
937 | dependencies:
938 | color-convert: 2.0.1
939 | dev: true
940 |
941 | /ansi-styles@5.2.0:
942 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
943 | engines: {node: '>=10'}
944 | dev: true
945 |
946 | /ansi-styles@6.2.1:
947 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
948 | engines: {node: '>=12'}
949 | dev: true
950 |
951 | /aproba@2.0.0:
952 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
953 | dev: true
954 |
955 | /archy@1.0.0:
956 | resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
957 | dev: false
958 |
959 | /are-we-there-yet@2.0.0:
960 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
961 | engines: {node: '>=10'}
962 | dependencies:
963 | delegates: 1.0.0
964 | readable-stream: 3.6.2
965 | dev: true
966 |
967 | /argparse@1.0.10:
968 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
969 | dependencies:
970 | sprintf-js: 1.0.3
971 | dev: true
972 |
973 | /array-find-index@1.0.2:
974 | resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==}
975 | engines: {node: '>=0.10.0'}
976 | dev: true
977 |
978 | /arrgv@1.0.2:
979 | resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==}
980 | engines: {node: '>=8.0.0'}
981 | dev: true
982 |
983 | /arrify@3.0.0:
984 | resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==}
985 | engines: {node: '>=12'}
986 | dev: true
987 |
988 | /assertion-error@1.1.0:
989 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
990 | dev: true
991 |
992 | /async-sema@3.1.1:
993 | resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
994 | dev: true
995 |
996 | /asynckit@0.4.0:
997 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
998 | dev: false
999 |
1000 | /atomic-sleep@1.0.0:
1001 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
1002 | engines: {node: '>=8.0.0'}
1003 | dev: false
1004 |
1005 | /ava@6.1.1:
1006 | resolution: {integrity: sha512-A+DG0Ag0e5zvt262Ze0pG5QH7EBmhn+DB9uK7WkUtJVAtGjZFeKTpUOKx339DMGn53+FB24pCJC5klX2WU4VOw==}
1007 | engines: {node: ^18.18 || ^20.8 || ^21}
1008 | hasBin: true
1009 | peerDependencies:
1010 | '@ava/typescript': '*'
1011 | peerDependenciesMeta:
1012 | '@ava/typescript':
1013 | optional: true
1014 | dependencies:
1015 | '@vercel/nft': 0.26.2
1016 | acorn: 8.11.3
1017 | acorn-walk: 8.3.2
1018 | ansi-styles: 6.2.1
1019 | arrgv: 1.0.2
1020 | arrify: 3.0.0
1021 | callsites: 4.1.0
1022 | cbor: 9.0.1
1023 | chalk: 5.3.0
1024 | chunkd: 2.0.1
1025 | ci-info: 4.0.0
1026 | ci-parallel-vars: 1.0.1
1027 | cli-truncate: 4.0.0
1028 | code-excerpt: 4.0.0
1029 | common-path-prefix: 3.0.0
1030 | concordance: 5.0.4
1031 | currently-unhandled: 0.4.1
1032 | debug: 4.3.4
1033 | emittery: 1.0.2
1034 | figures: 6.0.1
1035 | globby: 14.0.0
1036 | ignore-by-default: 2.1.0
1037 | indent-string: 5.0.0
1038 | is-plain-object: 5.0.0
1039 | is-promise: 4.0.0
1040 | matcher: 5.0.0
1041 | memoize: 10.0.0
1042 | ms: 2.1.3
1043 | p-map: 7.0.1
1044 | package-config: 5.0.0
1045 | picomatch: 3.0.1
1046 | plur: 5.1.0
1047 | pretty-ms: 9.0.0
1048 | resolve-cwd: 3.0.0
1049 | stack-utils: 2.0.6
1050 | strip-ansi: 7.1.0
1051 | supertap: 3.0.1
1052 | temp-dir: 3.0.0
1053 | write-file-atomic: 5.0.1
1054 | yargs: 17.7.2
1055 | transitivePeerDependencies:
1056 | - encoding
1057 | - supports-color
1058 | dev: true
1059 |
1060 | /avvio@8.2.1:
1061 | resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==}
1062 | dependencies:
1063 | archy: 1.0.0
1064 | debug: 4.3.4
1065 | fastq: 1.17.0
1066 | transitivePeerDependencies:
1067 | - supports-color
1068 | dev: false
1069 |
1070 | /balanced-match@1.0.2:
1071 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1072 | dev: true
1073 |
1074 | /base-64@0.1.0:
1075 | resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==}
1076 | dev: false
1077 |
1078 | /base64-js@1.5.1:
1079 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
1080 | dev: false
1081 |
1082 | /bindings@1.5.0:
1083 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
1084 | dependencies:
1085 | file-uri-to-path: 1.0.0
1086 | dev: true
1087 |
1088 | /blueimp-md5@2.19.0:
1089 | resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
1090 | dev: true
1091 |
1092 | /brace-expansion@1.1.11:
1093 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
1094 | dependencies:
1095 | balanced-match: 1.0.2
1096 | concat-map: 0.0.1
1097 | dev: true
1098 |
1099 | /braces@3.0.2:
1100 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
1101 | engines: {node: '>=8'}
1102 | dependencies:
1103 | fill-range: 7.0.1
1104 | dev: true
1105 |
1106 | /browserslist@4.22.3:
1107 | resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
1108 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1109 | hasBin: true
1110 | dependencies:
1111 | caniuse-lite: 1.0.30001581
1112 | electron-to-chromium: 1.4.650
1113 | node-releases: 2.0.14
1114 | update-browserslist-db: 1.0.13(browserslist@4.22.3)
1115 | dev: true
1116 |
1117 | /buffer@6.0.3:
1118 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
1119 | dependencies:
1120 | base64-js: 1.5.1
1121 | ieee754: 1.2.1
1122 | dev: false
1123 |
1124 | /cac@6.7.14:
1125 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
1126 | engines: {node: '>=8'}
1127 | dev: true
1128 |
1129 | /callsites@4.1.0:
1130 | resolution: {integrity: sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==}
1131 | engines: {node: '>=12.20'}
1132 | dev: true
1133 |
1134 | /caniuse-lite@1.0.30001581:
1135 | resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==}
1136 | dev: true
1137 |
1138 | /cbor@9.0.1:
1139 | resolution: {integrity: sha512-/TQOWyamDxvVIv+DY9cOLNuABkoyz8K/F3QE56539pGVYohx0+MEA1f4lChFTX79dBTBS7R1PF6ovH7G+VtBfQ==}
1140 | engines: {node: '>=16'}
1141 | dependencies:
1142 | nofilter: 3.1.0
1143 | dev: true
1144 |
1145 | /chai@4.4.1:
1146 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
1147 | engines: {node: '>=4'}
1148 | dependencies:
1149 | assertion-error: 1.1.0
1150 | check-error: 1.0.3
1151 | deep-eql: 4.1.3
1152 | get-func-name: 2.0.2
1153 | loupe: 2.3.7
1154 | pathval: 1.1.1
1155 | type-detect: 4.0.8
1156 | dev: true
1157 |
1158 | /chalk@2.4.2:
1159 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1160 | engines: {node: '>=4'}
1161 | dependencies:
1162 | ansi-styles: 3.2.1
1163 | escape-string-regexp: 1.0.5
1164 | supports-color: 5.5.0
1165 | dev: true
1166 |
1167 | /chalk@5.3.0:
1168 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
1169 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
1170 | dev: true
1171 |
1172 | /charenc@0.0.2:
1173 | resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
1174 | dev: false
1175 |
1176 | /check-error@1.0.3:
1177 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
1178 | dependencies:
1179 | get-func-name: 2.0.2
1180 | dev: true
1181 |
1182 | /chownr@2.0.0:
1183 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
1184 | engines: {node: '>=10'}
1185 | dev: true
1186 |
1187 | /chunkd@2.0.1:
1188 | resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==}
1189 | dev: true
1190 |
1191 | /ci-info@4.0.0:
1192 | resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
1193 | engines: {node: '>=8'}
1194 | dev: true
1195 |
1196 | /ci-parallel-vars@1.0.1:
1197 | resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==}
1198 | dev: true
1199 |
1200 | /cli-truncate@4.0.0:
1201 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
1202 | engines: {node: '>=18'}
1203 | dependencies:
1204 | slice-ansi: 5.0.0
1205 | string-width: 7.1.0
1206 | dev: true
1207 |
1208 | /cliui@8.0.1:
1209 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
1210 | engines: {node: '>=12'}
1211 | dependencies:
1212 | string-width: 4.2.3
1213 | strip-ansi: 6.0.1
1214 | wrap-ansi: 7.0.0
1215 | dev: true
1216 |
1217 | /code-excerpt@4.0.0:
1218 | resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
1219 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1220 | dependencies:
1221 | convert-to-spaces: 2.0.1
1222 | dev: true
1223 |
1224 | /color-convert@1.9.3:
1225 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
1226 | dependencies:
1227 | color-name: 1.1.3
1228 | dev: true
1229 |
1230 | /color-convert@2.0.1:
1231 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1232 | engines: {node: '>=7.0.0'}
1233 | dependencies:
1234 | color-name: 1.1.4
1235 | dev: true
1236 |
1237 | /color-name@1.1.3:
1238 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
1239 | dev: true
1240 |
1241 | /color-name@1.1.4:
1242 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1243 | dev: true
1244 |
1245 | /color-support@1.1.3:
1246 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
1247 | hasBin: true
1248 | dev: true
1249 |
1250 | /combined-stream@1.0.8:
1251 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
1252 | engines: {node: '>= 0.8'}
1253 | dependencies:
1254 | delayed-stream: 1.0.0
1255 | dev: false
1256 |
1257 | /common-path-prefix@3.0.0:
1258 | resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
1259 | dev: true
1260 |
1261 | /concat-map@0.0.1:
1262 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
1263 | dev: true
1264 |
1265 | /concordance@5.0.4:
1266 | resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==}
1267 | engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'}
1268 | dependencies:
1269 | date-time: 3.1.0
1270 | esutils: 2.0.3
1271 | fast-diff: 1.3.0
1272 | js-string-escape: 1.0.1
1273 | lodash: 4.17.21
1274 | md5-hex: 3.0.1
1275 | semver: 7.5.4
1276 | well-known-symbols: 2.0.0
1277 | dev: true
1278 |
1279 | /console-control-strings@1.1.0:
1280 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
1281 | dev: true
1282 |
1283 | /convert-source-map@2.0.0:
1284 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1285 | dev: true
1286 |
1287 | /convert-to-spaces@2.0.1:
1288 | resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
1289 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1290 | dev: true
1291 |
1292 | /cookie@0.5.0:
1293 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
1294 | engines: {node: '>= 0.6'}
1295 | dev: false
1296 |
1297 | /cross-spawn@7.0.3:
1298 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1299 | engines: {node: '>= 8'}
1300 | dependencies:
1301 | path-key: 3.1.1
1302 | shebang-command: 2.0.0
1303 | which: 2.0.2
1304 | dev: true
1305 |
1306 | /crypt@0.0.2:
1307 | resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}
1308 | dev: false
1309 |
1310 | /currently-unhandled@0.4.1:
1311 | resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==}
1312 | engines: {node: '>=0.10.0'}
1313 | dependencies:
1314 | array-find-index: 1.0.2
1315 | dev: true
1316 |
1317 | /date-time@3.1.0:
1318 | resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==}
1319 | engines: {node: '>=6'}
1320 | dependencies:
1321 | time-zone: 1.0.0
1322 | dev: true
1323 |
1324 | /debug@4.3.4:
1325 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
1326 | engines: {node: '>=6.0'}
1327 | peerDependencies:
1328 | supports-color: '*'
1329 | peerDependenciesMeta:
1330 | supports-color:
1331 | optional: true
1332 | dependencies:
1333 | ms: 2.1.2
1334 |
1335 | /deep-eql@4.1.3:
1336 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
1337 | engines: {node: '>=6'}
1338 | dependencies:
1339 | type-detect: 4.0.8
1340 | dev: true
1341 |
1342 | /delayed-stream@1.0.0:
1343 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
1344 | engines: {node: '>=0.4.0'}
1345 | dev: false
1346 |
1347 | /delegates@1.0.0:
1348 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
1349 | dev: true
1350 |
1351 | /detect-libc@2.0.2:
1352 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
1353 | engines: {node: '>=8'}
1354 | dev: true
1355 |
1356 | /diff-sequences@29.6.3:
1357 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
1358 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1359 | dev: true
1360 |
1361 | /digest-fetch@1.3.0:
1362 | resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==}
1363 | dependencies:
1364 | base-64: 0.1.0
1365 | md5: 2.3.0
1366 | dev: false
1367 |
1368 | /dotenv-cli@7.3.0:
1369 | resolution: {integrity: sha512-314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw==}
1370 | hasBin: true
1371 | dependencies:
1372 | cross-spawn: 7.0.3
1373 | dotenv: 16.4.1
1374 | dotenv-expand: 10.0.0
1375 | minimist: 1.2.8
1376 | dev: true
1377 |
1378 | /dotenv-expand@10.0.0:
1379 | resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
1380 | engines: {node: '>=12'}
1381 | dev: true
1382 |
1383 | /dotenv@16.4.1:
1384 | resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==}
1385 | engines: {node: '>=12'}
1386 | dev: true
1387 |
1388 | /electron-to-chromium@1.4.650:
1389 | resolution: {integrity: sha512-sYSQhJCJa4aGA1wYol5cMQgekDBlbVfTRavlGZVr3WZpDdOPcp6a6xUnFfrt8TqZhsBYYbDxJZCjGfHuGupCRQ==}
1390 | dev: true
1391 |
1392 | /emittery@1.0.2:
1393 | resolution: {integrity: sha512-PqHdP6JJrxiSXQzCAzII77dVsfyGWu+7V0ghqkaCej2shF1cnIPeFE9kKZcVTqvBjrRMDVOdNXKEYcjxkznS1g==}
1394 | engines: {node: '>=14.16'}
1395 | dev: true
1396 |
1397 | /emoji-regex@10.3.0:
1398 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
1399 | dev: true
1400 |
1401 | /emoji-regex@8.0.0:
1402 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1403 | dev: true
1404 |
1405 | /esbuild@0.19.12:
1406 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
1407 | engines: {node: '>=12'}
1408 | hasBin: true
1409 | requiresBuild: true
1410 | optionalDependencies:
1411 | '@esbuild/aix-ppc64': 0.19.12
1412 | '@esbuild/android-arm': 0.19.12
1413 | '@esbuild/android-arm64': 0.19.12
1414 | '@esbuild/android-x64': 0.19.12
1415 | '@esbuild/darwin-arm64': 0.19.12
1416 | '@esbuild/darwin-x64': 0.19.12
1417 | '@esbuild/freebsd-arm64': 0.19.12
1418 | '@esbuild/freebsd-x64': 0.19.12
1419 | '@esbuild/linux-arm': 0.19.12
1420 | '@esbuild/linux-arm64': 0.19.12
1421 | '@esbuild/linux-ia32': 0.19.12
1422 | '@esbuild/linux-loong64': 0.19.12
1423 | '@esbuild/linux-mips64el': 0.19.12
1424 | '@esbuild/linux-ppc64': 0.19.12
1425 | '@esbuild/linux-riscv64': 0.19.12
1426 | '@esbuild/linux-s390x': 0.19.12
1427 | '@esbuild/linux-x64': 0.19.12
1428 | '@esbuild/netbsd-x64': 0.19.12
1429 | '@esbuild/openbsd-x64': 0.19.12
1430 | '@esbuild/sunos-x64': 0.19.12
1431 | '@esbuild/win32-arm64': 0.19.12
1432 | '@esbuild/win32-ia32': 0.19.12
1433 | '@esbuild/win32-x64': 0.19.12
1434 | dev: true
1435 |
1436 | /escalade@3.1.1:
1437 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1438 | engines: {node: '>=6'}
1439 | dev: true
1440 |
1441 | /escape-string-regexp@1.0.5:
1442 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
1443 | engines: {node: '>=0.8.0'}
1444 | dev: true
1445 |
1446 | /escape-string-regexp@2.0.0:
1447 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
1448 | engines: {node: '>=8'}
1449 | dev: true
1450 |
1451 | /escape-string-regexp@5.0.0:
1452 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
1453 | engines: {node: '>=12'}
1454 | dev: true
1455 |
1456 | /esprima@4.0.1:
1457 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1458 | engines: {node: '>=4'}
1459 | hasBin: true
1460 | dev: true
1461 |
1462 | /estree-walker@2.0.2:
1463 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
1464 | dev: true
1465 |
1466 | /estree-walker@3.0.3:
1467 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
1468 | dependencies:
1469 | '@types/estree': 1.0.5
1470 | dev: true
1471 |
1472 | /esutils@2.0.3:
1473 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1474 | engines: {node: '>=0.10.0'}
1475 | dev: true
1476 |
1477 | /event-target-shim@5.0.1:
1478 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
1479 | engines: {node: '>=6'}
1480 | dev: false
1481 |
1482 | /events@3.3.0:
1483 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
1484 | engines: {node: '>=0.8.x'}
1485 | dev: false
1486 |
1487 | /execa@8.0.1:
1488 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
1489 | engines: {node: '>=16.17'}
1490 | dependencies:
1491 | cross-spawn: 7.0.3
1492 | get-stream: 8.0.1
1493 | human-signals: 5.0.0
1494 | is-stream: 3.0.0
1495 | merge-stream: 2.0.0
1496 | npm-run-path: 5.2.0
1497 | onetime: 6.0.0
1498 | signal-exit: 4.1.0
1499 | strip-final-newline: 3.0.0
1500 | dev: true
1501 |
1502 | /fast-content-type-parse@1.1.0:
1503 | resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==}
1504 | dev: false
1505 |
1506 | /fast-decode-uri-component@1.0.1:
1507 | resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==}
1508 | dev: false
1509 |
1510 | /fast-deep-equal@3.1.3:
1511 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1512 | dev: false
1513 |
1514 | /fast-diff@1.3.0:
1515 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
1516 | dev: true
1517 |
1518 | /fast-glob@3.3.2:
1519 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
1520 | engines: {node: '>=8.6.0'}
1521 | dependencies:
1522 | '@nodelib/fs.stat': 2.0.5
1523 | '@nodelib/fs.walk': 1.2.8
1524 | glob-parent: 5.1.2
1525 | merge2: 1.4.1
1526 | micromatch: 4.0.5
1527 | dev: true
1528 |
1529 | /fast-json-stringify@5.11.1:
1530 | resolution: {integrity: sha512-Lrj3tmc/qI1OCmr0WJEJFC4TxnAdLnbZZ0CvFvHv/PHNieLCX12PNBlV9KGIDS08w49T8h7vkMuzNoB+3NyX0g==}
1531 | dependencies:
1532 | '@fastify/deepmerge': 1.3.0
1533 | ajv: 8.12.0
1534 | ajv-formats: 2.1.1(ajv@8.12.0)
1535 | fast-deep-equal: 3.1.3
1536 | fast-uri: 2.3.0
1537 | json-schema-ref-resolver: 1.0.1
1538 | rfdc: 1.3.1
1539 | dev: false
1540 |
1541 | /fast-querystring@1.1.2:
1542 | resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==}
1543 | dependencies:
1544 | fast-decode-uri-component: 1.0.1
1545 | dev: false
1546 |
1547 | /fast-redact@3.3.0:
1548 | resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==}
1549 | engines: {node: '>=6'}
1550 | dev: false
1551 |
1552 | /fast-uri@2.3.0:
1553 | resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==}
1554 | dev: false
1555 |
1556 | /fastify-plugin@4.5.1:
1557 | resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==}
1558 | dev: false
1559 |
1560 | /fastify@4.26.0:
1561 | resolution: {integrity: sha512-Fq/7ziWKc6pYLYLIlCRaqJqEVTIZ5tZYfcW/mDK2AQ9v/sqjGFpj0On0/7hU50kbPVjLO4de+larPA1WwPZSfw==}
1562 | dependencies:
1563 | '@fastify/ajv-compiler': 3.5.0
1564 | '@fastify/error': 3.4.1
1565 | '@fastify/fast-json-stringify-compiler': 4.3.0
1566 | abstract-logging: 2.0.1
1567 | avvio: 8.2.1
1568 | fast-content-type-parse: 1.1.0
1569 | fast-json-stringify: 5.11.1
1570 | find-my-way: 8.1.0
1571 | light-my-request: 5.11.0
1572 | pino: 8.18.0
1573 | process-warning: 3.0.0
1574 | proxy-addr: 2.0.7
1575 | rfdc: 1.3.1
1576 | secure-json-parse: 2.7.0
1577 | semver: 7.5.4
1578 | toad-cache: 3.7.0
1579 | transitivePeerDependencies:
1580 | - supports-color
1581 | dev: false
1582 |
1583 | /fastq@1.17.0:
1584 | resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==}
1585 | dependencies:
1586 | reusify: 1.0.4
1587 |
1588 | /figures@6.0.1:
1589 | resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==}
1590 | engines: {node: '>=18'}
1591 | dependencies:
1592 | is-unicode-supported: 2.0.0
1593 | dev: true
1594 |
1595 | /file-uri-to-path@1.0.0:
1596 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
1597 | dev: true
1598 |
1599 | /fill-range@7.0.1:
1600 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1601 | engines: {node: '>=8'}
1602 | dependencies:
1603 | to-regex-range: 5.0.1
1604 | dev: true
1605 |
1606 | /find-my-way@8.1.0:
1607 | resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==}
1608 | engines: {node: '>=14'}
1609 | dependencies:
1610 | fast-deep-equal: 3.1.3
1611 | fast-querystring: 1.1.2
1612 | safe-regex2: 2.0.0
1613 | dev: false
1614 |
1615 | /find-up-simple@1.0.0:
1616 | resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==}
1617 | engines: {node: '>=18'}
1618 | dev: true
1619 |
1620 | /form-data-encoder@1.7.2:
1621 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
1622 | dev: false
1623 |
1624 | /form-data@4.0.0:
1625 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
1626 | engines: {node: '>= 6'}
1627 | dependencies:
1628 | asynckit: 0.4.0
1629 | combined-stream: 1.0.8
1630 | mime-types: 2.1.35
1631 | dev: false
1632 |
1633 | /formdata-node@4.4.1:
1634 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
1635 | engines: {node: '>= 12.20'}
1636 | dependencies:
1637 | node-domexception: 1.0.0
1638 | web-streams-polyfill: 4.0.0-beta.3
1639 | dev: false
1640 |
1641 | /forwarded@0.2.0:
1642 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
1643 | engines: {node: '>= 0.6'}
1644 | dev: false
1645 |
1646 | /fs-minipass@2.1.0:
1647 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
1648 | engines: {node: '>= 8'}
1649 | dependencies:
1650 | minipass: 3.3.6
1651 | dev: true
1652 |
1653 | /fs.realpath@1.0.0:
1654 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1655 | dev: true
1656 |
1657 | /fsevents@2.3.3:
1658 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1659 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1660 | os: [darwin]
1661 | requiresBuild: true
1662 | dev: true
1663 | optional: true
1664 |
1665 | /gauge@3.0.2:
1666 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
1667 | engines: {node: '>=10'}
1668 | dependencies:
1669 | aproba: 2.0.0
1670 | color-support: 1.1.3
1671 | console-control-strings: 1.1.0
1672 | has-unicode: 2.0.1
1673 | object-assign: 4.1.1
1674 | signal-exit: 3.0.7
1675 | string-width: 4.2.3
1676 | strip-ansi: 6.0.1
1677 | wide-align: 1.1.5
1678 | dev: true
1679 |
1680 | /gensync@1.0.0-beta.2:
1681 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
1682 | engines: {node: '>=6.9.0'}
1683 | dev: true
1684 |
1685 | /get-caller-file@2.0.5:
1686 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
1687 | engines: {node: 6.* || 8.* || >= 10.*}
1688 | dev: true
1689 |
1690 | /get-east-asian-width@1.2.0:
1691 | resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
1692 | engines: {node: '>=18'}
1693 | dev: true
1694 |
1695 | /get-func-name@2.0.2:
1696 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
1697 | dev: true
1698 |
1699 | /get-stream@8.0.1:
1700 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
1701 | engines: {node: '>=16'}
1702 | dev: true
1703 |
1704 | /get-tsconfig@4.7.2:
1705 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
1706 | dependencies:
1707 | resolve-pkg-maps: 1.0.0
1708 | dev: true
1709 |
1710 | /glob-parent@5.1.2:
1711 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1712 | engines: {node: '>= 6'}
1713 | dependencies:
1714 | is-glob: 4.0.3
1715 | dev: true
1716 |
1717 | /glob@7.2.3:
1718 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1719 | dependencies:
1720 | fs.realpath: 1.0.0
1721 | inflight: 1.0.6
1722 | inherits: 2.0.4
1723 | minimatch: 3.1.2
1724 | once: 1.4.0
1725 | path-is-absolute: 1.0.1
1726 | dev: true
1727 |
1728 | /globals@11.12.0:
1729 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
1730 | engines: {node: '>=4'}
1731 | dev: true
1732 |
1733 | /globby@14.0.0:
1734 | resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==}
1735 | engines: {node: '>=18'}
1736 | dependencies:
1737 | '@sindresorhus/merge-streams': 1.0.0
1738 | fast-glob: 3.3.2
1739 | ignore: 5.3.0
1740 | path-type: 5.0.0
1741 | slash: 5.1.0
1742 | unicorn-magic: 0.1.0
1743 | dev: true
1744 |
1745 | /graceful-fs@4.2.11:
1746 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1747 | dev: true
1748 |
1749 | /has-flag@3.0.0:
1750 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
1751 | engines: {node: '>=4'}
1752 | dev: true
1753 |
1754 | /has-unicode@2.0.1:
1755 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
1756 | dev: true
1757 |
1758 | /https-proxy-agent@5.0.1:
1759 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
1760 | engines: {node: '>= 6'}
1761 | dependencies:
1762 | agent-base: 6.0.2
1763 | debug: 4.3.4
1764 | transitivePeerDependencies:
1765 | - supports-color
1766 | dev: true
1767 |
1768 | /human-signals@5.0.0:
1769 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
1770 | engines: {node: '>=16.17.0'}
1771 | dev: true
1772 |
1773 | /humanize-ms@1.2.1:
1774 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
1775 | dependencies:
1776 | ms: 2.1.3
1777 | dev: false
1778 |
1779 | /ieee754@1.2.1:
1780 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
1781 | dev: false
1782 |
1783 | /ignore-by-default@2.1.0:
1784 | resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==}
1785 | engines: {node: '>=10 <11 || >=12 <13 || >=14'}
1786 | dev: true
1787 |
1788 | /ignore@5.3.0:
1789 | resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
1790 | engines: {node: '>= 4'}
1791 | dev: true
1792 |
1793 | /imurmurhash@0.1.4:
1794 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1795 | engines: {node: '>=0.8.19'}
1796 | dev: true
1797 |
1798 | /indent-string@5.0.0:
1799 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
1800 | engines: {node: '>=12'}
1801 | dev: true
1802 |
1803 | /inflight@1.0.6:
1804 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1805 | dependencies:
1806 | once: 1.4.0
1807 | wrappy: 1.0.2
1808 | dev: true
1809 |
1810 | /inherits@2.0.4:
1811 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1812 | dev: true
1813 |
1814 | /ipaddr.js@1.9.1:
1815 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
1816 | engines: {node: '>= 0.10'}
1817 | dev: false
1818 |
1819 | /irregular-plurals@3.5.0:
1820 | resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==}
1821 | engines: {node: '>=8'}
1822 | dev: true
1823 |
1824 | /is-buffer@1.1.6:
1825 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
1826 | dev: false
1827 |
1828 | /is-extglob@2.1.1:
1829 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1830 | engines: {node: '>=0.10.0'}
1831 | dev: true
1832 |
1833 | /is-fullwidth-code-point@3.0.0:
1834 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1835 | engines: {node: '>=8'}
1836 | dev: true
1837 |
1838 | /is-fullwidth-code-point@4.0.0:
1839 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
1840 | engines: {node: '>=12'}
1841 | dev: true
1842 |
1843 | /is-glob@4.0.3:
1844 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1845 | engines: {node: '>=0.10.0'}
1846 | dependencies:
1847 | is-extglob: 2.1.1
1848 | dev: true
1849 |
1850 | /is-number@7.0.0:
1851 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1852 | engines: {node: '>=0.12.0'}
1853 | dev: true
1854 |
1855 | /is-plain-object@5.0.0:
1856 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
1857 | engines: {node: '>=0.10.0'}
1858 | dev: true
1859 |
1860 | /is-promise@4.0.0:
1861 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
1862 | dev: true
1863 |
1864 | /is-stream@3.0.0:
1865 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
1866 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1867 | dev: true
1868 |
1869 | /is-unicode-supported@2.0.0:
1870 | resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
1871 | engines: {node: '>=18'}
1872 | dev: true
1873 |
1874 | /isexe@2.0.0:
1875 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1876 | dev: true
1877 |
1878 | /js-string-escape@1.0.1:
1879 | resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==}
1880 | engines: {node: '>= 0.8'}
1881 | dev: true
1882 |
1883 | /js-tokens@4.0.0:
1884 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1885 | dev: true
1886 |
1887 | /js-yaml@3.14.1:
1888 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
1889 | hasBin: true
1890 | dependencies:
1891 | argparse: 1.0.10
1892 | esprima: 4.0.1
1893 | dev: true
1894 |
1895 | /jsesc@2.5.2:
1896 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
1897 | engines: {node: '>=4'}
1898 | hasBin: true
1899 | dev: true
1900 |
1901 | /json-schema-ref-resolver@1.0.1:
1902 | resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==}
1903 | dependencies:
1904 | fast-deep-equal: 3.1.3
1905 | dev: false
1906 |
1907 | /json-schema-traverse@1.0.0:
1908 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
1909 | dev: false
1910 |
1911 | /json5@2.2.3:
1912 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1913 | engines: {node: '>=6'}
1914 | hasBin: true
1915 | dev: true
1916 |
1917 | /jsonc-parser@3.2.1:
1918 | resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
1919 | dev: true
1920 |
1921 | /light-my-request@5.11.0:
1922 | resolution: {integrity: sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==}
1923 | dependencies:
1924 | cookie: 0.5.0
1925 | process-warning: 2.3.2
1926 | set-cookie-parser: 2.6.0
1927 | dev: false
1928 |
1929 | /load-json-file@7.0.1:
1930 | resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==}
1931 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1932 | dev: true
1933 |
1934 | /local-pkg@0.5.0:
1935 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
1936 | engines: {node: '>=14'}
1937 | dependencies:
1938 | mlly: 1.5.0
1939 | pkg-types: 1.0.3
1940 | dev: true
1941 |
1942 | /lodash@4.17.21:
1943 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1944 | dev: true
1945 |
1946 | /loupe@2.3.7:
1947 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
1948 | dependencies:
1949 | get-func-name: 2.0.2
1950 | dev: true
1951 |
1952 | /lru-cache@5.1.1:
1953 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1954 | dependencies:
1955 | yallist: 3.1.1
1956 | dev: true
1957 |
1958 | /lru-cache@6.0.0:
1959 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1960 | engines: {node: '>=10'}
1961 | dependencies:
1962 | yallist: 4.0.0
1963 |
1964 | /magic-string@0.30.5:
1965 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
1966 | engines: {node: '>=12'}
1967 | dependencies:
1968 | '@jridgewell/sourcemap-codec': 1.4.15
1969 | dev: true
1970 |
1971 | /make-dir@3.1.0:
1972 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
1973 | engines: {node: '>=8'}
1974 | dependencies:
1975 | semver: 6.3.1
1976 | dev: true
1977 |
1978 | /matcher@5.0.0:
1979 | resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==}
1980 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1981 | dependencies:
1982 | escape-string-regexp: 5.0.0
1983 | dev: true
1984 |
1985 | /md5-hex@3.0.1:
1986 | resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==}
1987 | engines: {node: '>=8'}
1988 | dependencies:
1989 | blueimp-md5: 2.19.0
1990 | dev: true
1991 |
1992 | /md5@2.3.0:
1993 | resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
1994 | dependencies:
1995 | charenc: 0.0.2
1996 | crypt: 0.0.2
1997 | is-buffer: 1.1.6
1998 | dev: false
1999 |
2000 | /memoize@10.0.0:
2001 | resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==}
2002 | engines: {node: '>=18'}
2003 | dependencies:
2004 | mimic-function: 5.0.0
2005 | dev: true
2006 |
2007 | /merge-stream@2.0.0:
2008 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2009 | dev: true
2010 |
2011 | /merge2@1.4.1:
2012 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2013 | engines: {node: '>= 8'}
2014 | dev: true
2015 |
2016 | /micromatch@4.0.5:
2017 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2018 | engines: {node: '>=8.6'}
2019 | dependencies:
2020 | braces: 3.0.2
2021 | picomatch: 2.3.1
2022 | dev: true
2023 |
2024 | /mime-db@1.52.0:
2025 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
2026 | engines: {node: '>= 0.6'}
2027 | dev: false
2028 |
2029 | /mime-types@2.1.35:
2030 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
2031 | engines: {node: '>= 0.6'}
2032 | dependencies:
2033 | mime-db: 1.52.0
2034 | dev: false
2035 |
2036 | /mimic-fn@4.0.0:
2037 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
2038 | engines: {node: '>=12'}
2039 | dev: true
2040 |
2041 | /mimic-function@5.0.0:
2042 | resolution: {integrity: sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==}
2043 | engines: {node: '>=18'}
2044 | dev: true
2045 |
2046 | /minimatch@3.1.2:
2047 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2048 | dependencies:
2049 | brace-expansion: 1.1.11
2050 | dev: true
2051 |
2052 | /minimist@1.2.8:
2053 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2054 | dev: true
2055 |
2056 | /minipass@3.3.6:
2057 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
2058 | engines: {node: '>=8'}
2059 | dependencies:
2060 | yallist: 4.0.0
2061 | dev: true
2062 |
2063 | /minipass@5.0.0:
2064 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
2065 | engines: {node: '>=8'}
2066 | dev: true
2067 |
2068 | /minizlib@2.1.2:
2069 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
2070 | engines: {node: '>= 8'}
2071 | dependencies:
2072 | minipass: 3.3.6
2073 | yallist: 4.0.0
2074 | dev: true
2075 |
2076 | /mkdirp@1.0.4:
2077 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
2078 | engines: {node: '>=10'}
2079 | hasBin: true
2080 | dev: true
2081 |
2082 | /mlly@1.5.0:
2083 | resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==}
2084 | dependencies:
2085 | acorn: 8.11.3
2086 | pathe: 1.1.2
2087 | pkg-types: 1.0.3
2088 | ufo: 1.3.2
2089 | dev: true
2090 |
2091 | /ms@2.1.2:
2092 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2093 |
2094 | /ms@2.1.3:
2095 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2096 |
2097 | /nanoid@3.3.7:
2098 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
2099 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2100 | hasBin: true
2101 | dev: true
2102 |
2103 | /node-domexception@1.0.0:
2104 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
2105 | engines: {node: '>=10.5.0'}
2106 | dev: false
2107 |
2108 | /node-fetch@2.7.0:
2109 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
2110 | engines: {node: 4.x || >=6.0.0}
2111 | peerDependencies:
2112 | encoding: ^0.1.0
2113 | peerDependenciesMeta:
2114 | encoding:
2115 | optional: true
2116 | dependencies:
2117 | whatwg-url: 5.0.0
2118 |
2119 | /node-gyp-build@4.8.0:
2120 | resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==}
2121 | hasBin: true
2122 | dev: true
2123 |
2124 | /node-releases@2.0.14:
2125 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
2126 | dev: true
2127 |
2128 | /nofilter@3.1.0:
2129 | resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==}
2130 | engines: {node: '>=12.19'}
2131 | dev: true
2132 |
2133 | /nopt@5.0.0:
2134 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
2135 | engines: {node: '>=6'}
2136 | hasBin: true
2137 | dependencies:
2138 | abbrev: 1.1.1
2139 | dev: true
2140 |
2141 | /npm-run-path@5.2.0:
2142 | resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==}
2143 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2144 | dependencies:
2145 | path-key: 4.0.0
2146 | dev: true
2147 |
2148 | /npmlog@5.0.1:
2149 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
2150 | dependencies:
2151 | are-we-there-yet: 2.0.0
2152 | console-control-strings: 1.1.0
2153 | gauge: 3.0.2
2154 | set-blocking: 2.0.0
2155 | dev: true
2156 |
2157 | /object-assign@4.1.1:
2158 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2159 | engines: {node: '>=0.10.0'}
2160 | dev: true
2161 |
2162 | /on-exit-leak-free@2.1.2:
2163 | resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
2164 | engines: {node: '>=14.0.0'}
2165 | dev: false
2166 |
2167 | /once@1.4.0:
2168 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2169 | dependencies:
2170 | wrappy: 1.0.2
2171 | dev: true
2172 |
2173 | /onetime@6.0.0:
2174 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
2175 | engines: {node: '>=12'}
2176 | dependencies:
2177 | mimic-fn: 4.0.0
2178 | dev: true
2179 |
2180 | /openai@4.26.0:
2181 | resolution: {integrity: sha512-HPC7tgYdeP38F3uHA5WgnoXZyGbAp9jgcIo23p6It+q/07u4C+NZ8xHKlMShsPbDDmFRpPsa3vdbXYpbhJH3eg==}
2182 | hasBin: true
2183 | dependencies:
2184 | '@types/node': 18.19.14
2185 | '@types/node-fetch': 2.6.11
2186 | abort-controller: 3.0.0
2187 | agentkeepalive: 4.5.0
2188 | digest-fetch: 1.3.0
2189 | form-data-encoder: 1.7.2
2190 | formdata-node: 4.4.1
2191 | node-fetch: 2.7.0
2192 | web-streams-polyfill: 3.3.2
2193 | transitivePeerDependencies:
2194 | - encoding
2195 | dev: false
2196 |
2197 | /p-limit@5.0.0:
2198 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
2199 | engines: {node: '>=18'}
2200 | dependencies:
2201 | yocto-queue: 1.0.0
2202 | dev: true
2203 |
2204 | /p-map@7.0.1:
2205 | resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==}
2206 | engines: {node: '>=18'}
2207 | dev: true
2208 |
2209 | /package-config@5.0.0:
2210 | resolution: {integrity: sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==}
2211 | engines: {node: '>=18'}
2212 | dependencies:
2213 | find-up-simple: 1.0.0
2214 | load-json-file: 7.0.1
2215 | dev: true
2216 |
2217 | /parse-ms@4.0.0:
2218 | resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
2219 | engines: {node: '>=18'}
2220 | dev: true
2221 |
2222 | /path-is-absolute@1.0.1:
2223 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2224 | engines: {node: '>=0.10.0'}
2225 | dev: true
2226 |
2227 | /path-key@3.1.1:
2228 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2229 | engines: {node: '>=8'}
2230 | dev: true
2231 |
2232 | /path-key@4.0.0:
2233 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
2234 | engines: {node: '>=12'}
2235 | dev: true
2236 |
2237 | /path-type@5.0.0:
2238 | resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
2239 | engines: {node: '>=12'}
2240 | dev: true
2241 |
2242 | /pathe@1.1.2:
2243 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
2244 | dev: true
2245 |
2246 | /pathval@1.1.1:
2247 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
2248 | dev: true
2249 |
2250 | /picocolors@1.0.0:
2251 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2252 | dev: true
2253 |
2254 | /picomatch@2.3.1:
2255 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2256 | engines: {node: '>=8.6'}
2257 | dev: true
2258 |
2259 | /picomatch@3.0.1:
2260 | resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==}
2261 | engines: {node: '>=10'}
2262 | dev: true
2263 |
2264 | /pino-abstract-transport@1.1.0:
2265 | resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
2266 | dependencies:
2267 | readable-stream: 4.5.2
2268 | split2: 4.2.0
2269 | dev: false
2270 |
2271 | /pino-std-serializers@6.2.2:
2272 | resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
2273 | dev: false
2274 |
2275 | /pino@8.18.0:
2276 | resolution: {integrity: sha512-Mz/gKiRyuXu4HnpHgi1YWdHQCoWMufapzooisvFn78zl4dZciAxS+YeRkUxXl1ee/SzU80YCz1zpECCh4oC6Aw==}
2277 | hasBin: true
2278 | dependencies:
2279 | atomic-sleep: 1.0.0
2280 | fast-redact: 3.3.0
2281 | on-exit-leak-free: 2.1.2
2282 | pino-abstract-transport: 1.1.0
2283 | pino-std-serializers: 6.2.2
2284 | process-warning: 3.0.0
2285 | quick-format-unescaped: 4.0.4
2286 | real-require: 0.2.0
2287 | safe-stable-stringify: 2.4.3
2288 | sonic-boom: 3.8.0
2289 | thread-stream: 2.4.1
2290 | dev: false
2291 |
2292 | /pkg-types@1.0.3:
2293 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
2294 | dependencies:
2295 | jsonc-parser: 3.2.1
2296 | mlly: 1.5.0
2297 | pathe: 1.1.2
2298 | dev: true
2299 |
2300 | /plur@5.1.0:
2301 | resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==}
2302 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2303 | dependencies:
2304 | irregular-plurals: 3.5.0
2305 | dev: true
2306 |
2307 | /postcss@8.4.33:
2308 | resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
2309 | engines: {node: ^10 || ^12 || >=14}
2310 | dependencies:
2311 | nanoid: 3.3.7
2312 | picocolors: 1.0.0
2313 | source-map-js: 1.0.2
2314 | dev: true
2315 |
2316 | /prettier@3.2.4:
2317 | resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
2318 | engines: {node: '>=14'}
2319 | hasBin: true
2320 | dev: true
2321 |
2322 | /pretty-format@29.7.0:
2323 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
2324 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2325 | dependencies:
2326 | '@jest/schemas': 29.6.3
2327 | ansi-styles: 5.2.0
2328 | react-is: 18.2.0
2329 | dev: true
2330 |
2331 | /pretty-ms@9.0.0:
2332 | resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==}
2333 | engines: {node: '>=18'}
2334 | dependencies:
2335 | parse-ms: 4.0.0
2336 | dev: true
2337 |
2338 | /process-warning@2.3.2:
2339 | resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==}
2340 | dev: false
2341 |
2342 | /process-warning@3.0.0:
2343 | resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
2344 | dev: false
2345 |
2346 | /process@0.11.10:
2347 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
2348 | engines: {node: '>= 0.6.0'}
2349 | dev: false
2350 |
2351 | /proxy-addr@2.0.7:
2352 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
2353 | engines: {node: '>= 0.10'}
2354 | dependencies:
2355 | forwarded: 0.2.0
2356 | ipaddr.js: 1.9.1
2357 | dev: false
2358 |
2359 | /punycode@2.3.1:
2360 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2361 | engines: {node: '>=6'}
2362 | dev: false
2363 |
2364 | /queue-microtask@1.2.3:
2365 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2366 | dev: true
2367 |
2368 | /quick-format-unescaped@4.0.4:
2369 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
2370 | dev: false
2371 |
2372 | /react-is@18.2.0:
2373 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
2374 | dev: true
2375 |
2376 | /readable-stream@3.6.2:
2377 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
2378 | engines: {node: '>= 6'}
2379 | dependencies:
2380 | inherits: 2.0.4
2381 | string_decoder: 1.3.0
2382 | util-deprecate: 1.0.2
2383 | dev: true
2384 |
2385 | /readable-stream@4.5.2:
2386 | resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
2387 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2388 | dependencies:
2389 | abort-controller: 3.0.0
2390 | buffer: 6.0.3
2391 | events: 3.3.0
2392 | process: 0.11.10
2393 | string_decoder: 1.3.0
2394 | dev: false
2395 |
2396 | /real-require@0.2.0:
2397 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
2398 | engines: {node: '>= 12.13.0'}
2399 | dev: false
2400 |
2401 | /require-directory@2.1.1:
2402 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
2403 | engines: {node: '>=0.10.0'}
2404 | dev: true
2405 |
2406 | /require-from-string@2.0.2:
2407 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
2408 | engines: {node: '>=0.10.0'}
2409 | dev: false
2410 |
2411 | /resolve-cwd@3.0.0:
2412 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
2413 | engines: {node: '>=8'}
2414 | dependencies:
2415 | resolve-from: 5.0.0
2416 | dev: true
2417 |
2418 | /resolve-from@5.0.0:
2419 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
2420 | engines: {node: '>=8'}
2421 | dev: true
2422 |
2423 | /resolve-pkg-maps@1.0.0:
2424 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2425 | dev: true
2426 |
2427 | /ret@0.2.2:
2428 | resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==}
2429 | engines: {node: '>=4'}
2430 | dev: false
2431 |
2432 | /reusify@1.0.4:
2433 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2434 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2435 |
2436 | /rfdc@1.3.1:
2437 | resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
2438 | dev: false
2439 |
2440 | /rimraf@3.0.2:
2441 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2442 | hasBin: true
2443 | dependencies:
2444 | glob: 7.2.3
2445 | dev: true
2446 |
2447 | /rollup@4.9.6:
2448 | resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==}
2449 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
2450 | hasBin: true
2451 | dependencies:
2452 | '@types/estree': 1.0.5
2453 | optionalDependencies:
2454 | '@rollup/rollup-android-arm-eabi': 4.9.6
2455 | '@rollup/rollup-android-arm64': 4.9.6
2456 | '@rollup/rollup-darwin-arm64': 4.9.6
2457 | '@rollup/rollup-darwin-x64': 4.9.6
2458 | '@rollup/rollup-linux-arm-gnueabihf': 4.9.6
2459 | '@rollup/rollup-linux-arm64-gnu': 4.9.6
2460 | '@rollup/rollup-linux-arm64-musl': 4.9.6
2461 | '@rollup/rollup-linux-riscv64-gnu': 4.9.6
2462 | '@rollup/rollup-linux-x64-gnu': 4.9.6
2463 | '@rollup/rollup-linux-x64-musl': 4.9.6
2464 | '@rollup/rollup-win32-arm64-msvc': 4.9.6
2465 | '@rollup/rollup-win32-ia32-msvc': 4.9.6
2466 | '@rollup/rollup-win32-x64-msvc': 4.9.6
2467 | fsevents: 2.3.3
2468 | dev: true
2469 |
2470 | /run-parallel@1.2.0:
2471 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2472 | dependencies:
2473 | queue-microtask: 1.2.3
2474 | dev: true
2475 |
2476 | /safe-buffer@5.2.1:
2477 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
2478 |
2479 | /safe-regex2@2.0.0:
2480 | resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==}
2481 | dependencies:
2482 | ret: 0.2.2
2483 | dev: false
2484 |
2485 | /safe-stable-stringify@2.4.3:
2486 | resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
2487 | engines: {node: '>=10'}
2488 | dev: false
2489 |
2490 | /secure-json-parse@2.7.0:
2491 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
2492 | dev: false
2493 |
2494 | /semver@6.3.1:
2495 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2496 | hasBin: true
2497 | dev: true
2498 |
2499 | /semver@7.5.4:
2500 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
2501 | engines: {node: '>=10'}
2502 | hasBin: true
2503 | dependencies:
2504 | lru-cache: 6.0.0
2505 |
2506 | /serialize-error@7.0.1:
2507 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
2508 | engines: {node: '>=10'}
2509 | dependencies:
2510 | type-fest: 0.13.1
2511 | dev: true
2512 |
2513 | /set-blocking@2.0.0:
2514 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
2515 | dev: true
2516 |
2517 | /set-cookie-parser@2.6.0:
2518 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
2519 | dev: false
2520 |
2521 | /shebang-command@2.0.0:
2522 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2523 | engines: {node: '>=8'}
2524 | dependencies:
2525 | shebang-regex: 3.0.0
2526 | dev: true
2527 |
2528 | /shebang-regex@3.0.0:
2529 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2530 | engines: {node: '>=8'}
2531 | dev: true
2532 |
2533 | /siginfo@2.0.0:
2534 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
2535 | dev: true
2536 |
2537 | /signal-exit@3.0.7:
2538 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
2539 | dev: true
2540 |
2541 | /signal-exit@4.1.0:
2542 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2543 | engines: {node: '>=14'}
2544 | dev: true
2545 |
2546 | /slash@5.1.0:
2547 | resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
2548 | engines: {node: '>=14.16'}
2549 | dev: true
2550 |
2551 | /slice-ansi@5.0.0:
2552 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
2553 | engines: {node: '>=12'}
2554 | dependencies:
2555 | ansi-styles: 6.2.1
2556 | is-fullwidth-code-point: 4.0.0
2557 | dev: true
2558 |
2559 | /sonic-boom@3.8.0:
2560 | resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==}
2561 | dependencies:
2562 | atomic-sleep: 1.0.0
2563 | dev: false
2564 |
2565 | /source-map-js@1.0.2:
2566 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
2567 | engines: {node: '>=0.10.0'}
2568 | dev: true
2569 |
2570 | /split2@4.2.0:
2571 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
2572 | engines: {node: '>= 10.x'}
2573 | dev: false
2574 |
2575 | /sprintf-js@1.0.3:
2576 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
2577 | dev: true
2578 |
2579 | /stack-utils@2.0.6:
2580 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
2581 | engines: {node: '>=10'}
2582 | dependencies:
2583 | escape-string-regexp: 2.0.0
2584 | dev: true
2585 |
2586 | /stackback@0.0.2:
2587 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
2588 | dev: true
2589 |
2590 | /std-env@3.7.0:
2591 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
2592 | dev: true
2593 |
2594 | /string-width@4.2.3:
2595 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
2596 | engines: {node: '>=8'}
2597 | dependencies:
2598 | emoji-regex: 8.0.0
2599 | is-fullwidth-code-point: 3.0.0
2600 | strip-ansi: 6.0.1
2601 | dev: true
2602 |
2603 | /string-width@7.1.0:
2604 | resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==}
2605 | engines: {node: '>=18'}
2606 | dependencies:
2607 | emoji-regex: 10.3.0
2608 | get-east-asian-width: 1.2.0
2609 | strip-ansi: 7.1.0
2610 | dev: true
2611 |
2612 | /string_decoder@1.3.0:
2613 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
2614 | dependencies:
2615 | safe-buffer: 5.2.1
2616 |
2617 | /strip-ansi@6.0.1:
2618 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2619 | engines: {node: '>=8'}
2620 | dependencies:
2621 | ansi-regex: 5.0.1
2622 | dev: true
2623 |
2624 | /strip-ansi@7.1.0:
2625 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
2626 | engines: {node: '>=12'}
2627 | dependencies:
2628 | ansi-regex: 6.0.1
2629 | dev: true
2630 |
2631 | /strip-final-newline@3.0.0:
2632 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
2633 | engines: {node: '>=12'}
2634 | dev: true
2635 |
2636 | /strip-literal@1.3.0:
2637 | resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
2638 | dependencies:
2639 | acorn: 8.11.3
2640 | dev: true
2641 |
2642 | /supertap@3.0.1:
2643 | resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==}
2644 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2645 | dependencies:
2646 | indent-string: 5.0.0
2647 | js-yaml: 3.14.1
2648 | serialize-error: 7.0.1
2649 | strip-ansi: 7.1.0
2650 | dev: true
2651 |
2652 | /supports-color@5.5.0:
2653 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
2654 | engines: {node: '>=4'}
2655 | dependencies:
2656 | has-flag: 3.0.0
2657 | dev: true
2658 |
2659 | /tar@6.2.0:
2660 | resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
2661 | engines: {node: '>=10'}
2662 | dependencies:
2663 | chownr: 2.0.0
2664 | fs-minipass: 2.1.0
2665 | minipass: 5.0.0
2666 | minizlib: 2.1.2
2667 | mkdirp: 1.0.4
2668 | yallist: 4.0.0
2669 | dev: true
2670 |
2671 | /temp-dir@3.0.0:
2672 | resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
2673 | engines: {node: '>=14.16'}
2674 | dev: true
2675 |
2676 | /thread-stream@2.4.1:
2677 | resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==}
2678 | dependencies:
2679 | real-require: 0.2.0
2680 | dev: false
2681 |
2682 | /time-zone@1.0.0:
2683 | resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
2684 | engines: {node: '>=4'}
2685 | dev: true
2686 |
2687 | /tinybench@2.6.0:
2688 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==}
2689 | dev: true
2690 |
2691 | /tinypool@0.8.2:
2692 | resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==}
2693 | engines: {node: '>=14.0.0'}
2694 | dev: true
2695 |
2696 | /tinyspy@2.2.0:
2697 | resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
2698 | engines: {node: '>=14.0.0'}
2699 | dev: true
2700 |
2701 | /to-fast-properties@2.0.0:
2702 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
2703 | engines: {node: '>=4'}
2704 | dev: true
2705 |
2706 | /to-regex-range@5.0.1:
2707 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2708 | engines: {node: '>=8.0'}
2709 | dependencies:
2710 | is-number: 7.0.0
2711 | dev: true
2712 |
2713 | /toad-cache@3.7.0:
2714 | resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==}
2715 | engines: {node: '>=12'}
2716 | dev: false
2717 |
2718 | /tr46@0.0.3:
2719 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
2720 |
2721 | /tsx@4.7.0:
2722 | resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==}
2723 | engines: {node: '>=18.0.0'}
2724 | hasBin: true
2725 | dependencies:
2726 | esbuild: 0.19.12
2727 | get-tsconfig: 4.7.2
2728 | optionalDependencies:
2729 | fsevents: 2.3.3
2730 | dev: true
2731 |
2732 | /turbo-darwin-64@1.12.2:
2733 | resolution: {integrity: sha512-Aq/ePQ5KNx6XGwlZWTVTqpQYfysm1vkwkI6kAYgrX5DjMWn+tUXrSgNx4YNte0F+V4DQ7PtuWX+jRG0h0ZNg0A==}
2734 | cpu: [x64]
2735 | os: [darwin]
2736 | requiresBuild: true
2737 | dev: true
2738 | optional: true
2739 |
2740 | /turbo-darwin-arm64@1.12.2:
2741 | resolution: {integrity: sha512-wTr+dqkwJo/eXE+4SPTSeNBKyyfQJhI6I9sKVlCSBmtaNEqoGNgdVzgMUdqrg9AIFzLIiKO+zhfskNaSWpVFow==}
2742 | cpu: [arm64]
2743 | os: [darwin]
2744 | requiresBuild: true
2745 | dev: true
2746 | optional: true
2747 |
2748 | /turbo-linux-64@1.12.2:
2749 | resolution: {integrity: sha512-BggBKrLojGarDaa2zBo+kUR3fmjpd6bLA8Unm3Aa2oJw0UvEi3Brd+w9lNsPZHXXQYBUzNUY2gCdxf3RteWb0g==}
2750 | cpu: [x64]
2751 | os: [linux]
2752 | requiresBuild: true
2753 | dev: true
2754 | optional: true
2755 |
2756 | /turbo-linux-arm64@1.12.2:
2757 | resolution: {integrity: sha512-v/apSRvVuwYjq1D9MJFsHv2EpGd1S4VoSdZvVfW6FaM06L8CFZa92urNR1svdGYN28YVKwK9Ikc9qudC6t/d5A==}
2758 | cpu: [arm64]
2759 | os: [linux]
2760 | requiresBuild: true
2761 | dev: true
2762 | optional: true
2763 |
2764 | /turbo-windows-64@1.12.2:
2765 | resolution: {integrity: sha512-3uDdwXcRGkgopYFdPDpxQiuQjfQ12Fxq0fhj+iGymav0eWA4W4wzYwSdlUp6rT22qOBIzaEsrIspRwx1DsMkNg==}
2766 | cpu: [x64]
2767 | os: [win32]
2768 | requiresBuild: true
2769 | dev: true
2770 | optional: true
2771 |
2772 | /turbo-windows-arm64@1.12.2:
2773 | resolution: {integrity: sha512-zNIHnwtQfJSjFi7movwhPQh2rfrcKZ7Xv609EN1yX0gEp9GxooCUi2yNnBQ8wTqFjioA2M5hZtGJQ0RrKaEm/Q==}
2774 | cpu: [arm64]
2775 | os: [win32]
2776 | requiresBuild: true
2777 | dev: true
2778 | optional: true
2779 |
2780 | /turbo@1.12.2:
2781 | resolution: {integrity: sha512-BcoQjBZ+LJCMdjzWhzQflOinUjek28rWXj07aaaAQ8T3Ehs0JFSjIsXOm4qIbo52G4xk3gFVcUtJhh/QRADl7g==}
2782 | hasBin: true
2783 | optionalDependencies:
2784 | turbo-darwin-64: 1.12.2
2785 | turbo-darwin-arm64: 1.12.2
2786 | turbo-linux-64: 1.12.2
2787 | turbo-linux-arm64: 1.12.2
2788 | turbo-windows-64: 1.12.2
2789 | turbo-windows-arm64: 1.12.2
2790 | dev: true
2791 |
2792 | /type-detect@4.0.8:
2793 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
2794 | engines: {node: '>=4'}
2795 | dev: true
2796 |
2797 | /type-fest@0.13.1:
2798 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
2799 | engines: {node: '>=10'}
2800 | dev: true
2801 |
2802 | /typescript@5.3.3:
2803 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
2804 | engines: {node: '>=14.17'}
2805 | hasBin: true
2806 | dev: true
2807 |
2808 | /ufo@1.3.2:
2809 | resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
2810 | dev: true
2811 |
2812 | /undici-types@5.26.5:
2813 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
2814 |
2815 | /unicorn-magic@0.1.0:
2816 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
2817 | engines: {node: '>=18'}
2818 | dev: true
2819 |
2820 | /update-browserslist-db@1.0.13(browserslist@4.22.3):
2821 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
2822 | hasBin: true
2823 | peerDependencies:
2824 | browserslist: '>= 4.21.0'
2825 | dependencies:
2826 | browserslist: 4.22.3
2827 | escalade: 3.1.1
2828 | picocolors: 1.0.0
2829 | dev: true
2830 |
2831 | /uri-js@4.4.1:
2832 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2833 | dependencies:
2834 | punycode: 2.3.1
2835 | dev: false
2836 |
2837 | /util-deprecate@1.0.2:
2838 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
2839 | dev: true
2840 |
2841 | /vite-node@1.2.2(@types/node@20.11.14):
2842 | resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==}
2843 | engines: {node: ^18.0.0 || >=20.0.0}
2844 | hasBin: true
2845 | dependencies:
2846 | cac: 6.7.14
2847 | debug: 4.3.4
2848 | pathe: 1.1.2
2849 | picocolors: 1.0.0
2850 | vite: 5.0.12(@types/node@20.11.14)
2851 | transitivePeerDependencies:
2852 | - '@types/node'
2853 | - less
2854 | - lightningcss
2855 | - sass
2856 | - stylus
2857 | - sugarss
2858 | - supports-color
2859 | - terser
2860 | dev: true
2861 |
2862 | /vite@5.0.12(@types/node@20.11.14):
2863 | resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
2864 | engines: {node: ^18.0.0 || >=20.0.0}
2865 | hasBin: true
2866 | peerDependencies:
2867 | '@types/node': ^18.0.0 || >=20.0.0
2868 | less: '*'
2869 | lightningcss: ^1.21.0
2870 | sass: '*'
2871 | stylus: '*'
2872 | sugarss: '*'
2873 | terser: ^5.4.0
2874 | peerDependenciesMeta:
2875 | '@types/node':
2876 | optional: true
2877 | less:
2878 | optional: true
2879 | lightningcss:
2880 | optional: true
2881 | sass:
2882 | optional: true
2883 | stylus:
2884 | optional: true
2885 | sugarss:
2886 | optional: true
2887 | terser:
2888 | optional: true
2889 | dependencies:
2890 | '@types/node': 20.11.14
2891 | esbuild: 0.19.12
2892 | postcss: 8.4.33
2893 | rollup: 4.9.6
2894 | optionalDependencies:
2895 | fsevents: 2.3.3
2896 | dev: true
2897 |
2898 | /vitest@1.2.2(@types/node@20.11.14):
2899 | resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==}
2900 | engines: {node: ^18.0.0 || >=20.0.0}
2901 | hasBin: true
2902 | peerDependencies:
2903 | '@edge-runtime/vm': '*'
2904 | '@types/node': ^18.0.0 || >=20.0.0
2905 | '@vitest/browser': ^1.0.0
2906 | '@vitest/ui': ^1.0.0
2907 | happy-dom: '*'
2908 | jsdom: '*'
2909 | peerDependenciesMeta:
2910 | '@edge-runtime/vm':
2911 | optional: true
2912 | '@types/node':
2913 | optional: true
2914 | '@vitest/browser':
2915 | optional: true
2916 | '@vitest/ui':
2917 | optional: true
2918 | happy-dom:
2919 | optional: true
2920 | jsdom:
2921 | optional: true
2922 | dependencies:
2923 | '@types/node': 20.11.14
2924 | '@vitest/expect': 1.2.2
2925 | '@vitest/runner': 1.2.2
2926 | '@vitest/snapshot': 1.2.2
2927 | '@vitest/spy': 1.2.2
2928 | '@vitest/utils': 1.2.2
2929 | acorn-walk: 8.3.2
2930 | cac: 6.7.14
2931 | chai: 4.4.1
2932 | debug: 4.3.4
2933 | execa: 8.0.1
2934 | local-pkg: 0.5.0
2935 | magic-string: 0.30.5
2936 | pathe: 1.1.2
2937 | picocolors: 1.0.0
2938 | std-env: 3.7.0
2939 | strip-literal: 1.3.0
2940 | tinybench: 2.6.0
2941 | tinypool: 0.8.2
2942 | vite: 5.0.12(@types/node@20.11.14)
2943 | vite-node: 1.2.2(@types/node@20.11.14)
2944 | why-is-node-running: 2.2.2
2945 | transitivePeerDependencies:
2946 | - less
2947 | - lightningcss
2948 | - sass
2949 | - stylus
2950 | - sugarss
2951 | - supports-color
2952 | - terser
2953 | dev: true
2954 |
2955 | /web-streams-polyfill@3.3.2:
2956 | resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==}
2957 | engines: {node: '>= 8'}
2958 | dev: false
2959 |
2960 | /web-streams-polyfill@4.0.0-beta.3:
2961 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
2962 | engines: {node: '>= 14'}
2963 | dev: false
2964 |
2965 | /webidl-conversions@3.0.1:
2966 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
2967 |
2968 | /well-known-symbols@2.0.0:
2969 | resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}
2970 | engines: {node: '>=6'}
2971 | dev: true
2972 |
2973 | /whatwg-url@5.0.0:
2974 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
2975 | dependencies:
2976 | tr46: 0.0.3
2977 | webidl-conversions: 3.0.1
2978 |
2979 | /which@2.0.2:
2980 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2981 | engines: {node: '>= 8'}
2982 | hasBin: true
2983 | dependencies:
2984 | isexe: 2.0.0
2985 | dev: true
2986 |
2987 | /why-is-node-running@2.2.2:
2988 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
2989 | engines: {node: '>=8'}
2990 | hasBin: true
2991 | dependencies:
2992 | siginfo: 2.0.0
2993 | stackback: 0.0.2
2994 | dev: true
2995 |
2996 | /wide-align@1.1.5:
2997 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
2998 | dependencies:
2999 | string-width: 4.2.3
3000 | dev: true
3001 |
3002 | /wrap-ansi@7.0.0:
3003 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3004 | engines: {node: '>=10'}
3005 | dependencies:
3006 | ansi-styles: 4.3.0
3007 | string-width: 4.2.3
3008 | strip-ansi: 6.0.1
3009 | dev: true
3010 |
3011 | /wrappy@1.0.2:
3012 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3013 | dev: true
3014 |
3015 | /write-file-atomic@5.0.1:
3016 | resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
3017 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
3018 | dependencies:
3019 | imurmurhash: 0.1.4
3020 | signal-exit: 4.1.0
3021 | dev: true
3022 |
3023 | /y18n@5.0.8:
3024 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
3025 | engines: {node: '>=10'}
3026 | dev: true
3027 |
3028 | /yallist@3.1.1:
3029 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
3030 | dev: true
3031 |
3032 | /yallist@4.0.0:
3033 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3034 |
3035 | /yargs-parser@21.1.1:
3036 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
3037 | engines: {node: '>=12'}
3038 | dev: true
3039 |
3040 | /yargs@17.7.2:
3041 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
3042 | engines: {node: '>=12'}
3043 | dependencies:
3044 | cliui: 8.0.1
3045 | escalade: 3.1.1
3046 | get-caller-file: 2.0.5
3047 | require-directory: 2.1.1
3048 | string-width: 4.2.3
3049 | y18n: 5.0.8
3050 | yargs-parser: 21.1.1
3051 | dev: true
3052 |
3053 | /yocto-queue@1.0.0:
3054 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
3055 | engines: {node: '>=12.20'}
3056 | dev: true
3057 |
--------------------------------------------------------------------------------