From 89c86af7efe46bf20592f1376424f1f82f059ea8 Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Fri, 7 Jun 2024 01:07:19 -0500 Subject: [PATCH] feat: transition from chatgpt to agentic --- .env.example | 12 - .github/ISSUE_TEMPLATE/1.bug_report.yml | 34 - .github/ISSUE_TEMPLATE/2.feature_request.yml | 14 - .github/ISSUE_TEMPLATE/config.yml | 5 - .github/funding.yml | 1 - .github/workflows/test.yml | 53 - .husky/pre-commit | 4 - .npmrc | 1 - .prettierignore | 7 - .prettierrc.cjs | 16 - bin/cli.js | 149 - demos/demo-conversation.ts | 69 - demos/demo-gpt-4.ts | 35 - demos/demo-on-progress.ts | 32 - demos/demo-persistence.ts | 71 - demos/demo-reverse-proxy.ts | 79 - demos/demo.ts | 33 - docs/.nojekyll | 1 - docs/classes/ChatGPTAPI.md | 128 - docs/classes/ChatGPTError.md | 99 - docs/classes/ChatGPTUnofficialProxyAPI.md | 104 - docs/interfaces/ChatMessage.md | 96 - .../CreateChatCompletionStreamResponse.md | 100 - .../CreateCompletionStreamResponseUsage.md | 86 - .../openai.ChatCompletionRequestMessage.md | 65 - .../openai.ChatCompletionResponseMessage.md | 48 - ...penai.CreateChatCompletionDeltaResponse.md | 71 - .../openai.CreateChatCompletionRequest.md | 216 - .../openai.CreateChatCompletionResponse.md | 104 - ...reateChatCompletionResponseChoicesInner.md | 59 - .../openai.CreateCompletionResponseUsage.md | 65 - docs/modules.md | 333 - docs/modules/openai.md | 102 - docs/readme.md | 564 - license | 21 - media/demo.gif | Bin 125225 -> 0 bytes media/demo.tape | 76 - media/session-token.png | Bin 211778 -> 0 bytes package-lock.json | 10346 ---------------- package.json | 89 - pnpm-lock.yaml | 3167 ----- readme.md | 565 - src/chatgpt-api.ts | 470 - src/chatgpt-unofficial-proxy-api.ts | 268 - src/fetch-sse.ts | 89 - src/fetch.ts | 5 - src/index.ts | 3 - src/stream-async-iterable.ts | 14 - src/tokenizer.ts | 8 - src/types.ts | 446 - src/utils.ts | 6 - tsconfig.json | 20 - tsup.config.ts | 16 - typedoc.json | 14 - 54 files changed, 18479 deletions(-) delete mode 100644 .env.example delete mode 100644 .github/ISSUE_TEMPLATE/1.bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/2.feature_request.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/funding.yml delete mode 100644 .github/workflows/test.yml delete mode 100755 .husky/pre-commit delete mode 100644 .npmrc delete mode 100644 .prettierignore delete mode 100644 .prettierrc.cjs delete mode 100755 bin/cli.js delete mode 100644 demos/demo-conversation.ts delete mode 100644 demos/demo-gpt-4.ts delete mode 100644 demos/demo-on-progress.ts delete mode 100644 demos/demo-persistence.ts delete mode 100644 demos/demo-reverse-proxy.ts delete mode 100644 demos/demo.ts delete mode 100644 docs/.nojekyll delete mode 100644 docs/classes/ChatGPTAPI.md delete mode 100644 docs/classes/ChatGPTError.md delete mode 100644 docs/classes/ChatGPTUnofficialProxyAPI.md delete mode 100644 docs/interfaces/ChatMessage.md delete mode 100644 docs/interfaces/CreateChatCompletionStreamResponse.md delete mode 100644 docs/interfaces/CreateCompletionStreamResponseUsage.md delete mode 100644 docs/interfaces/openai.ChatCompletionRequestMessage.md delete mode 100644 docs/interfaces/openai.ChatCompletionResponseMessage.md delete mode 100644 docs/interfaces/openai.CreateChatCompletionDeltaResponse.md delete mode 100644 docs/interfaces/openai.CreateChatCompletionRequest.md delete mode 100644 docs/interfaces/openai.CreateChatCompletionResponse.md delete mode 100644 docs/interfaces/openai.CreateChatCompletionResponseChoicesInner.md delete mode 100644 docs/interfaces/openai.CreateCompletionResponseUsage.md delete mode 100644 docs/modules.md delete mode 100644 docs/modules/openai.md delete mode 100644 docs/readme.md delete mode 100644 license delete mode 100644 media/demo.gif delete mode 100644 media/demo.tape delete mode 100644 media/session-token.png delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 pnpm-lock.yaml delete mode 100644 readme.md delete mode 100644 src/chatgpt-api.ts delete mode 100644 src/chatgpt-unofficial-proxy-api.ts delete mode 100644 src/fetch-sse.ts delete mode 100644 src/fetch.ts delete mode 100644 src/index.ts delete mode 100644 src/stream-async-iterable.ts delete mode 100644 src/tokenizer.ts delete mode 100644 src/types.ts delete mode 100644 src/utils.ts delete mode 100644 tsconfig.json delete mode 100644 tsup.config.ts delete mode 100644 typedoc.json diff --git a/.env.example b/.env.example deleted file mode 100644 index 93a9ff8..0000000 --- a/.env.example +++ /dev/null @@ -1,12 +0,0 @@ -# ------------------------------------------------------------------------------ -# This is an example .env file. -# -# All of these environment vars must be defined either in your environment or in -# a local .env file in order to run the demo for this project. -# ------------------------------------------------------------------------------ - -# ----------------------------------------------------------------------------- -# OpenAI -# ----------------------------------------------------------------------------- - -OPENAI_API_KEY= diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml deleted file mode 100644 index ad1a9bb..0000000 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Bug Report -description: Create a bug report -labels: ['template: bug'] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this bug report! - - type: checkboxes - attributes: - label: Verify latest release - description: '`chatgpt@latest` is the latest version of `chatgpt`. Some issues may already be fixed in the latest version, so please verify that your issue reproduces before opening a new issue.' - options: - - label: I verified that the issue exists in the latest `chatgpt` release - required: true - - type: checkboxes - attributes: - label: Verify webapp is working - description: 'Verify that the [ChatGPT webapp](https://chat.openai.com/) is working for you locally using the same browser and account.' - options: - - label: I verify that the ChatGPT webapp is working properly for this account. - required: true - - type: textarea - attributes: - label: Environment details - description: Please enter Node.js version, browser version, and OS version. - validations: - required: true - - type: textarea - attributes: - label: Describe the Bug - description: A clear and concise description of what the bug is and as much detail as possible on how to reproduce it. - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yml b/.github/ISSUE_TEMPLATE/2.feature_request.yml deleted file mode 100644 index c2faeb5..0000000 --- a/.github/ISSUE_TEMPLATE/2.feature_request.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Feature Request -description: Create a feature rqeuest -labels: ['template: enhancement'] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this feature request. - - type: textarea - attributes: - label: Describe the feature - description: What would you like to see added / supported? - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 419f763..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Join the Discord - url: https://discord.gg/HW3EFG6p - about: Ask questions and discuss with other community members diff --git a/.github/funding.yml b/.github/funding.yml deleted file mode 100644 index 9377c23..0000000 --- a/.github/funding.yml +++ /dev/null @@ -1 +0,0 @@ -github: [transitive-bullshit] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index fc85334..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: CI - -on: [push, pull_request] - -jobs: - test: - name: Test Node.js ${{ matrix.node-version }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - node-version: - - 19 - - 18 - - 16 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: Install pnpm - uses: pnpm/action-setup@v2 - id: pnpm-install - with: - version: 7 - run_install: false - - - name: Get pnpm store directory - id: pnpm-cache - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Run test - env: - SESSION_TOKEN: 'fake-session-token-for-CI' - run: pnpm run test diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d4a43dd..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run pre-commit diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 6c59086..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -enable-pre-post-scripts=true diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index c4cdb31..0000000 --- a/.prettierignore +++ /dev/null @@ -1,7 +0,0 @@ -.snapshots/ -build/ -dist/ -node_modules/ -.next/ -.vercel/ -third-party/ \ No newline at end of file diff --git a/.prettierrc.cjs b/.prettierrc.cjs deleted file mode 100644 index 53d6ce4..0000000 --- a/.prettierrc.cjs +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - plugins: [require('@trivago/prettier-plugin-sort-imports')], - singleQuote: true, - jsxSingleQuote: true, - semi: false, - useTabs: false, - tabWidth: 2, - bracketSpacing: true, - bracketSameLine: false, - arrowParens: 'always', - trailingComma: 'none', - importOrder: ['^node:.*', '', '^[./]'], - importOrderSeparation: true, - importOrderSortSpecifiers: true, - importOrderGroupNamespaceSpecifiers: true -} diff --git a/bin/cli.js b/bin/cli.js deleted file mode 100755 index f0f92f2..0000000 --- a/bin/cli.js +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env node -import crypto from 'node:crypto' - -import * as url from 'url' -import { cac } from 'cac' -import Conf from 'conf' -import { readPackageUp } from 'read-pkg-up' - -import { ChatGPTAPI } from '../build/index.js' - -async function main() { - const dirname = url.fileURLToPath(new URL('.', import.meta.url)) - const pkg = await readPackageUp({ cwd: dirname }) - const version = (pkg && pkg.packageJson && pkg.packageJson.version) || '4' - const config = new Conf({ projectName: 'chatgpt' }) - - const cli = cac('chatgpt') - cli - .command('', 'Ask ChatGPT a question') - .option('-c, --continue', 'Continue last conversation', { - default: false - }) - .option('-d, --debug', 'Enables debug logging', { - default: false - }) - .option('-s, --stream', 'Streams the response', { - default: true - }) - .option('-s, --store', 'Enables the local message cache', { - default: true - }) - .option('-t, --timeout ', 'Timeout in milliseconds') - .option('-k, --apiKey ', 'OpenAI API key') - .option('-o, --apiOrg ', 'OpenAI API key') - .option('-m, --model ', 'Model (gpt-3.5-turbo, gpt-4)', { - default: 'gpt-3.5-turbo' - }) - .option('--host ', 'API host base') - .option( - '-n, --conversationName ', - 'Unique name for the conversation' - ) - .action(async (prompt, options) => { - const apiOrg = options.apiOrg || process.env.OPENAI_API_ORG - const apiKey = options.apiKey || process.env.OPENAI_API_KEY - const apiBaseUrl = options.host || process.env.OPENAI_API_BASE_URL - if (!apiKey) { - console.error('error: either set OPENAI_API_KEY or use --apiKey\n') - cli.outputHelp() - process.exit(1) - } - - const apiKeyHash = hash(apiKey) - const conversationName = options.conversationName || 'default' - const conversationKey = `${conversationName}:${apiKeyHash}` - const conversation = - options.continue && options.store - ? config.get(conversationKey, {}) || {} - : {} - const model = options.model - let conversationId = undefined - let parentMessageId = undefined - - if (conversation.lastMessageId) { - const lastMessage = conversation[conversation.lastMessageId] - if (lastMessage) { - conversationId = lastMessage.conversationId - parentMessageId = lastMessage.id - } - } - - if (options.debug) { - console.log('using config', config.path) - } - - const api = new ChatGPTAPI({ - apiKey, - apiOrg, - apiBaseUrl, - debug: options.debug, - completionParams: { - model - }, - getMessageById: async (id) => { - if (options.store) { - return conversation[id] - } else { - return null - } - }, - upsertMessage: async (message) => { - if (options.store) { - conversation[message.id] = message - conversation.lastMessageId = message.id - config.set(conversationKey, conversation) - } - } - }) - - const res = await api.sendMessage(prompt, { - conversationId, - parentMessageId, - timeoutMs: options.timeout || undefined, - onProgress: options.stream - ? (progress) => { - if (progress.delta) { - process.stdout.write(progress.delta) - } - } - : undefined - }) - - if (options.stream) { - process.stdout.write('\n') - } else { - console.log(res.text) - } - }) - - cli.command('rm-cache', 'Clears the local message cache').action(() => { - config.clear() - console.log('cleared cache', config.path) - }) - - cli.command('ls-cache', 'Prints the local message cache path').action(() => { - console.log(config.path) - }) - - cli.help() - cli.version(version) - - try { - cli.parse() - } catch (err) { - console.error(`error: ${err.message}\n`) - cli.outputHelp() - process.exit(1) - } -} - -function hash(d) { - const buffer = Buffer.isBuffer(d) ? d : Buffer.from(d.toString()) - return crypto.createHash('sha256').update(buffer).digest('hex') -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo-conversation.ts b/demos/demo-conversation.ts deleted file mode 100644 index 3cdec43..0000000 --- a/demos/demo-conversation.ts +++ /dev/null @@ -1,69 +0,0 @@ -import dotenv from 'dotenv-safe' -import { oraPromise } from 'ora' - -import { ChatGPTAPI } from '../src' - -dotenv.config() - -/** - * Demo CLI for testing conversation support. - * - * ``` - * npx tsx demos/demo-conversation.ts - * ``` - */ -async function main() { - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - debug: false - }) - - const prompt = 'Write a poem about cats.' - - let res = await oraPromise(api.sendMessage(prompt), { - text: prompt - }) - - console.log('\n' + res.text + '\n') - - const prompt2 = 'Can you make it cuter and shorter?' - - res = await oraPromise( - api.sendMessage(prompt2, { - parentMessageId: res.id - }), - { - text: prompt2 - } - ) - console.log('\n' + res.text + '\n') - - const prompt3 = 'Now write it in French.' - - res = await oraPromise( - api.sendMessage(prompt3, { - parentMessageId: res.id - }), - { - text: prompt3 - } - ) - console.log('\n' + res.text + '\n') - - const prompt4 = 'What were we talking about again?' - - res = await oraPromise( - api.sendMessage(prompt4, { - parentMessageId: res.id - }), - { - text: prompt4 - } - ) - console.log('\n' + res.text + '\n') -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo-gpt-4.ts b/demos/demo-gpt-4.ts deleted file mode 100644 index 5f31251..0000000 --- a/demos/demo-gpt-4.ts +++ /dev/null @@ -1,35 +0,0 @@ -import dotenv from 'dotenv-safe' -import { oraPromise } from 'ora' - -import { ChatGPTAPI } from '../src' - -dotenv.config() - -/** - * Demo CLI for testing the GPT-4 model. - * - * ``` - * npx tsx demos/demo-gpt-4.ts - * ``` - */ -async function main() { - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - debug: true, - completionParams: { - model: 'gpt-4' - } - }) - - const prompt = 'When should you use Python vs TypeScript?' - - const res = await oraPromise(api.sendMessage(prompt), { - text: prompt - }) - console.log(res.text) -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo-on-progress.ts b/demos/demo-on-progress.ts deleted file mode 100644 index 8711645..0000000 --- a/demos/demo-on-progress.ts +++ /dev/null @@ -1,32 +0,0 @@ -import dotenv from 'dotenv-safe' - -import { ChatGPTAPI } from '../src' - -dotenv.config() - -/** - * Demo CLI for testing the `onProgress` streaming support. - * - * ``` - * npx tsx demos/demo-on-progress.ts - * ``` - */ -async function main() { - const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY }) - - const prompt = - 'Write a python version of bubble sort. Do not include example usage.' - - console.log(prompt) - const res = await api.sendMessage(prompt, { - onProgress: (partialResponse) => { - console.log(partialResponse.text) - } - }) - console.log(res.text) -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo-persistence.ts b/demos/demo-persistence.ts deleted file mode 100644 index b1383b8..0000000 --- a/demos/demo-persistence.ts +++ /dev/null @@ -1,71 +0,0 @@ -import KeyvRedis from '@keyv/redis' -import dotenv from 'dotenv-safe' -import Keyv from 'keyv' -import { oraPromise } from 'ora' - -import { ChatGPTAPI, type ChatMessage } from '../src' - -dotenv.config() - -/** - * Demo CLI for testing message persistence with redis. - * - * ``` - * npx tsx demos/demo-persistence.ts - * ``` - */ -async function main() { - const redisUrl = process.env.REDIS_URL || 'redis://localhost:6379' - const store = new KeyvRedis(redisUrl) - const messageStore = new Keyv({ store, namespace: 'chatgpt-demo' }) - - let res: ChatMessage - - { - // create an initial conversation in one client - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - messageStore - }) - - const prompt = 'What are the top 5 anime of all time?' - - res = await oraPromise(api.sendMessage(prompt), { - text: prompt - }) - console.log('\n' + res.text + '\n') - } - - { - // follow up with a second client using the same underlying redis store - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - messageStore - }) - - const prompt = 'Can you give 5 more?' - - res = await oraPromise( - api.sendMessage(prompt, { - parentMessageId: res.id - }), - { - text: prompt - } - ) - console.log('\n' + res.text + '\n') - } - - // wait for redis to finish and then disconnect - await new Promise((resolve) => { - setTimeout(() => { - messageStore.disconnect() - resolve() - }, 1000) - }) -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo-reverse-proxy.ts b/demos/demo-reverse-proxy.ts deleted file mode 100644 index 0b88b5f..0000000 --- a/demos/demo-reverse-proxy.ts +++ /dev/null @@ -1,79 +0,0 @@ -import dotenv from 'dotenv-safe' -import { oraPromise } from 'ora' - -import { ChatGPTUnofficialProxyAPI } from '../src' - -dotenv.config() - -/** - * Demo for testing conversation support using a reverse proxy which provides - * access to the unofficial ChatGPT API. - * - * ``` - * npx tsx demos/demo-reverse-proxy.ts - * ``` - */ -async function main() { - // WARNING: this method will expose your access token to a third-party. Please be - // aware of the risks before using this method. - const api = new ChatGPTUnofficialProxyAPI({ - // optionally override the default reverse proxy URL (or use one of your own...) - // apiReverseProxyUrl: 'https://chat.duti.tech/api/conversation', - // apiReverseProxyUrl: 'https://gpt.pawan.krd/backend-api/conversation', - - accessToken: process.env.OPENAI_ACCESS_TOKEN, - debug: false - }) - - const prompt = 'Write a poem about cats.' - - let res = await oraPromise(api.sendMessage(prompt), { - text: prompt - }) - - console.log('\n' + res.text + '\n') - - const prompt2 = 'Can you make it cuter and shorter?' - - res = await oraPromise( - api.sendMessage(prompt2, { - conversationId: res.conversationId, - parentMessageId: res.id - }), - { - text: prompt2 - } - ) - console.log('\n' + res.text + '\n') - - const prompt3 = 'Now write it in French.' - - res = await oraPromise( - api.sendMessage(prompt3, { - conversationId: res.conversationId, - parentMessageId: res.id - }), - { - text: prompt3 - } - ) - console.log('\n' + res.text + '\n') - - const prompt4 = 'What were we talking about again?' - - res = await oraPromise( - api.sendMessage(prompt4, { - conversationId: res.conversationId, - parentMessageId: res.id - }), - { - text: prompt4 - } - ) - console.log('\n' + res.text + '\n') -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/demos/demo.ts b/demos/demo.ts deleted file mode 100644 index 20f2c1a..0000000 --- a/demos/demo.ts +++ /dev/null @@ -1,33 +0,0 @@ -import dotenv from 'dotenv-safe' -import { oraPromise } from 'ora' - -import { ChatGPTAPI } from '../src' - -dotenv.config() - -/** - * Demo CLI for testing basic functionality. - * - * ``` - * npx tsx demos/demo.ts - * ``` - */ -async function main() { - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - debug: false - }) - - const prompt = - 'Write a python version of bubble sort. Do not include example usage.' - - const res = await oraPromise(api.sendMessage(prompt), { - text: prompt - }) - console.log(res.text) -} - -main().catch((err) => { - console.error(err) - process.exit(1) -}) diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e2ac661..0000000 --- a/docs/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/classes/ChatGPTAPI.md b/docs/classes/ChatGPTAPI.md deleted file mode 100644 index aa5bbf1..0000000 --- a/docs/classes/ChatGPTAPI.md +++ /dev/null @@ -1,128 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / ChatGPTAPI - -# Class: ChatGPTAPI - -## Table of contents - -### Constructors - -- [constructor](ChatGPTAPI.md#constructor) - -### Accessors - -- [apiKey](ChatGPTAPI.md#apikey) -- [apiOrg](ChatGPTAPI.md#apiorg) - -### Methods - -- [sendMessage](ChatGPTAPI.md#sendmessage) - -## Constructors - -### constructor - -• **new ChatGPTAPI**(`opts`) - -Creates a new client wrapper around OpenAI's chat completion API, mimicing the official ChatGPT webapp's functionality as closely as possible. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts` | [`ChatGPTAPIOptions`](../modules.md#chatgptapioptions) | - -#### Defined in - -[src/chatgpt-api.ts:51](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L51) - -## Accessors - -### apiKey - -• `get` **apiKey**(): `string` - -#### Returns - -`string` - -#### Defined in - -[src/chatgpt-api.ts:345](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L345) - -• `set` **apiKey**(`apiKey`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `apiKey` | `string` | - -#### Returns - -`void` - -#### Defined in - -[src/chatgpt-api.ts:349](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L349) - -___ - -### apiOrg - -• `get` **apiOrg**(): `string` - -#### Returns - -`string` - -#### Defined in - -[src/chatgpt-api.ts:353](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L353) - -• `set` **apiOrg**(`apiOrg`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `apiOrg` | `string` | - -#### Returns - -`void` - -#### Defined in - -[src/chatgpt-api.ts:357](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L357) - -## Methods - -### sendMessage - -▸ **sendMessage**(`text`, `opts?`): `Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)\> - -Sends a message to the OpenAI chat completions endpoint, waits for the response -to resolve, and returns the response. - -If you want your response to have historical context, you must provide a valid `parentMessageId`. - -If you want to receive a stream of partial responses, use `opts.onProgress`. - -Set `debug: true` in the `ChatGPTAPI` constructor to log more info on the full prompt sent to the OpenAI chat completions API. You can override the `systemMessage` in `opts` to customize the assistant's instructions. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `text` | `string` | -| `opts` | [`SendMessageOptions`](../modules.md#sendmessageoptions) | - -#### Returns - -`Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)\> - -The response from ChatGPT - -#### Defined in - -[src/chatgpt-api.ts:137](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-api.ts#L137) diff --git a/docs/classes/ChatGPTError.md b/docs/classes/ChatGPTError.md deleted file mode 100644 index a11ffa2..0000000 --- a/docs/classes/ChatGPTError.md +++ /dev/null @@ -1,99 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / ChatGPTError - -# Class: ChatGPTError - -## Hierarchy - -- `Error` - - ↳ **`ChatGPTError`** - -## Table of contents - -### Constructors - -- [constructor](ChatGPTError.md#constructor) - -### Properties - -- [accountId](ChatGPTError.md#accountid) -- [isFinal](ChatGPTError.md#isfinal) -- [statusCode](ChatGPTError.md#statuscode) -- [statusText](ChatGPTError.md#statustext) - -## Constructors - -### constructor - -• **new ChatGPTError**(`message?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message?` | `string` | - -#### Inherited from - -Error.constructor - -#### Defined in - -node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es5.d.ts:1060 - -• **new ChatGPTError**(`message?`, `options?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message?` | `string` | -| `options?` | `ErrorOptions` | - -#### Inherited from - -Error.constructor - -#### Defined in - -node_modules/.pnpm/typescript@5.0.4/node_modules/typescript/lib/lib.es2022.error.d.ts:28 - -## Properties - -### accountId - -• `Optional` **accountId**: `string` - -#### Defined in - -[src/types.ts:86](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L86) - -___ - -### isFinal - -• `Optional` **isFinal**: `boolean` - -#### Defined in - -[src/types.ts:85](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L85) - -___ - -### statusCode - -• `Optional` **statusCode**: `number` - -#### Defined in - -[src/types.ts:83](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L83) - -___ - -### statusText - -• `Optional` **statusText**: `string` - -#### Defined in - -[src/types.ts:84](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L84) diff --git a/docs/classes/ChatGPTUnofficialProxyAPI.md b/docs/classes/ChatGPTUnofficialProxyAPI.md deleted file mode 100644 index 09c82f0..0000000 --- a/docs/classes/ChatGPTUnofficialProxyAPI.md +++ /dev/null @@ -1,104 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / ChatGPTUnofficialProxyAPI - -# Class: ChatGPTUnofficialProxyAPI - -## Table of contents - -### Constructors - -- [constructor](ChatGPTUnofficialProxyAPI.md#constructor) - -### Accessors - -- [accessToken](ChatGPTUnofficialProxyAPI.md#accesstoken) - -### Methods - -- [sendMessage](ChatGPTUnofficialProxyAPI.md#sendmessage) - -## Constructors - -### constructor - -• **new ChatGPTUnofficialProxyAPI**(`opts`) - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `opts` | `Object` | - | -| `opts.accessToken` | `string` | - | -| `opts.apiReverseProxyUrl?` | `string` | **`Default Value`** `https://bypass.duti.tech/api/conversation` * | -| `opts.debug?` | `boolean` | **`Default Value`** `false` * | -| `opts.fetch?` | (`input`: `RequestInfo` \| `URL`, `init?`: `RequestInit`) => `Promise`<`Response`\> | - | -| `opts.headers?` | `Record`<`string`, `string`\> | **`Default Value`** `undefined` * | -| `opts.model?` | `string` | **`Default Value`** `text-davinci-002-render-sha` * | - -#### Defined in - -[src/chatgpt-unofficial-proxy-api.ts:20](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-unofficial-proxy-api.ts#L20) - -## Accessors - -### accessToken - -• `get` **accessToken**(): `string` - -#### Returns - -`string` - -#### Defined in - -[src/chatgpt-unofficial-proxy-api.ts:66](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-unofficial-proxy-api.ts#L66) - -• `set` **accessToken**(`value`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `value` | `string` | - -#### Returns - -`void` - -#### Defined in - -[src/chatgpt-unofficial-proxy-api.ts:70](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-unofficial-proxy-api.ts#L70) - -## Methods - -### sendMessage - -▸ **sendMessage**(`text`, `opts?`): `Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)\> - -Sends a message to ChatGPT, waits for the response to resolve, and returns -the response. - -If you want your response to have historical context, you must provide a valid `parentMessageId`. - -If you want to receive a stream of partial responses, use `opts.onProgress`. -If you want to receive the full response, including message and conversation IDs, -you can use `opts.onConversationResponse` or use the `ChatGPTAPI.getConversation` -helper. - -Set `debug: true` in the `ChatGPTAPI` constructor to log more info on the full prompt sent to the OpenAI completions API. You can override the `promptPrefix` and `promptSuffix` in `opts` to customize the prompt. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `text` | `string` | -| `opts` | [`SendMessageBrowserOptions`](../modules.md#sendmessagebrowseroptions) | - -#### Returns - -`Promise`<[`ChatMessage`](../interfaces/ChatMessage.md)\> - -The response from ChatGPT - -#### Defined in - -[src/chatgpt-unofficial-proxy-api.ts:97](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/chatgpt-unofficial-proxy-api.ts#L97) diff --git a/docs/interfaces/ChatMessage.md b/docs/interfaces/ChatMessage.md deleted file mode 100644 index eb27488..0000000 --- a/docs/interfaces/ChatMessage.md +++ /dev/null @@ -1,96 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / ChatMessage - -# Interface: ChatMessage - -## Table of contents - -### Properties - -- [conversationId](ChatMessage.md#conversationid) -- [delta](ChatMessage.md#delta) -- [detail](ChatMessage.md#detail) -- [id](ChatMessage.md#id) -- [name](ChatMessage.md#name) -- [parentMessageId](ChatMessage.md#parentmessageid) -- [role](ChatMessage.md#role) -- [text](ChatMessage.md#text) - -## Properties - -### conversationId - -• `Optional` **conversationId**: `string` - -#### Defined in - -[src/types.ts:79](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L79) - -___ - -### delta - -• `Optional` **delta**: `string` - -#### Defined in - -[src/types.ts:70](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L70) - -___ - -### detail - -• `Optional` **detail**: [`CreateChatCompletionResponse`](openai.CreateChatCompletionResponse.md) \| [`CreateChatCompletionStreamResponse`](CreateChatCompletionStreamResponse.md) - -#### Defined in - -[src/types.ts:71](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L71) - -___ - -### id - -• **id**: `string` - -#### Defined in - -[src/types.ts:66](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L66) - -___ - -### name - -• `Optional` **name**: `string` - -#### Defined in - -[src/types.ts:69](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L69) - -___ - -### parentMessageId - -• `Optional` **parentMessageId**: `string` - -#### Defined in - -[src/types.ts:76](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L76) - -___ - -### role - -• **role**: [`Role`](../modules.md#role) - -#### Defined in - -[src/types.ts:68](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L68) - -___ - -### text - -• **text**: `string` - -#### Defined in - -[src/types.ts:67](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L67) diff --git a/docs/interfaces/CreateChatCompletionStreamResponse.md b/docs/interfaces/CreateChatCompletionStreamResponse.md deleted file mode 100644 index 77dd2c6..0000000 --- a/docs/interfaces/CreateChatCompletionStreamResponse.md +++ /dev/null @@ -1,100 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / CreateChatCompletionStreamResponse - -# Interface: CreateChatCompletionStreamResponse - -## Hierarchy - -- [`CreateChatCompletionDeltaResponse`](openai.CreateChatCompletionDeltaResponse.md) - - ↳ **`CreateChatCompletionStreamResponse`** - -## Table of contents - -### Properties - -- [choices](CreateChatCompletionStreamResponse.md#choices) -- [created](CreateChatCompletionStreamResponse.md#created) -- [id](CreateChatCompletionStreamResponse.md#id) -- [model](CreateChatCompletionStreamResponse.md#model) -- [object](CreateChatCompletionStreamResponse.md#object) -- [usage](CreateChatCompletionStreamResponse.md#usage) - -## Properties - -### choices - -• **choices**: [{ `delta`: { `content?`: `string` ; `role`: [`Role`](../modules.md#role) } ; `finish_reason`: `string` ; `index`: `number` }] - -#### Inherited from - -[CreateChatCompletionDeltaResponse](openai.CreateChatCompletionDeltaResponse.md).[choices](openai.CreateChatCompletionDeltaResponse.md#choices) - -#### Defined in - -[src/types.ts:198](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L198) - -___ - -### created - -• **created**: `number` - -#### Inherited from - -[CreateChatCompletionDeltaResponse](openai.CreateChatCompletionDeltaResponse.md).[created](openai.CreateChatCompletionDeltaResponse.md#created) - -#### Defined in - -[src/types.ts:196](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L196) - -___ - -### id - -• **id**: `string` - -#### Inherited from - -[CreateChatCompletionDeltaResponse](openai.CreateChatCompletionDeltaResponse.md).[id](openai.CreateChatCompletionDeltaResponse.md#id) - -#### Defined in - -[src/types.ts:194](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L194) - -___ - -### model - -• **model**: `string` - -#### Inherited from - -[CreateChatCompletionDeltaResponse](openai.CreateChatCompletionDeltaResponse.md).[model](openai.CreateChatCompletionDeltaResponse.md#model) - -#### Defined in - -[src/types.ts:197](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L197) - -___ - -### object - -• **object**: ``"chat.completion.chunk"`` - -#### Inherited from - -[CreateChatCompletionDeltaResponse](openai.CreateChatCompletionDeltaResponse.md).[object](openai.CreateChatCompletionDeltaResponse.md#object) - -#### Defined in - -[src/types.ts:195](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L195) - -___ - -### usage - -• **usage**: [`CreateCompletionStreamResponseUsage`](CreateCompletionStreamResponseUsage.md) - -#### Defined in - -[src/types.ts:97](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L97) diff --git a/docs/interfaces/CreateCompletionStreamResponseUsage.md b/docs/interfaces/CreateCompletionStreamResponseUsage.md deleted file mode 100644 index 8b56c86..0000000 --- a/docs/interfaces/CreateCompletionStreamResponseUsage.md +++ /dev/null @@ -1,86 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / CreateCompletionStreamResponseUsage - -# Interface: CreateCompletionStreamResponseUsage - -**`Export`** - -CreateCompletionResponseUsage - -## Hierarchy - -- [`CreateCompletionResponseUsage`](openai.CreateCompletionResponseUsage.md) - - ↳ **`CreateCompletionStreamResponseUsage`** - -## Table of contents - -### Properties - -- [completion\_tokens](CreateCompletionStreamResponseUsage.md#completion_tokens) -- [estimated](CreateCompletionStreamResponseUsage.md#estimated) -- [prompt\_tokens](CreateCompletionStreamResponseUsage.md#prompt_tokens) -- [total\_tokens](CreateCompletionStreamResponseUsage.md#total_tokens) - -## Properties - -### completion\_tokens - -• **completion\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Inherited from - -[CreateCompletionResponseUsage](openai.CreateCompletionResponseUsage.md).[completion_tokens](openai.CreateCompletionResponseUsage.md#completion_tokens) - -#### Defined in - -[src/types.ts:438](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L438) - -___ - -### estimated - -• **estimated**: ``true`` - -#### Defined in - -[src/types.ts:102](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L102) - -___ - -### prompt\_tokens - -• **prompt\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Inherited from - -[CreateCompletionResponseUsage](openai.CreateCompletionResponseUsage.md).[prompt_tokens](openai.CreateCompletionResponseUsage.md#prompt_tokens) - -#### Defined in - -[src/types.ts:432](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L432) - -___ - -### total\_tokens - -• **total\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Inherited from - -[CreateCompletionResponseUsage](openai.CreateCompletionResponseUsage.md).[total_tokens](openai.CreateCompletionResponseUsage.md#total_tokens) - -#### Defined in - -[src/types.ts:444](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L444) diff --git a/docs/interfaces/openai.ChatCompletionRequestMessage.md b/docs/interfaces/openai.ChatCompletionRequestMessage.md deleted file mode 100644 index b3f9781..0000000 --- a/docs/interfaces/openai.ChatCompletionRequestMessage.md +++ /dev/null @@ -1,65 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / ChatCompletionRequestMessage - -# Interface: ChatCompletionRequestMessage - -[openai](../modules/openai.md).ChatCompletionRequestMessage - -**`Export`** - -ChatCompletionRequestMessage - -## Table of contents - -### Properties - -- [content](openai.ChatCompletionRequestMessage.md#content) -- [name](openai.ChatCompletionRequestMessage.md#name) -- [role](openai.ChatCompletionRequestMessage.md#role) - -## Properties - -### content - -• **content**: `string` - -The contents of the message - -**`Memberof`** - -ChatCompletionRequestMessage - -#### Defined in - -[src/types.ts:227](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L227) - -___ - -### name - -• `Optional` **name**: `string` - -The name of the user in a multi-user chat - -**`Memberof`** - -ChatCompletionRequestMessage - -#### Defined in - -[src/types.ts:233](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L233) - -___ - -### role - -• **role**: [`ChatCompletionRequestMessageRoleEnum`](../modules/openai.md#chatcompletionrequestmessageroleenum-1) - -The role of the author of this message. - -**`Memberof`** - -ChatCompletionRequestMessage - -#### Defined in - -[src/types.ts:221](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L221) diff --git a/docs/interfaces/openai.ChatCompletionResponseMessage.md b/docs/interfaces/openai.ChatCompletionResponseMessage.md deleted file mode 100644 index 6247b5d..0000000 --- a/docs/interfaces/openai.ChatCompletionResponseMessage.md +++ /dev/null @@ -1,48 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / ChatCompletionResponseMessage - -# Interface: ChatCompletionResponseMessage - -[openai](../modules/openai.md).ChatCompletionResponseMessage - -**`Export`** - -ChatCompletionResponseMessage - -## Table of contents - -### Properties - -- [content](openai.ChatCompletionResponseMessage.md#content) -- [role](openai.ChatCompletionResponseMessage.md#role) - -## Properties - -### content - -• **content**: `string` - -The contents of the message - -**`Memberof`** - -ChatCompletionResponseMessage - -#### Defined in - -[src/types.ts:259](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L259) - -___ - -### role - -• **role**: [`ChatCompletionResponseMessageRoleEnum`](../modules/openai.md#chatcompletionresponsemessageroleenum-1) - -The role of the author of this message. - -**`Memberof`** - -ChatCompletionResponseMessage - -#### Defined in - -[src/types.ts:253](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L253) diff --git a/docs/interfaces/openai.CreateChatCompletionDeltaResponse.md b/docs/interfaces/openai.CreateChatCompletionDeltaResponse.md deleted file mode 100644 index fd2b72a..0000000 --- a/docs/interfaces/openai.CreateChatCompletionDeltaResponse.md +++ /dev/null @@ -1,71 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / CreateChatCompletionDeltaResponse - -# Interface: CreateChatCompletionDeltaResponse - -[openai](../modules/openai.md).CreateChatCompletionDeltaResponse - -## Hierarchy - -- **`CreateChatCompletionDeltaResponse`** - - ↳ [`CreateChatCompletionStreamResponse`](CreateChatCompletionStreamResponse.md) - -## Table of contents - -### Properties - -- [choices](openai.CreateChatCompletionDeltaResponse.md#choices) -- [created](openai.CreateChatCompletionDeltaResponse.md#created) -- [id](openai.CreateChatCompletionDeltaResponse.md#id) -- [model](openai.CreateChatCompletionDeltaResponse.md#model) -- [object](openai.CreateChatCompletionDeltaResponse.md#object) - -## Properties - -### choices - -• **choices**: [{ `delta`: { `content?`: `string` ; `role`: [`Role`](../modules.md#role) } ; `finish_reason`: `string` ; `index`: `number` }] - -#### Defined in - -[src/types.ts:198](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L198) - -___ - -### created - -• **created**: `number` - -#### Defined in - -[src/types.ts:196](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L196) - -___ - -### id - -• **id**: `string` - -#### Defined in - -[src/types.ts:194](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L194) - -___ - -### model - -• **model**: `string` - -#### Defined in - -[src/types.ts:197](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L197) - -___ - -### object - -• **object**: ``"chat.completion.chunk"`` - -#### Defined in - -[src/types.ts:195](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L195) diff --git a/docs/interfaces/openai.CreateChatCompletionRequest.md b/docs/interfaces/openai.CreateChatCompletionRequest.md deleted file mode 100644 index a75e654..0000000 --- a/docs/interfaces/openai.CreateChatCompletionRequest.md +++ /dev/null @@ -1,216 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / CreateChatCompletionRequest - -# Interface: CreateChatCompletionRequest - -[openai](../modules/openai.md).CreateChatCompletionRequest - -**`Export`** - -CreateChatCompletionRequest - -## Table of contents - -### Properties - -- [frequency\_penalty](openai.CreateChatCompletionRequest.md#frequency_penalty) -- [logit\_bias](openai.CreateChatCompletionRequest.md#logit_bias) -- [max\_tokens](openai.CreateChatCompletionRequest.md#max_tokens) -- [messages](openai.CreateChatCompletionRequest.md#messages) -- [model](openai.CreateChatCompletionRequest.md#model) -- [n](openai.CreateChatCompletionRequest.md#n) -- [presence\_penalty](openai.CreateChatCompletionRequest.md#presence_penalty) -- [stop](openai.CreateChatCompletionRequest.md#stop) -- [stream](openai.CreateChatCompletionRequest.md#stream) -- [temperature](openai.CreateChatCompletionRequest.md#temperature) -- [top\_p](openai.CreateChatCompletionRequest.md#top_p) -- [user](openai.CreateChatCompletionRequest.md#user) - -## Properties - -### frequency\_penalty - -• `Optional` **frequency\_penalty**: `number` - -Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model\'s likelihood to repeat the same line verbatim. [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:333](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L333) - -___ - -### logit\_bias - -• `Optional` **logit\_bias**: `object` - -Modify the likelihood of specified tokens appearing in the completion. Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:339](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L339) - -___ - -### max\_tokens - -• `Optional` **max\_tokens**: `number` - -The maximum number of tokens allowed for the generated answer. By default, the number of tokens the model can return will be (4096 - prompt tokens). - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:321](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L321) - -___ - -### messages - -• **messages**: [`ChatCompletionRequestMessage`](openai.ChatCompletionRequestMessage.md)[] - -The messages to generate chat completions for, in the [chat format](/docs/guides/chat/introduction). - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:285](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L285) - -___ - -### model - -• **model**: `string` - -ID of the model to use. Currently, only `gpt-3.5-turbo` and `gpt-3.5-turbo-0301` are supported. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:279](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L279) - -___ - -### n - -• `Optional` **n**: `number` - -How many chat completion choices to generate for each input message. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:303](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L303) - -___ - -### presence\_penalty - -• `Optional` **presence\_penalty**: `number` - -Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model\'s likelihood to talk about new topics. [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:327](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L327) - -___ - -### stop - -• `Optional` **stop**: [`CreateChatCompletionRequestStop`](../modules/openai.md#createchatcompletionrequeststop) - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:315](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L315) - -___ - -### stream - -• `Optional` **stream**: `boolean` - -If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:309](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L309) - -___ - -### temperature - -• `Optional` **temperature**: `number` - -What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:291](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L291) - -___ - -### top\_p - -• `Optional` **top\_p**: `number` - -An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or `temperature` but not both. - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:297](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L297) - -___ - -### user - -• `Optional` **user**: `string` - -A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids). - -**`Memberof`** - -CreateChatCompletionRequest - -#### Defined in - -[src/types.ts:345](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L345) diff --git a/docs/interfaces/openai.CreateChatCompletionResponse.md b/docs/interfaces/openai.CreateChatCompletionResponse.md deleted file mode 100644 index 9ac7af2..0000000 --- a/docs/interfaces/openai.CreateChatCompletionResponse.md +++ /dev/null @@ -1,104 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / CreateChatCompletionResponse - -# Interface: CreateChatCompletionResponse - -[openai](../modules/openai.md).CreateChatCompletionResponse - -**`Export`** - -CreateChatCompletionResponse - -## Table of contents - -### Properties - -- [choices](openai.CreateChatCompletionResponse.md#choices) -- [created](openai.CreateChatCompletionResponse.md#created) -- [id](openai.CreateChatCompletionResponse.md#id) -- [model](openai.CreateChatCompletionResponse.md#model) -- [object](openai.CreateChatCompletionResponse.md#object) -- [usage](openai.CreateChatCompletionResponse.md#usage) - -## Properties - -### choices - -• **choices**: [`CreateChatCompletionResponseChoicesInner`](openai.CreateChatCompletionResponseChoicesInner.md)[] - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:388](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L388) - -___ - -### created - -• **created**: `number` - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:376](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L376) - -___ - -### id - -• **id**: `string` - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:364](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L364) - -___ - -### model - -• **model**: `string` - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:382](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L382) - -___ - -### object - -• **object**: `string` - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:370](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L370) - -___ - -### usage - -• `Optional` **usage**: [`CreateCompletionResponseUsage`](openai.CreateCompletionResponseUsage.md) - -**`Memberof`** - -CreateChatCompletionResponse - -#### Defined in - -[src/types.ts:394](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L394) diff --git a/docs/interfaces/openai.CreateChatCompletionResponseChoicesInner.md b/docs/interfaces/openai.CreateChatCompletionResponseChoicesInner.md deleted file mode 100644 index 9f0d0a0..0000000 --- a/docs/interfaces/openai.CreateChatCompletionResponseChoicesInner.md +++ /dev/null @@ -1,59 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / CreateChatCompletionResponseChoicesInner - -# Interface: CreateChatCompletionResponseChoicesInner - -[openai](../modules/openai.md).CreateChatCompletionResponseChoicesInner - -**`Export`** - -CreateChatCompletionResponseChoicesInner - -## Table of contents - -### Properties - -- [finish\_reason](openai.CreateChatCompletionResponseChoicesInner.md#finish_reason) -- [index](openai.CreateChatCompletionResponseChoicesInner.md#index) -- [message](openai.CreateChatCompletionResponseChoicesInner.md#message) - -## Properties - -### finish\_reason - -• `Optional` **finish\_reason**: `string` - -**`Memberof`** - -CreateChatCompletionResponseChoicesInner - -#### Defined in - -[src/types.ts:419](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L419) - -___ - -### index - -• `Optional` **index**: `number` - -**`Memberof`** - -CreateChatCompletionResponseChoicesInner - -#### Defined in - -[src/types.ts:407](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L407) - -___ - -### message - -• `Optional` **message**: [`ChatCompletionResponseMessage`](openai.ChatCompletionResponseMessage.md) - -**`Memberof`** - -CreateChatCompletionResponseChoicesInner - -#### Defined in - -[src/types.ts:413](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L413) diff --git a/docs/interfaces/openai.CreateCompletionResponseUsage.md b/docs/interfaces/openai.CreateCompletionResponseUsage.md deleted file mode 100644 index fb4ab91..0000000 --- a/docs/interfaces/openai.CreateCompletionResponseUsage.md +++ /dev/null @@ -1,65 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / [openai](../modules/openai.md) / CreateCompletionResponseUsage - -# Interface: CreateCompletionResponseUsage - -[openai](../modules/openai.md).CreateCompletionResponseUsage - -**`Export`** - -CreateCompletionResponseUsage - -## Hierarchy - -- **`CreateCompletionResponseUsage`** - - ↳ [`CreateCompletionStreamResponseUsage`](CreateCompletionStreamResponseUsage.md) - -## Table of contents - -### Properties - -- [completion\_tokens](openai.CreateCompletionResponseUsage.md#completion_tokens) -- [prompt\_tokens](openai.CreateCompletionResponseUsage.md#prompt_tokens) -- [total\_tokens](openai.CreateCompletionResponseUsage.md#total_tokens) - -## Properties - -### completion\_tokens - -• **completion\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Defined in - -[src/types.ts:438](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L438) - -___ - -### prompt\_tokens - -• **prompt\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Defined in - -[src/types.ts:432](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L432) - -___ - -### total\_tokens - -• **total\_tokens**: `number` - -**`Memberof`** - -CreateCompletionResponseUsage - -#### Defined in - -[src/types.ts:444](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L444) diff --git a/docs/modules.md b/docs/modules.md deleted file mode 100644 index 1e43248..0000000 --- a/docs/modules.md +++ /dev/null @@ -1,333 +0,0 @@ -[chatgpt](readme.md) / Exports - -# chatgpt - -## Table of contents - -### Namespaces - -- [openai](modules/openai.md) - -### Classes - -- [ChatGPTAPI](classes/ChatGPTAPI.md) -- [ChatGPTError](classes/ChatGPTError.md) -- [ChatGPTUnofficialProxyAPI](classes/ChatGPTUnofficialProxyAPI.md) - -### Interfaces - -- [ChatMessage](interfaces/ChatMessage.md) -- [CreateChatCompletionStreamResponse](interfaces/CreateChatCompletionStreamResponse.md) -- [CreateCompletionStreamResponseUsage](interfaces/CreateCompletionStreamResponseUsage.md) - -### Type Aliases - -- [ChatGPTAPIOptions](modules.md#chatgptapioptions) -- [ContentType](modules.md#contenttype) -- [ConversationJSONBody](modules.md#conversationjsonbody) -- [ConversationResponseEvent](modules.md#conversationresponseevent) -- [FetchFn](modules.md#fetchfn) -- [GetMessageByIdFunction](modules.md#getmessagebyidfunction) -- [Message](modules.md#message) -- [MessageActionType](modules.md#messageactiontype) -- [MessageContent](modules.md#messagecontent) -- [MessageMetadata](modules.md#messagemetadata) -- [Prompt](modules.md#prompt) -- [PromptContent](modules.md#promptcontent) -- [Role](modules.md#role) -- [SendMessageBrowserOptions](modules.md#sendmessagebrowseroptions) -- [SendMessageOptions](modules.md#sendmessageoptions) -- [UpsertMessageFunction](modules.md#upsertmessagefunction) - -## Type Aliases - -### ChatGPTAPIOptions - -Ƭ **ChatGPTAPIOptions**: `Object` - -#### Type declaration - -| Name | Type | Description | -| :------ | :------ | :------ | -| `apiBaseUrl?` | `string` | **`Default Value`** `'https://api.openai.com'` * | -| `apiKey` | `string` | - | -| `apiOrg?` | `string` | - | -| `completionParams?` | `Partial`<`Omit`<[`CreateChatCompletionRequest`](interfaces/openai.CreateChatCompletionRequest.md), ``"messages"`` \| ``"n"`` \| ``"stream"``\>\> | - | -| `debug?` | `boolean` | **`Default Value`** `false` * | -| `fetch?` | [`FetchFn`](modules.md#fetchfn) | - | -| `getMessageById?` | [`GetMessageByIdFunction`](modules.md#getmessagebyidfunction) | - | -| `maxModelTokens?` | `number` | **`Default Value`** `4096` * | -| `maxResponseTokens?` | `number` | **`Default Value`** `1000` * | -| `messageStore?` | `Keyv` | - | -| `systemMessage?` | `string` | - | -| `upsertMessage?` | [`UpsertMessageFunction`](modules.md#upsertmessagefunction) | - | - -#### Defined in - -[src/types.ts:7](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L7) - -___ - -### ContentType - -Ƭ **ContentType**: ``"text"`` - -#### Defined in - -[src/types.ts:152](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L152) - -___ - -### ConversationJSONBody - -Ƭ **ConversationJSONBody**: `Object` - -https://chat.openapi.com/backend-api/conversation - -#### Type declaration - -| Name | Type | Description | -| :------ | :------ | :------ | -| `action` | `string` | The action to take | -| `conversation_id?` | `string` | The ID of the conversation | -| `messages` | [`Prompt`](modules.md#prompt)[] | Prompts to provide | -| `model` | `string` | The model to use | -| `parent_message_id` | `string` | The parent message ID | - -#### Defined in - -[src/types.ts:108](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L108) - -___ - -### ConversationResponseEvent - -Ƭ **ConversationResponseEvent**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `conversation_id?` | `string` | -| `error?` | `string` \| ``null`` | -| `message?` | [`Message`](modules.md#message) | - -#### Defined in - -[src/types.ts:166](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L166) - -___ - -### FetchFn - -Ƭ **FetchFn**: typeof `fetch` - -#### Defined in - -[src/types.ts:5](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L5) - -___ - -### GetMessageByIdFunction - -Ƭ **GetMessageByIdFunction**: (`id`: `string`) => `Promise`<[`ChatMessage`](interfaces/ChatMessage.md)\> - -#### Type declaration - -▸ (`id`): `Promise`<[`ChatMessage`](interfaces/ChatMessage.md)\> - -Returns a chat message from a store by it's ID (or null if not found). - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `id` | `string` | - -##### Returns - -`Promise`<[`ChatMessage`](interfaces/ChatMessage.md)\> - -#### Defined in - -[src/types.ts:90](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L90) - -___ - -### Message - -Ƭ **Message**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `content` | [`MessageContent`](modules.md#messagecontent) | -| `create_time` | `string` \| ``null`` | -| `end_turn` | ``null`` | -| `id` | `string` | -| `metadata` | [`MessageMetadata`](modules.md#messagemetadata) | -| `recipient` | `string` | -| `role` | [`Role`](modules.md#role) | -| `update_time` | `string` \| ``null`` | -| `user` | `string` \| ``null`` | -| `weight` | `number` | - -#### Defined in - -[src/types.ts:172](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L172) - -___ - -### MessageActionType - -Ƭ **MessageActionType**: ``"next"`` \| ``"variant"`` - -#### Defined in - -[src/types.ts:53](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L53) - -___ - -### MessageContent - -Ƭ **MessageContent**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `content_type` | `string` | -| `parts` | `string`[] | - -#### Defined in - -[src/types.ts:185](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L185) - -___ - -### MessageMetadata - -Ƭ **MessageMetadata**: `any` - -#### Defined in - -[src/types.ts:190](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L190) - -___ - -### Prompt - -Ƭ **Prompt**: `Object` - -#### Type declaration - -| Name | Type | Description | -| :------ | :------ | :------ | -| `content` | [`PromptContent`](modules.md#promptcontent) | The content of the prompt | -| `id` | `string` | The ID of the prompt | -| `role` | [`Role`](modules.md#role) | The role played in the prompt | - -#### Defined in - -[src/types.ts:135](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L135) - -___ - -### PromptContent - -Ƭ **PromptContent**: `Object` - -#### Type declaration - -| Name | Type | Description | -| :------ | :------ | :------ | -| `content_type` | [`ContentType`](modules.md#contenttype) | The content type of the prompt | -| `parts` | `string`[] | The parts to the prompt | - -#### Defined in - -[src/types.ts:154](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L154) - -___ - -### Role - -Ƭ **Role**: ``"user"`` \| ``"assistant"`` \| ``"system"`` - -#### Defined in - -[src/types.ts:3](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L3) - -___ - -### SendMessageBrowserOptions - -Ƭ **SendMessageBrowserOptions**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `abortSignal?` | `AbortSignal` | -| `action?` | [`MessageActionType`](modules.md#messageactiontype) | -| `conversationId?` | `string` | -| `messageId?` | `string` | -| `onProgress?` | (`partialResponse`: [`ChatMessage`](interfaces/ChatMessage.md)) => `void` | -| `parentMessageId?` | `string` | -| `timeoutMs?` | `number` | - -#### Defined in - -[src/types.ts:55](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L55) - -___ - -### SendMessageOptions - -Ƭ **SendMessageOptions**: `Object` - -#### Type declaration - -| Name | Type | Description | -| :------ | :------ | :------ | -| `abortSignal?` | `AbortSignal` | - | -| `completionParams?` | `Partial`<`Omit`<[`CreateChatCompletionRequest`](interfaces/openai.CreateChatCompletionRequest.md), ``"messages"`` \| ``"n"`` \| ``"stream"``\>\> | - | -| `conversationId?` | `string` | - | -| `messageId?` | `string` | - | -| `name?` | `string` | The name of a user in a multi-user chat. | -| `onProgress?` | (`partialResponse`: [`ChatMessage`](interfaces/ChatMessage.md)) => `void` | - | -| `parentMessageId?` | `string` | - | -| `stream?` | `boolean` | - | -| `systemMessage?` | `string` | - | -| `timeoutMs?` | `number` | - | - -#### Defined in - -[src/types.ts:37](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L37) - -___ - -### UpsertMessageFunction - -Ƭ **UpsertMessageFunction**: (`message`: [`ChatMessage`](interfaces/ChatMessage.md)) => `Promise`<`void`\> - -#### Type declaration - -▸ (`message`): `Promise`<`void`\> - -Upserts a chat message to a store. - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | [`ChatMessage`](interfaces/ChatMessage.md) | - -##### Returns - -`Promise`<`void`\> - -#### Defined in - -[src/types.ts:93](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L93) diff --git a/docs/modules/openai.md b/docs/modules/openai.md deleted file mode 100644 index c35bcbb..0000000 --- a/docs/modules/openai.md +++ /dev/null @@ -1,102 +0,0 @@ -[chatgpt](../readme.md) / [Exports](../modules.md) / openai - -# Namespace: openai - -## Table of contents - -### Interfaces - -- [ChatCompletionRequestMessage](../interfaces/openai.ChatCompletionRequestMessage.md) -- [ChatCompletionResponseMessage](../interfaces/openai.ChatCompletionResponseMessage.md) -- [CreateChatCompletionDeltaResponse](../interfaces/openai.CreateChatCompletionDeltaResponse.md) -- [CreateChatCompletionRequest](../interfaces/openai.CreateChatCompletionRequest.md) -- [CreateChatCompletionResponse](../interfaces/openai.CreateChatCompletionResponse.md) -- [CreateChatCompletionResponseChoicesInner](../interfaces/openai.CreateChatCompletionResponseChoicesInner.md) -- [CreateCompletionResponseUsage](../interfaces/openai.CreateCompletionResponseUsage.md) - -### Type Aliases - -- [ChatCompletionRequestMessageRoleEnum](openai.md#chatcompletionrequestmessageroleenum) -- [ChatCompletionResponseMessageRoleEnum](openai.md#chatcompletionresponsemessageroleenum) -- [CreateChatCompletionRequestStop](openai.md#createchatcompletionrequeststop) - -### Variables - -- [ChatCompletionRequestMessageRoleEnum](openai.md#chatcompletionrequestmessageroleenum-1) -- [ChatCompletionResponseMessageRoleEnum](openai.md#chatcompletionresponsemessageroleenum-1) - -## Type Aliases - -### ChatCompletionRequestMessageRoleEnum - -Ƭ **ChatCompletionRequestMessageRoleEnum**: typeof [`ChatCompletionRequestMessageRoleEnum`](openai.md#chatcompletionrequestmessageroleenum-1)[keyof typeof [`ChatCompletionRequestMessageRoleEnum`](openai.md#chatcompletionrequestmessageroleenum-1)] - -#### Defined in - -[src/types.ts:235](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L235) - -[src/types.ts:240](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L240) - -___ - -### ChatCompletionResponseMessageRoleEnum - -Ƭ **ChatCompletionResponseMessageRoleEnum**: typeof [`ChatCompletionResponseMessageRoleEnum`](openai.md#chatcompletionresponsemessageroleenum-1)[keyof typeof [`ChatCompletionResponseMessageRoleEnum`](openai.md#chatcompletionresponsemessageroleenum-1)] - -#### Defined in - -[src/types.ts:261](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L261) - -[src/types.ts:266](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L266) - -___ - -### CreateChatCompletionRequestStop - -Ƭ **CreateChatCompletionRequestStop**: `string`[] \| `string` - -**`Export`** - -#### Defined in - -[src/types.ts:352](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L352) - -## Variables - -### ChatCompletionRequestMessageRoleEnum - -• `Const` **ChatCompletionRequestMessageRoleEnum**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `Assistant` | ``"assistant"`` | -| `System` | ``"system"`` | -| `User` | ``"user"`` | - -#### Defined in - -[src/types.ts:235](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L235) - -[src/types.ts:240](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L240) - -___ - -### ChatCompletionResponseMessageRoleEnum - -• `Const` **ChatCompletionResponseMessageRoleEnum**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `Assistant` | ``"assistant"`` | -| `System` | ``"system"`` | -| `User` | ``"user"`` | - -#### Defined in - -[src/types.ts:261](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L261) - -[src/types.ts:266](https://github.com/transitive-bullshit/chatgpt-api/blob/fb06beb/src/types.ts#L266) diff --git a/docs/readme.md b/docs/readme.md deleted file mode 100644 index 375355c..0000000 --- a/docs/readme.md +++ /dev/null @@ -1,564 +0,0 @@ -chatgpt / [Exports](modules.md) - -# ChatGPT API - -> Node.js client for the official [ChatGPT](https://openai.com/blog/chatgpt/) API. - -[![NPM](https://img.shields.io/npm/v/chatgpt.svg)](https://www.npmjs.com/package/chatgpt) [![Build Status](https://github.com/transitive-bullshit/chatgpt-api/actions/workflows/test.yml/badge.svg)](https://github.com/transitive-bullshit/chatgpt-api/actions/workflows/test.yml) [![MIT License](https://img.shields.io/badge/license-MIT-blue)](https://github.com/transitive-bullshit/chatgpt-api/blob/main/license) [![Prettier Code Formatting](https://img.shields.io/badge/code_style-prettier-brightgreen.svg)](https://prettier.io) - -- [Intro](#intro) -- [Updates](#updates) -- [CLI](#cli) -- [Install](#install) -- [Usage](#usage) - - [Usage - ChatGPTAPI](#usage---chatgptapi) - - [Usage - ChatGPTUnofficialProxyAPI](#usage---chatgptunofficialproxyapi) - - [Reverse Proxy](#reverse-proxy) - - [Access Token](#access-token) -- [Docs](#docs) -- [Demos](#demos) -- [Projects](#projects) -- [Compatibility](#compatibility) -- [Credits](#credits) -- [License](#license) - -## Intro - -This package is a Node.js wrapper around [ChatGPT](https://openai.com/blog/chatgpt) by [OpenAI](https://openai.com). TS batteries included. ✨ - -

- Example usage -

- -## Updates - -
-April 10, 2023 - -
- -This package now **fully supports GPT-4**! 🔥 - -We also just released a [TypeScript chatgpt-plugin package](https://github.com/transitive-bullshit/chatgpt-plugin-ts) which contains helpers and examples to make it as easy as possible to start building your own ChatGPT Plugins in JS/TS. Even if you don't have developer access to ChatGPT Plugins yet, you can still use the [chatgpt-plugin](https://github.com/transitive-bullshit/chatgpt-plugin-ts) repo to get a head start on building your own plugins locally. - -If you have access to the `gpt-4` model, you can run the following to test out the CLI with GPT-4: - -```bash -npx chatgpt@latest --model gpt-4 "Hello world" -``` - -

- Using the chatgpt CLI with gpt-4 -

- -We still support both the official ChatGPT API and the unofficial proxy API, but we now recommend using the official API since it's significantly more robust and supports **GPT-4**. - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | ------- | ------------------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models + GPT-4 | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ❌ No️ | ✅ ChatGPT webapp | - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI. We will likely remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -
- -
-Previous Updates - -
- -
-March 1, 2023 - -
- -The [official OpenAI chat completions API](https://platform.openai.com/docs/guides/chat) has been released, and it is now the default for this package! 🔥 - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | -------- | ----------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ☑️ Maybe | ✅ Real ChatGPT | - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI. We may remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -
- -
-Feb 19, 2023 - -
- -We now provide three ways of accessing the unofficial ChatGPT API, all of which have tradeoffs: - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | -------- | ----------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ☑️ Mimics ChatGPT | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ☑️ Maybe | ✅ Real ChatGPT | -| `ChatGPTAPIBrowser` (v3) | ✅ Yes | ❌ No | ✅ Real ChatGPT | - -**Note**: I recommend that you use either `ChatGPTAPI` or `ChatGPTUnofficialProxyAPI`. - -1. `ChatGPTAPI` - (Used to use) `text-davinci-003` to mimic ChatGPT via the official OpenAI completions API (most robust approach, but it's not free and doesn't use a model fine-tuned for chat) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) -3. `ChatGPTAPIBrowser` - (_deprecated_; v3.5.1 of this package) Uses Puppeteer to access the official ChatGPT webapp (uses the real ChatGPT, but very flaky, heavyweight, and error prone) - -
- -
-Feb 5, 2023 - -
- -OpenAI has disabled the leaked chat model we were previously using, so we're now defaulting to `text-davinci-003`, which is not free. - -We've found several other hidden, fine-tuned chat models, but OpenAI keeps disabling them, so we're searching for alternative workarounds. - -
- -
-Feb 1, 2023 - -
- -This package no longer requires any browser hacks – **it is now using the official OpenAI completions API** with a leaked model that ChatGPT uses under the hood. 🔥 - -```ts -import { ChatGPTAPI } from 'chatgpt' - -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY -}) - -const res = await api.sendMessage('Hello World!') -console.log(res.text) -``` - -Please upgrade to `chatgpt@latest` (at least [v4.0.0](https://github.com/transitive-bullshit/chatgpt-api/releases/tag/v4.0.0)). The updated version is **significantly more lightweight and robust** compared with previous versions. You also don't have to worry about IP issues or rate limiting. - -Huge shoutout to [@waylaidwanderer](https://github.com/waylaidwanderer) for discovering the leaked chat model! - -
-
- -If you run into any issues, we do have a pretty active [ChatGPT Hackers Discord](https://www.chatgpthackers.dev/) with over 8k developers from the Node.js & Python communities. - -Lastly, please consider starring this repo and following me on twitter twitter to help support the project. - -Thanks && cheers, -[Travis](https://twitter.com/transitive_bs) - -## CLI - -To run the CLI, you'll need an [OpenAI API key](https://platform.openai.com/overview): - -```bash -export OPENAI_API_KEY="sk-TODO" -npx chatgpt "your prompt here" -``` - -By default, the response is streamed to stdout, the results are stored in a local config file, and every invocation starts a new conversation. You can use `-c` to continue the previous conversation and `--no-stream` to disable streaming. - -``` -Usage: - $ chatgpt - -Commands: - Ask ChatGPT a question - rm-cache Clears the local message cache - ls-cache Prints the local message cache path - -For more info, run any command with the `--help` flag: - $ chatgpt --help - $ chatgpt rm-cache --help - $ chatgpt ls-cache --help - -Options: - -c, --continue Continue last conversation (default: false) - -d, --debug Enables debug logging (default: false) - -s, --stream Streams the response (default: true) - -s, --store Enables the local message cache (default: true) - -t, --timeout Timeout in milliseconds - -k, --apiKey OpenAI API key - -o, --apiOrg OpenAI API organization - -n, --conversationName Unique name for the conversation - -h, --help Display this message - -v, --version Display version number -``` - -If you have access to the `gpt-4` model, you can run the following to test out the CLI with GPT-4: - -

- Using the chatgpt CLI with gpt-4 -

- -## Install - -```bash -npm install chatgpt -``` - -Make sure you're using `node >= 18` so `fetch` is available (or `node >= 14` if you install a [fetch polyfill](https://github.com/developit/unfetch#usage-as-a-polyfill)). - -## Usage - -To use this module from Node.js, you need to pick between two methods: - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | ------- | ------------------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models + GPT-4 | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ❌ No️ | ✅ Real ChatGPT webapp | - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free). You can override the model, completion params, and system message to fully customize your assistant. - -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -Both approaches have very similar APIs, so it should be simple to swap between them. - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI and it also supports `gpt-4`. We will likely remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -### Usage - ChatGPTAPI - -Sign up for an [OpenAI API key](https://platform.openai.com/overview) and store it in your environment. - -```ts -import { ChatGPTAPI } from 'chatgpt' - -async function example() { - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY - }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -You can override the default `model` (`gpt-3.5-turbo`) and any [OpenAI chat completion params](https://platform.openai.com/docs/api-reference/chat/create) using `completionParams`: - -```ts -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - completionParams: { - model: 'gpt-4', - temperature: 0.5, - top_p: 0.8 - } -}) -``` - -If you want to track the conversation, you'll need to pass the `parentMessageId` like this: - -```ts -const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY }) - -// send a message and wait for the response -let res = await api.sendMessage('What is OpenAI?') -console.log(res.text) - -// send a follow-up -res = await api.sendMessage('Can you expand on that?', { - parentMessageId: res.id -}) -console.log(res.text) - -// send another follow-up -res = await api.sendMessage('What were we talking about?', { - parentMessageId: res.id -}) -console.log(res.text) -``` - -You can add streaming via the `onProgress` handler: - -```ts -const res = await api.sendMessage('Write a 500 word essay on frogs.', { - // print the partial response as the AI is "typing" - onProgress: (partialResponse) => console.log(partialResponse.text) -}) - -// print the full text at the end -console.log(res.text) -``` - -You can add a timeout using the `timeoutMs` option: - -```ts -// timeout after 2 minutes (which will also abort the underlying HTTP request) -const response = await api.sendMessage( - 'write me a really really long essay on frogs', - { - timeoutMs: 2 * 60 * 1000 - } -) -``` - -If you want to see more info about what's actually being sent to [OpenAI's chat completions API](https://platform.openai.com/docs/api-reference/chat/create), set the `debug: true` option in the `ChatGPTAPI` constructor: - -```ts -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - debug: true -}) -``` - -We default to a basic `systemMessage`. You can override this in either the `ChatGPTAPI` constructor or `sendMessage`: - -```ts -const res = await api.sendMessage('what is the answer to the universe?', { - systemMessage: `You are ChatGPT, a large language model trained by OpenAI. You answer as concisely as possible for each responseIf you are generating a list, do not have too many items. -Current date: ${new Date().toISOString()}\n\n` -}) -``` - -Note that we automatically handle appending the previous messages to the prompt and attempt to optimize for the available tokens (which defaults to `4096`). - -
-Usage in CommonJS (Dynamic import) - -```js -async function example() { - // To use ESM in CommonJS, you can use a dynamic import like this: - const { ChatGPTAPI } = await import('chatgpt') - // You can also try dynamic importing like this: - // const importDynamic = new Function('modulePath', 'return import(modulePath)') - // const { ChatGPTAPI } = await importDynamic('chatgpt') - - const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -
- -### Usage - ChatGPTUnofficialProxyAPI - -The API for `ChatGPTUnofficialProxyAPI` is almost exactly the same. You just need to provide a ChatGPT `accessToken` instead of an OpenAI API key. - -```ts -import { ChatGPTUnofficialProxyAPI } from 'chatgpt' - -async function example() { - const api = new ChatGPTUnofficialProxyAPI({ - accessToken: process.env.OPENAI_ACCESS_TOKEN - }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -See [demos/demo-reverse-proxy](./demos/demo-reverse-proxy.ts) for a full example: - -```bash -npx tsx demos/demo-reverse-proxy.ts -``` - -`ChatGPTUnofficialProxyAPI` messages also contain a `conversationid` in addition to `parentMessageId`, since the ChatGPT webapp can't reference messages across different accounts & conversations. - -#### Reverse Proxy - -You can override the reverse proxy by passing `apiReverseProxyUrl`: - -```ts -const api = new ChatGPTUnofficialProxyAPI({ - accessToken: process.env.OPENAI_ACCESS_TOKEN, - apiReverseProxyUrl: 'https://your-example-server.com/api/conversation' -}) -``` - -Known reverse proxies run by community members include: - -| Reverse Proxy URL | Author | Rate Limits | Last Checked | -| ------------------------------------------------- | -------------------------------------------- | ---------------------------- | ------------ | -| `https://ai.fakeopen.com/api/conversation` | [@pengzhile](https://github.com/pengzhile) | 5 req / 10 seconds by IP | 4/18/2023 | -| `https://api.pawan.krd/backend-api/conversation` | [@PawanOsman](https://github.com/PawanOsman) | 50 req / 15 seconds (~3 r/s) | 3/23/2023 | - -Note: info on how the reverse proxies work is not being published at this time in order to prevent OpenAI from disabling access. - -#### Access Token - -To use `ChatGPTUnofficialProxyAPI`, you'll need an OpenAI access token from the ChatGPT webapp. To do this, you can use any of the following methods which take an `email` and `password` and return an access token: - -- Node.js libs - - [ericlewis/openai-authenticator](https://github.com/ericlewis/openai-authenticator) - - [michael-dm/openai-token](https://github.com/michael-dm/openai-token) - - [allanoricil/chat-gpt-authenticator](https://github.com/AllanOricil/chat-gpt-authenticator) -- Python libs - - [acheong08/OpenAIAuth](https://github.com/acheong08/OpenAIAuth) - -These libraries work with email + password accounts (e.g., they do not support accounts where you auth via Microsoft / Google). - -Alternatively, you can manually get an `accessToken` by logging in to the ChatGPT webapp and then opening `https://chat.openai.com/api/auth/session`, which will return a JSON object containing your `accessToken` string. - -Access tokens last for days. - -**Note**: using a reverse proxy will expose your access token to a third-party. There shouldn't be any adverse effects possible from this, but please consider the risks before using this method. - -## Docs - -See the [auto-generated docs](./docs/classes/ChatGPTAPI.md) for more info on methods and parameters. - -## Demos - -Most of the demos use `ChatGPTAPI`. It should be pretty easy to convert them to use `ChatGPTUnofficialProxyAPI` if you'd rather use that approach. The only thing that needs to change is how you initialize the api with an `accessToken` instead of an `apiKey`. - -To run the included demos: - -1. clone repo -2. install node deps -3. set `OPENAI_API_KEY` in .env - -A [basic demo](./demos/demo.ts) is included for testing purposes: - -```bash -npx tsx demos/demo.ts -``` - -A [demo showing on progress handler](./demos/demo-on-progress.ts): - -```bash -npx tsx demos/demo-on-progress.ts -``` - -The on progress demo uses the optional `onProgress` parameter to `sendMessage` to receive intermediary results as ChatGPT is "typing". - -A [conversation demo](./demos/demo-conversation.ts): - -```bash -npx tsx demos/demo-conversation.ts -``` - -A [persistence demo](./demos/demo-persistence.ts) shows how to store messages in Redis for persistence: - -```bash -npx tsx demos/demo-persistence.ts -``` - -Any [keyv adaptor](https://github.com/jaredwray/keyv) is supported for persistence, and there are overrides if you'd like to use a different way of storing / retrieving messages. - -Note that persisting message is required for remembering the context of previous conversations beyond the scope of the current Node.js process, since by default, we only store messages in memory. Here's an [external demo](https://github.com/transitive-bullshit/chatgpt-twitter-bot/blob/main/src/index.ts#L86-L95) of using a completely custom database solution to persist messages. - -**Note**: Persistence is handled automatically when using `ChatGPTUnofficialProxyAPI` because it is connecting indirectly to ChatGPT. - -## Projects - -All of these awesome projects are built using the `chatgpt` package. 🤯 - -- [Twitter Bot](https://github.com/transitive-bullshit/chatgpt-twitter-bot) powered by ChatGPT ✨ - - Mention [@ChatGPTBot](https://twitter.com/ChatGPTBot) on Twitter with your prompt to try it out -- [ChatGPT API Server](https://github.com/waylaidwanderer/node-chatgpt-api) - API server for this package with support for multiple OpenAI accounts, proxies, and load-balancing requests between accounts. -- [ChatGPT Prompts](https://github.com/pacholoamit/chatgpt-prompts) - A collection of 140+ of the best ChatGPT prompts from the community. -- [Lovelines.xyz](https://lovelines.xyz?ref=chatgpt-api) -- [Chrome Extension](https://github.com/gragland/chatgpt-everywhere) ([demo](https://twitter.com/gabe_ragland/status/1599466486422470656)) -- [VSCode Extension #1](https://github.com/mpociot/chatgpt-vscode) ([demo](https://twitter.com/marcelpociot/status/1599180144551526400), [updated version](https://github.com/timkmecl/chatgpt-vscode), [marketplace](https://marketplace.visualstudio.com/items?itemName=timkmecl.chatgpt)) -- [VSCode Extension #2](https://github.com/barnesoir/chatgpt-vscode-plugin) ([marketplace](https://marketplace.visualstudio.com/items?itemName=JayBarnes.chatgpt-vscode-plugin)) -- [VSCode Extension #3](https://github.com/gencay/vscode-chatgpt) ([marketplace](https://marketplace.visualstudio.com/items?itemName=gencay.vscode-chatgpt)) -- [VSCode Extension #4](https://github.com/dogukanakkaya/chatgpt-code-vscode-extension) ([marketplace](https://marketplace.visualstudio.com/items?itemName=dogukanakkaya.chatgpt-code)) -- [Raycast Extension #1](https://github.com/abielzulio/chatgpt-raycast) ([demo](https://twitter.com/abielzulio/status/1600176002042191875)) -- [Raycast Extension #2](https://github.com/domnantas/raycast-chatgpt) -- [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot) -- [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot) -- [Telegram Bot #3](https://github.com/RainEggplant/chatgpt-telegram-bot) (group privacy mode, ID-based auth) -- [Telegram Bot #4](https://github.com/ArdaGnsrn/chatgpt-telegram) (queue system, ID-based chat thread) -- [Telegram Bot #5](https://github.com/azoway/chatgpt-telegram-bot) (group privacy mode, ID-based chat thread) -- [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram) -- [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram) -- [Telegram Bot for YouTube Summaries](https://github.com/codextde/youtube-summary) -- [GitHub ProBot](https://github.com/oceanlvr/ChatGPTBot) -- [Discord Bot #1](https://github.com/onury5506/Discord-ChatGPT-Bot) -- [Discord Bot #2](https://github.com/Nageld/ChatGPT-Bot) -- [Discord Bot #3](https://github.com/leinstay/gptbot) -- [Discord Bot #4 (selfbot)](https://github.com/0x7030676e31/cumsocket) -- [Discord Bot #5](https://github.com/itskdhere/ChatGPT-Discord-BOT) -- [Discord Bot #6 (Shakespeare bot)](https://gist.github.com/TheBrokenRail/4b37e7c44e8f721d8bd845050d034c16) -- [Discord Bot #7](https://github.com/Elitezen/discordjs-chatgpt) -- [Zoom Chat](https://github.com/shixin-guo/my-bot) -- [WeChat Bot #1](https://github.com/AutumnWhj/ChatGPT-wechat-bot) -- [WeChat Bot #2](https://github.com/fuergaosi233/wechat-chatgpt) -- [WeChat Bot #3](https://github.com/wangrongding/wechat-bot) ( -- [WeChat Bot #4](https://github.com/darknightlab/wechat-bot) -- [WeChat Bot #5](https://github.com/sunshanpeng/wechaty-chatgpt) -- [WeChat Bot #6](https://github.com/formulahendry/chatgpt-wechat-bot) -- [WeChat Bot #7](https://github.com/gfl94/Chatbot004) -- [QQ Bot (plugin for Yunzai-bot)](https://github.com/ikechan8370/chatgpt-plugin) -- [QQ Bot (plugin for KiviBot)](https://github.com/KiviBotLab/kivibot-plugin-chatgpt) -- [QQ Bot (oicq)](https://github.com/easydu2002/chat_gpt_oicq) -- [QQ Bot (oicq + RabbitMQ)](https://github.com/linsyking/ChatGPT-QQBot) -- [QQ Bot (go-cqhttp)](https://github.com/PairZhu/ChatGPT-QQRobot) -- [EXM smart contracts](https://github.com/decentldotland/molecule) -- [Flutter ChatGPT API](https://github.com/coskuncay/flutter_chatgpt_api) -- [Carik Bot](https://github.com/luridarmawan/Carik) -- [Github Action for reviewing PRs](https://github.com/kxxt/chatgpt-action/) -- [WhatsApp Bot #1](https://github.com/askrella/whatsapp-chatgpt) (DALL-E + Whisper support 💪) -- [WhatsApp Bot #2](https://github.com/amosayomide05/chatgpt-whatsapp-bot) -- [WhatsApp Bot #3](https://github.com/pascalroget/whatsgpt) (multi-user support) -- [WhatsApp Bot #4](https://github.com/noelzappy/chatgpt-whatsapp) (schedule periodic messages) -- [WhatsApp Bot #5](https://github.com/hujanais/bs-chat-gpt3-api) (RaspberryPi + ngrok + Twilio) -- [WhatsApp Bot #6](https://github.com/dannysantino/whatsgpt) (Session and chat history storage with MongoStore) -- [Matrix Bot](https://github.com/matrixgpt/matrix-chatgpt-bot) -- [Rental Cover Letter Generator](https://sharehouse.app/ai) -- [Assistant CLI](https://github.com/diciaup/assistant-cli) -- [Teams Bot](https://github.com/formulahendry/chatgpt-teams-bot) -- [Askai](https://github.com/yudax42/askai) -- [TalkGPT](https://github.com/ShadovvBeast/TalkGPT) -- [ChatGPT With Voice](https://github.com/thanhsonng/chatgpt-voice) -- [iOS Shortcut](https://github.com/leecobaby/shortcuts/blob/master/other/ChatGPT_EN.md) -- [Slack Bot #1](https://github.com/trietphm/chatgpt-slackbot/) -- [Slack Bot #2](https://github.com/lokwkin/chatgpt-slackbot-node/) (with queueing mechanism) -- [Slack Bot #3](https://github.com/NessunKim/slack-chatgpt/) -- [Slack Bot #4](https://github.com/MarkusGalant/chatgpt-slackbot-serverless/) ( Serverless AWS Lambda ) -- [Slack Bot #5](https://github.com/benjiJanssens/SlackGPT) (Hosted) - - [Add to Slack](https://slackgpt.benji.sh/slack/install) -- [Electron Bot](https://github.com/ShiranAbir/chaty) -- [Kodyfire CLI](https://github.com/nooqta/chatgpt-kodyfire) -- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot) -- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant) -- [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin) -- [NestJS server](https://github.com/RusDyn/chatgpt_nestjs_server) -- [NestJS ChatGPT Starter Boilerplate](https://github.com/mitkodkn/nestjs-chatgpt-starter) -- [Wordsmith: Add-in for Microsoft Word](https://github.com/xtremehpx/Wordsmith) -- [QuizGPT: Create Kahoot quizzes with ChatGPT](https://github.com/Kladdy/quizgpt) -- [openai-chatgpt: Talk to ChatGPT from the terminal](https://github.com/gmpetrov/openai-chatgpt) -- [Clippy the Saleforce chatbot](https://github.com/sebas00/chatgptclippy) ClippyJS joke bot -- [ai-assistant](https://github.com/youking-lib/ai-assistant) Chat assistant -- [Feishu Bot](https://github.com/linjungz/feishu-chatgpt-bot) -- [DomainGPT: Discover available domain names](https://github.com/billylo1/DomainGPT) -- [AI Poem Generator](https://aipoemgenerator.com/) -- [Next.js ChatGPT With Firebase](https://github.com/youngle316/chatgpt) -- [ai-commit – GPT-3 Commit Message Generator](https://github.com/insulineru/ai-commit) -- [AItinerary – ChatGPT itinerary Generator](https://aitinerary.ai) -- [wechaty-chatgpt - A chatbot based on Wechaty & ChatGPT](https://github.com/zhengxs2018/wechaty-chatgpt) -- [Julius GPT](https://github.com/christophebe/julius-gpt) - Generate and publish your content from the CLI -- [OpenAI-API-Service](https://github.com/Jarvan-via/api-service) - Provides OpenAI related APIs for businesses -- [Discord Daily News Bot](https://github.com/ZirionNeft/chatgpt-discord-daily-news-bot) - Discord bot that generate funny daily news - -If you create a cool integration, feel free to open a PR and add it to the list. - -## Compatibility - -- This package is ESM-only. -- This package supports `node >= 14`. -- This module assumes that `fetch` is installed. - - In `node >= 18`, it's installed by default. - - In `node < 18`, you need to install a polyfill like `unfetch/polyfill` ([guide](https://github.com/developit/unfetch#usage-as-a-polyfill)) or `isomorphic-fetch` ([guide](https://github.com/matthew-andrews/isomorphic-fetch#readme)). -- If you want to build a website using `chatgpt`, we recommend using it only from your backend API - -## Credits - -- Huge thanks to [@waylaidwanderer](https://github.com/waylaidwanderer), [@abacaj](https://github.com/abacaj), [@wong2](https://github.com/wong2), [@simon300000](https://github.com/simon300000), [@RomanHotsiy](https://github.com/RomanHotsiy), [@ElijahPepe](https://github.com/ElijahPepe), and all the other contributors 💪 -- [OpenAI](https://openai.com) for creating [ChatGPT](https://openai.com/blog/chatgpt/) 🔥 -- I run the [ChatGPT Hackers Discord](https://www.chatgpthackers.dev/) with over 8k developers – come join us! - -## License - -MIT © [Travis Fischer](https://transitivebullsh.it) - -If you found this project interesting, please consider [sponsoring me](https://github.com/sponsors/transitive-bullshit) or following me on twitter twitter diff --git a/license b/license deleted file mode 100644 index 3a2c00b..0000000 --- a/license +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Travis Fischer - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/media/demo.gif b/media/demo.gif deleted file mode 100644 index dcd387f4741daa5bb95eb015bac0c1fa36539e65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125225 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.gif Create a GIF output at the given -# Output .mp4 Create an MP4 output at the given -# Output .webm Create a WebM output at the given -# -# Require: -# Require Ensure a program is on the $PATH to proceed -# -# Settings: -# Set FontSize Set the font size of the terminal -# Set FontFamily Set the font family of the terminal -# Set Height Set the height of the terminal -# Set Width Set the width of the terminal -# Set LetterSpacing Set the font letter spacing (tracking) -# Set LineHeight Set the font line height -# Set LoopOffset % Set the starting frame offset for the GIF loop -# Set Theme Set the theme of the terminal -# Set Padding Set the padding of the terminal -# Set Framerate Set the framerate of the recording -# Set PlaybackSpeed Set the playback speed of the recording -# -# Sleep: -# Sleep t%nBulKdV_3#iFK$%BjG^SG?Dcl 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≦_8Z5kvp7VgGWQXK&y}@5MqRh~ po#t8e_S-;2IG=d$`P?XC`2(>s5dpR`<)#1t002ovPDHLkV1nT18N2`h diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index fe22612..0000000 --- a/package-lock.json +++ /dev/null @@ -1,10346 +0,0 @@ -{ - "name": "chatgpt", - "version": "5.2.5", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "chatgpt", - "version": "5.2.5", - "license": "MIT", - "dependencies": { - "@dqbd/tiktoken": "^0.4.0", - "cac": "^6.7.14", - "conf": "^11.0.1", - "eventsource-parser": "^0.0.5", - "keyv": "^4.5.2", - "p-timeout": "^6.0.0", - "quick-lru": "^6.1.1", - "read-pkg-up": "^9.1.0", - "uuid": "^9.0.0" - }, - "bin": { - "chatgpt": "bin/cli.js" - }, - "devDependencies": { - "@keyv/redis": "^2.5.4", - "@trivago/prettier-plugin-sort-imports": "^4.0.0", - "@types/node": "^18.11.9", - "@types/uuid": "^9.0.0", - "del-cli": "^5.0.0", - "dotenv-safe": "^8.2.0", - "husky": "^8.0.2", - "lint-staged": "^13.0.3", - "npm-run-all": "^4.1.5", - "ora": "^6.1.2", - "prettier": "^2.8.0", - "tsup": "^6.5.0", - "tsx": "^3.12.1", - "typedoc": "^0.23.21", - "typedoc-plugin-markdown": "^3.13.6", - "typescript": "^4.9.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@dqbd/tiktoken": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-0.4.0.tgz", - "integrity": "sha512-iaHgmwKAOqowBFZKxelyszoeGLoNw62eOULcmyme1aA1Ymr3JgYl0V7jwpuUm7fksalycZajx3loFn9TRUaviw==" - }, - "node_modules/@esbuild-kit/cjs-loader": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz", - "integrity": "sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==", - "dev": true, - "dependencies": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "node_modules/@esbuild-kit/core-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz", - "integrity": "sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==", - "dev": true, - "dependencies": { - "esbuild": "~0.17.6", - "source-map-support": "^0.5.21" - } - }, - "node_modules/@esbuild-kit/esm-loader": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz", - "integrity": "sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==", - "dev": true, - "dependencies": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", - "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", - "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", - "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", - "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", - "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", - "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", - "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", - "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", - "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", - "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", - "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", - "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", - "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", - "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", - "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", - "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", - "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", - "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", - "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", - "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", - "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", - "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@keyv/redis": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.5.tgz", - "integrity": "sha512-J7dNB6iU18AbkxiN2moPcWUShgOVZtf4ySpsZIXPnuwqrvkF4X0q7nH/+mYJEjJpZwUWg6HjVxXkJYE9C2jMDw==", - "dev": true, - "dependencies": { - "ioredis": "^5.3.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.0.0.tgz", - "integrity": "sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==", - "dev": true, - "dependencies": { - "@babel/core": "7.17.8", - "@babel/generator": "7.17.7", - "@babel/parser": "7.18.9", - "@babel/traverse": "7.17.3", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "4.17.21" - }, - "peerDependencies": { - "@vue/compiler-sfc": "3.x", - "prettier": "2.x" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz", - "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "node_modules/@types/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==", - "dev": true - }, - "node_modules/@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-core/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "dev": true, - "peer": true, - "dependencies": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "dev": true, - "peer": true, - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", - "dev": true, - "peer": true - }, - "node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", - "dev": true - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/atomically": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.0.1.tgz", - "integrity": "sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==", - "dependencies": { - "stubborn-fs": "^1.2.4", - "when-exit": "^2.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bundle-require": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.1.tgz", - "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==", - "dev": true, - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.17" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, - "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001456", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz", - "integrity": "sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/conf": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/conf/-/conf-11.0.1.tgz", - "integrity": "sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==", - "dependencies": { - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "atomically": "^2.0.0", - "debounce-fn": "^5.1.2", - "dot-prop": "^7.2.0", - "env-paths": "^3.0.0", - "json-schema-typed": "^8.0.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conf/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conf/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conf/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debounce-fn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-5.1.2.tgz", - "integrity": "sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", - "dev": true, - "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", - "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", - "dev": true, - "dependencies": { - "del": "^7.0.0", - "meow": "^10.1.3" - }, - "bin": { - "del": "cli.js", - "del-cli": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "dependencies": { - "type-fest": "^2.11.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-safe": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv-safe/-/dotenv-safe-8.2.0.tgz", - "integrity": "sha512-uWwWWdUQkSs5a3mySDB22UtNwyEYi0JtEQu+vDzIqr9OjbDdC2Ip13PnSpi/fctqlYmzkxCeabiyCAOROuAIaA==", - "dev": true, - "dependencies": { - "dotenv": "^8.2.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz", - "integrity": "sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", - "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "peer": true - }, - "node_modules/eventsource-parser": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-0.0.5.tgz", - "integrity": "sha512-BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz", - "integrity": "sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.1.tgz", - "integrity": "sha512-C+IBcMysM6v52pTLItYMeV4Hz7uriGtoJdz7SSBDX6u+zwSYGirLdQh3L7t/OItWITcw3gTFMjJReYUwS4zihg==", - "dev": true, - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json-schema-typed": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.1.tgz", - "integrity": "sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/lint-staged": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz", - "integrity": "sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==", - "dev": true, - "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/listr2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/listr2/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-tsconfig": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.3.tgz", - "integrity": "sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "peer": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "dev": true, - "dependencies": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.1.tgz", - "integrity": "sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dev": true, - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.17.1.tgz", - "integrity": "sha512-8RnSms6rNqHmZK+wiqgnPCqen+rRnUHXkciGDirh7B00g1rX1vpKbPDhuxCvAG2bburoI+W4Q9/PlUB/zYkiYA==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shiki": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", - "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true, - "peer": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stubborn-fs": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-1.2.4.tgz", - "integrity": "sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==" - }, - "node_modules/sucrase": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.29.0.tgz", - "integrity": "sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==", - "dev": true, - "dependencies": { - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - }, - "node_modules/tsup": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz", - "integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==", - "dev": true, - "dependencies": { - "bundle-require": "^4.0.0", - "cac": "^6.7.12", - "chokidar": "^3.5.1", - "debug": "^4.3.1", - "esbuild": "^0.17.6", - "execa": "^5.0.0", - "globby": "^11.0.3", - "joycon": "^3.0.1", - "postcss-load-config": "^3.0.1", - "resolve-from": "^5.0.0", - "rollup": "^3.2.5", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.20.3", - "tree-kill": "^1.2.2" - }, - "bin": { - "tsup": "dist/cli-default.js", - "tsup-node": "dist/cli-node.js" - }, - "engines": { - "node": ">=14.18" - }, - "peerDependencies": { - "@swc/core": "^1", - "postcss": "^8.4.12", - "typescript": "^4.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "postcss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/tsup/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsup/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/tsup/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsup/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsup/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsup/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tsup/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsup/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tsup/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsx": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.12.3.tgz", - "integrity": "sha512-Wc5BFH1xccYTXaQob+lEcimkcb/Pq+0en2s+ruiX0VEIC80nV7/0s7XRahx8NnsoCnpCVUPz8wrqVSPi760LkA==", - "dev": true, - "dependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@esbuild-kit/core-utils": "^3.0.0", - "@esbuild-kit/esm-loader": "^2.5.5" - }, - "bin": { - "tsx": "dist/cli.js" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedoc": { - "version": "0.23.25", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.25.tgz", - "integrity": "sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^6.1.6", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz", - "integrity": "sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q==", - "dev": true, - "dependencies": { - "handlebars": "^4.7.7" - }, - "peerDependencies": { - "typedoc": ">=0.23.0" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/when-exit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.0.tgz", - "integrity": "sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", - "dev": true - }, - "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - }, - "dependencies": { - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - }, - "dependencies": { - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - }, - "dependencies": { - "@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true - }, - "@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - }, - "dependencies": { - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - }, - "dependencies": { - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" - }, - "dependencies": { - "@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true - }, - "@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", - "dev": true - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "dependencies": { - "@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "dev": true - }, - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@dqbd/tiktoken": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-0.4.0.tgz", - "integrity": "sha512-iaHgmwKAOqowBFZKxelyszoeGLoNw62eOULcmyme1aA1Ymr3JgYl0V7jwpuUm7fksalycZajx3loFn9TRUaviw==" - }, - "@esbuild-kit/cjs-loader": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz", - "integrity": "sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==", - "dev": true, - "requires": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "@esbuild-kit/core-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz", - "integrity": "sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==", - "dev": true, - "requires": { - "esbuild": "~0.17.6", - "source-map-support": "^0.5.21" - } - }, - "@esbuild-kit/esm-loader": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz", - "integrity": "sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==", - "dev": true, - "requires": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "@esbuild/android-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", - "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", - "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", - "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", - "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", - "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", - "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", - "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", - "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", - "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", - "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", - "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", - "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", - "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", - "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", - "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", - "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", - "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", - "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", - "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", - "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", - "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", - "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", - "dev": true, - "optional": true - }, - "@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@keyv/redis": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.5.tgz", - "integrity": "sha512-J7dNB6iU18AbkxiN2moPcWUShgOVZtf4ySpsZIXPnuwqrvkF4X0q7nH/+mYJEjJpZwUWg6HjVxXkJYE9C2jMDw==", - "dev": true, - "requires": { - "ioredis": "^5.3.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@trivago/prettier-plugin-sort-imports": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.0.0.tgz", - "integrity": "sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==", - "dev": true, - "requires": { - "@babel/core": "7.17.8", - "@babel/generator": "7.17.7", - "@babel/parser": "7.18.9", - "@babel/traverse": "7.17.3", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "4.17.21" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/node": { - "version": "18.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz", - "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "@types/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==", - "dev": true - }, - "@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "dev": true, - "peer": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true - } - } - }, - "@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true - } - } - }, - "@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dev": true, - "peer": true, - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", - "dev": true, - "peer": true - }, - "aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-sequence-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", - "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "atomically": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.0.1.tgz", - "integrity": "sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==", - "requires": { - "stubborn-fs": "^1.2.4", - "when-exit": "^2.0.0" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "bundle-require": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.1.tgz", - "integrity": "sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==", - "dev": true, - "requires": { - "load-tsconfig": "^0.2.3" - } - }, - "cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, - "requires": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "dependencies": { - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "caniuse-lite": { - "version": "1.0.30001456", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz", - "integrity": "sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "dev": true - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - }, - "cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "conf": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/conf/-/conf-11.0.1.tgz", - "integrity": "sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==", - "requires": { - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "atomically": "^2.0.0", - "debounce-fn": "^5.1.2", - "dot-prop": "^7.2.0", - "env-paths": "^3.0.0", - "json-schema-typed": "^8.0.1", - "semver": "^7.3.8" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debounce-fn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-5.1.2.tgz", - "integrity": "sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==", - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", - "dev": true, - "requires": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - } - }, - "del-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-5.0.0.tgz", - "integrity": "sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==", - "dev": true, - "requires": { - "del": "^7.0.0", - "meow": "^10.1.3" - } - }, - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "requires": { - "type-fest": "^2.11.2" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - } - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - }, - "dotenv-safe": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv-safe/-/dotenv-safe-8.2.0.tgz", - "integrity": "sha512-uWwWWdUQkSs5a3mySDB22UtNwyEYi0JtEQu+vDzIqr9OjbDdC2Ip13PnSpi/fctqlYmzkxCeabiyCAOROuAIaA==", - "dev": true, - "requires": { - "dotenv": "^8.2.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz", - "integrity": "sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", - "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", - "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "peer": true - }, - "eventsource-parser": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-0.0.5.tgz", - "integrity": "sha512-BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==" - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-tsconfig": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz", - "integrity": "sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ioredis": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.1.tgz", - "integrity": "sha512-C+IBcMysM6v52pTLItYMeV4Hz7uriGtoJdz7SSBDX6u+zwSYGirLdQh3L7t/OItWITcw3gTFMjJReYUwS4zihg==", - "dev": true, - "requires": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true - }, - "joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-schema-typed": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.1.tgz", - "integrity": "sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "lint-staged": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz", - "integrity": "sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - } - }, - "listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "load-tsconfig": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.3.tgz", - "integrity": "sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==", - "dev": true - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "requires": { - "p-locate": "^6.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - } - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "peer": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, - "meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - } - }, - "read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "requires": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - } - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "peer": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "dev": true, - "requires": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "requires": { - "p-limit": "^4.0.0" - } - }, - "p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "requires": { - "aggregate-error": "^4.0.0" - } - }, - "p-timeout": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.1.tgz", - "integrity": "sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "peer": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "dependencies": { - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } - } - }, - "prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", - "dev": true - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==" - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", - "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", - "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - } - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "dev": true - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dev": true, - "requires": { - "redis-errors": "^1.0.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - } - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.17.1.tgz", - "integrity": "sha512-8RnSms6rNqHmZK+wiqgnPCqen+rRnUHXkciGDirh7B00g1rX1vpKbPDhuxCvAG2bburoI+W4Q9/PlUB/zYkiYA==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true - }, - "shiki": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", - "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", - "dev": true, - "requires": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "peer": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true, - "peer": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, - "stubborn-fs": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-1.2.4.tgz", - "integrity": "sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==" - }, - "sucrase": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.29.0.tgz", - "integrity": "sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==", - "dev": true, - "requires": { - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", - "dev": true - }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true - }, - "tsup": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.6.3.tgz", - "integrity": "sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==", - "dev": true, - "requires": { - "bundle-require": "^4.0.0", - "cac": "^6.7.12", - "chokidar": "^3.5.1", - "debug": "^4.3.1", - "esbuild": "^0.17.6", - "execa": "^5.0.0", - "globby": "^11.0.3", - "joycon": "^3.0.1", - "postcss-load-config": "^3.0.1", - "resolve-from": "^5.0.0", - "rollup": "^3.2.5", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.20.3", - "tree-kill": "^1.2.2" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - } - } - }, - "tsx": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.12.3.tgz", - "integrity": "sha512-Wc5BFH1xccYTXaQob+lEcimkcb/Pq+0en2s+ruiX0VEIC80nV7/0s7XRahx8NnsoCnpCVUPz8wrqVSPi760LkA==", - "dev": true, - "requires": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@esbuild-kit/core-utils": "^3.0.0", - "@esbuild-kit/esm-loader": "^2.5.5", - "fsevents": "~2.3.2" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedoc": { - "version": "0.23.25", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.25.tgz", - "integrity": "sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==", - "dev": true, - "requires": { - "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^6.1.6", - "shiki": "^0.14.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "typedoc-plugin-markdown": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz", - "integrity": "sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q==", - "dev": true, - "requires": { - "handlebars": "^4.7.7" - } - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "when-exit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.0.tgz", - "integrity": "sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 63dbcc2..0000000 --- a/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "chatgpt", - "version": "5.2.5", - "description": "Node.js client for the official ChatGPT API.", - "author": "Travis Fischer ", - "repository": "transitive-bullshit/chatgpt-api", - "license": "MIT", - "type": "module", - "source": "./src/index.ts", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "import": "./build/index.js", - "default": "./build/index.js" - } - }, - "files": [ - "build", - "bin" - ], - "bin": "./bin/cli.js", - "engines": { - "node": ">=14" - }, - "scripts": { - "build": "tsup", - "dev": "tsup --watch", - "clean": "del build", - "prebuild": "run-s clean", - "predev": "run-s clean", - "pretest": "run-s build", - "docs": "typedoc", - "prepare": "husky install", - "pre-commit": "lint-staged", - "test": "run-p test:*", - "test:prettier": "prettier '**/*.{js,jsx,ts,tsx}' --check" - }, - "dependencies": { - "cac": "^6.7.14", - "conf": "^11.0.1", - "eventsource-parser": "^1.0.0", - "js-tiktoken": "^1.0.5", - "keyv": "^4.5.2", - "p-timeout": "^6.1.1", - "quick-lru": "^6.1.1", - "read-pkg-up": "^9.1.0", - "uuid": "^9.0.0" - }, - "devDependencies": { - "@keyv/redis": "^2.5.7", - "@trivago/prettier-plugin-sort-imports": "^4.1.1", - "@types/node": "^18.16.3", - "@types/uuid": "^9.0.1", - "del-cli": "^5.0.0", - "dotenv-safe": "^8.2.0", - "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "npm-run-all": "^4.1.5", - "ora": "^6.3.0", - "prettier": "^2.8.8", - "tsup": "^6.7.0", - "tsx": "^3.12.7", - "typedoc": "^0.24.6", - "typedoc-plugin-markdown": "^3.15.3", - "typescript": "^5.0.4" - }, - "lint-staged": { - "*.{ts,tsx}": [ - "prettier --write" - ] - }, - "keywords": [ - "openai", - "chatgpt", - "chat", - "gpt", - "gpt-3", - "gpt3", - "gpt4", - "chatbot", - "machine learning", - "conversation", - "conversational ai", - "ai", - "ml", - "bot" - ] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index c8383ee..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,3167 +0,0 @@ -lockfileVersion: '6.0' - -dependencies: - cac: - specifier: ^6.7.14 - version: 6.7.14 - conf: - specifier: ^11.0.1 - version: 11.0.1 - eventsource-parser: - specifier: ^1.0.0 - version: 1.0.0 - js-tiktoken: - specifier: ^1.0.5 - version: 1.0.5 - keyv: - specifier: ^4.5.2 - version: 4.5.2 - p-timeout: - specifier: ^6.1.1 - version: 6.1.1 - quick-lru: - specifier: ^6.1.1 - version: 6.1.1 - read-pkg-up: - specifier: ^9.1.0 - version: 9.1.0 - uuid: - specifier: ^9.0.0 - version: 9.0.0 - -devDependencies: - '@keyv/redis': - specifier: ^2.5.7 - version: 2.5.7 - '@trivago/prettier-plugin-sort-imports': - specifier: ^4.1.1 - version: 4.1.1(prettier@2.8.8) - '@types/node': - specifier: ^18.16.3 - version: 18.16.3 - '@types/uuid': - specifier: ^9.0.1 - version: 9.0.1 - del-cli: - specifier: ^5.0.0 - version: 5.0.0 - dotenv-safe: - specifier: ^8.2.0 - version: 8.2.0 - husky: - specifier: ^8.0.3 - version: 8.0.3 - lint-staged: - specifier: ^13.2.2 - version: 13.2.2 - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 - ora: - specifier: ^6.3.0 - version: 6.3.0 - prettier: - specifier: ^2.8.8 - version: 2.8.8 - tsup: - specifier: ^6.7.0 - version: 6.7.0(typescript@5.0.4) - tsx: - specifier: ^3.12.7 - version: 3.12.7 - typedoc: - specifier: ^0.24.6 - version: 0.24.6(typescript@5.0.4) - typedoc-plugin-markdown: - specifier: ^3.15.3 - version: 3.15.3(typedoc@0.24.6) - typescript: - specifier: ^5.0.4 - version: 5.0.4 - -packages: - - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 - - /@babel/generator@7.17.7: - resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/helper-environment-visitor@7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.4 - dev: true - - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.4 - dev: true - - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.4 - dev: true - - /@babel/helper-string-parser@7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser@7.21.4: - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/template@7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/parser': 7.21.4 - '@babel/types': 7.21.4 - dev: true - - /@babel/traverse@7.17.3: - resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.17.7 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.4 - '@babel/types': 7.17.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types@7.17.0: - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - - /@babel/types@7.21.4: - resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - - /@esbuild-kit/cjs-loader@2.4.2: - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.5.0 - dev: true - - /@esbuild-kit/core-utils@3.1.0: - resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} - dependencies: - esbuild: 0.17.18 - source-map-support: 0.5.21 - dev: true - - /@esbuild-kit/esm-loader@2.5.5: - resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.5.0 - dev: true - - /@esbuild/android-arm64@0.17.15: - resolution: {integrity: sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.17.18: - resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.17.15: - resolution: {integrity: sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.17.18: - resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.17.15: - resolution: {integrity: sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.17.18: - resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.17.15: - resolution: {integrity: sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.17.18: - resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.17.15: - resolution: {integrity: sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.17.18: - resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.17.15: - resolution: {integrity: sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.17.18: - resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.17.15: - resolution: {integrity: sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.17.18: - resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.17.15: - resolution: {integrity: sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.17.18: - resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.17.15: - resolution: {integrity: sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.17.18: - resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.17.15: - resolution: {integrity: sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.17.18: - resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.17.15: - resolution: {integrity: sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.17.18: - resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.17.15: - resolution: {integrity: sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.17.18: - resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.17.15: - resolution: {integrity: sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.17.18: - resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.17.15: - resolution: {integrity: sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.17.18: - resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.17.15: - resolution: {integrity: sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.17.18: - resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.17.15: - resolution: {integrity: sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.17.18: - resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.17.15: - resolution: {integrity: sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.17.18: - resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.17.15: - resolution: {integrity: sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.17.18: - resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.17.15: - resolution: {integrity: sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.17.18: - resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.17.15: - resolution: {integrity: sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.17.18: - resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.17.15: - resolution: {integrity: sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.17.18: - resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.17.15: - resolution: {integrity: sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.17.18: - resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@ioredis/commands@1.2.0: - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - dev: true - - /@keyv/redis@2.5.7: - resolution: {integrity: sha512-WFDjJ1rXOytwnE56vjunrl+AR/p2T3qG6OK9rfCPR7+GUNlu8DfuNYjnvWeklKmK1FSe7zAYdD1C+MbJt5FJXg==} - engines: {node: '>= 12'} - dependencies: - ioredis: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@trivago/prettier-plugin-sort-imports@4.1.1(prettier@2.8.8): - resolution: {integrity: sha512-dQ2r2uzNr1x6pJsuh/8x0IRA3CBUB+pWEW3J/7N98axqt7SQSm+2fy0FLNXvXGg77xEDC7KHxJlHfLYyi7PDcw==} - peerDependencies: - '@vue/compiler-sfc': 3.x - prettier: 2.x - peerDependenciesMeta: - '@vue/compiler-sfc': - optional: true - dependencies: - '@babel/generator': 7.17.7 - '@babel/parser': 7.21.4 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 2.8.8 - transitivePeerDependencies: - - supports-color - dev: true - - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/node@18.16.3: - resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} - dev: true - - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - - /@types/uuid@9.0.1: - resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==} - dev: true - - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - - /aggregate-error@4.0.1: - resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} - engines: {node: '>=12'} - dependencies: - clean-stack: 4.2.0 - indent-string: 5.0.0 - dev: true - - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: false - - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: false - - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-sequence-parser@1.1.0: - resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} - dev: true - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - dev: true - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - - /atomically@2.0.1: - resolution: {integrity: sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==} - dependencies: - stubborn-fs: 1.2.4 - when-exit: 2.1.0 - dev: false - - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - dependencies: - buffer: 6.0.3 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /bundle-require@4.0.1(esbuild@0.17.15): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - dependencies: - esbuild: 0.17.15 - load-tsconfig: 0.2.5 - dev: true - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.0 - dev: true - - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - dependencies: - camelcase: 6.3.0 - map-obj: 4.3.0 - quick-lru: 5.1.1 - type-fest: 1.4.0 - dev: true - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk@5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true - - /clean-stack@4.2.0: - resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} - engines: {node: '>=12'} - dependencies: - escape-string-regexp: 5.0.0 - dev: true - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - dev: true - - /cli-spinners@2.7.0: - resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} - engines: {node: '>=6'} - dev: true - - /cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true - - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - - /cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - dev: true - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true - - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: true - - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /conf@11.0.1: - resolution: {integrity: sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==} - engines: {node: '>=14.16'} - dependencies: - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - atomically: 2.0.1 - debounce-fn: 5.1.2 - dot-prop: 7.2.0 - env-paths: 3.0.0 - json-schema-typed: 8.0.1 - semver: 7.3.8 - dev: false - - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.1 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /debounce-fn@5.1.2: - resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: false - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - - /del-cli@5.0.0: - resolution: {integrity: sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - del: 7.0.0 - meow: 10.1.5 - dev: true - - /del@7.0.0: - resolution: {integrity: sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==} - engines: {node: '>=14.16'} - dependencies: - globby: 13.1.3 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 3.0.0 - is-path-inside: 4.0.0 - p-map: 5.5.0 - rimraf: 3.0.2 - slash: 4.0.0 - dev: true - - /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - dev: true - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /dot-prop@7.2.0: - resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - type-fest: 2.19.0 - dev: false - - /dotenv-safe@8.2.0: - resolution: {integrity: sha512-uWwWWdUQkSs5a3mySDB22UtNwyEYi0JtEQu+vDzIqr9OjbDdC2Ip13PnSpi/fctqlYmzkxCeabiyCAOROuAIaA==} - dependencies: - dotenv: 8.6.0 - dev: true - - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - dev: true - - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /esbuild@0.17.15: - resolution: {integrity: sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.15 - '@esbuild/android-arm64': 0.17.15 - '@esbuild/android-x64': 0.17.15 - '@esbuild/darwin-arm64': 0.17.15 - '@esbuild/darwin-x64': 0.17.15 - '@esbuild/freebsd-arm64': 0.17.15 - '@esbuild/freebsd-x64': 0.17.15 - '@esbuild/linux-arm': 0.17.15 - '@esbuild/linux-arm64': 0.17.15 - '@esbuild/linux-ia32': 0.17.15 - '@esbuild/linux-loong64': 0.17.15 - '@esbuild/linux-mips64el': 0.17.15 - '@esbuild/linux-ppc64': 0.17.15 - '@esbuild/linux-riscv64': 0.17.15 - '@esbuild/linux-s390x': 0.17.15 - '@esbuild/linux-x64': 0.17.15 - '@esbuild/netbsd-x64': 0.17.15 - '@esbuild/openbsd-x64': 0.17.15 - '@esbuild/sunos-x64': 0.17.15 - '@esbuild/win32-arm64': 0.17.15 - '@esbuild/win32-ia32': 0.17.15 - '@esbuild/win32-x64': 0.17.15 - dev: true - - /esbuild@0.17.18: - resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.18 - '@esbuild/android-arm64': 0.17.18 - '@esbuild/android-x64': 0.17.18 - '@esbuild/darwin-arm64': 0.17.18 - '@esbuild/darwin-x64': 0.17.18 - '@esbuild/freebsd-arm64': 0.17.18 - '@esbuild/freebsd-x64': 0.17.18 - '@esbuild/linux-arm': 0.17.18 - '@esbuild/linux-arm64': 0.17.18 - '@esbuild/linux-ia32': 0.17.18 - '@esbuild/linux-loong64': 0.17.18 - '@esbuild/linux-mips64el': 0.17.18 - '@esbuild/linux-ppc64': 0.17.18 - '@esbuild/linux-riscv64': 0.17.18 - '@esbuild/linux-s390x': 0.17.18 - '@esbuild/linux-x64': 0.17.18 - '@esbuild/netbsd-x64': 0.17.18 - '@esbuild/openbsd-x64': 0.17.18 - '@esbuild/sunos-x64': 0.17.18 - '@esbuild/win32-arm64': 0.17.18 - '@esbuild/win32-ia32': 0.17.18 - '@esbuild/win32-x64': 0.17.18 - dev: true - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: true - - /eventsource-parser@1.0.0: - resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==} - engines: {node: '>=14.18'} - dev: false - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: false - - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - dev: false - - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true - - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - dev: true - - /get-tsconfig@4.5.0: - resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.0 - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /globby@13.1.3: - resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 - dev: true - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.0 - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} - engines: {node: '>=0.4.7'} - hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.0 - dev: true - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true - - /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true - - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true - - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - - /ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} - engines: {node: '>=12.22.0'} - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.3.4 - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: true - - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-typed-array: 1.1.10 - dev: true - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - dev: true - - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-cwd@3.0.0: - resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - dev: true - - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.2 - dev: true - - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - - /is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - dev: true - - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.2 - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} - dev: true - - /joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - dev: true - - /js-tiktoken@1.0.5: - resolution: {integrity: sha512-RYXe54ntls/uQmAxUua2J1+g+EiwWHGn1CxfioYxrP1iVDmksfZsyJt0VySyMNbreJyyreDtyBuBxeXy7HYqjQ==} - dependencies: - base64-js: 1.5.1 - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false - - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false - - /json-schema-typed@8.0.1: - resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==} - dev: false - - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - - /keyv@4.5.2: - resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} - dependencies: - json-buffer: 3.0.1 - dev: false - - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - /lint-staged@13.2.2: - resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} - engines: {node: ^14.13.1 || >=16.0.0} - hasBin: true - dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 - debug: 4.3.4 - execa: 7.1.1 - lilconfig: 2.1.0 - listr2: 5.0.8 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.2.2 - transitivePeerDependencies: - - enquirer - - supports-color - dev: true - - /listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - - /load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: 6.0.0 - dev: false - - /lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - dev: true - - /lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - dev: true - - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - dependencies: - chalk: 5.2.0 - is-unicode-supported: 1.3.0 - dev: true - - /log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - dev: true - - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - - /marked@4.3.0: - resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} - engines: {node: '>= 12'} - hasBin: true - dev: true - - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 7.0.2 - decamelize: 5.0.1 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 8.0.0 - redent: 4.0.0 - trim-newlines: 4.1.1 - type-fest: 1.4.0 - yargs-parser: 20.2.9 - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true - - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.11.0 - semver: 7.3.8 - validate-npm-package-license: 3.0.4 - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.0 - string.prototype.padend: 3.1.4 - dev: true - - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true - - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /ora@6.3.0: - resolution: {integrity: sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - chalk: 5.2.0 - cli-cursor: 4.0.0 - cli-spinners: 2.7.0 - is-interactive: 2.0.0 - is-unicode-supported: 1.3.0 - log-symbols: 5.1.0 - stdin-discarder: 0.1.0 - strip-ansi: 7.0.1 - wcwidth: 1.0.1 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.0.0 - dev: false - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 - dev: false - - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - - /p-map@5.5.0: - resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} - engines: {node: '>=12'} - dependencies: - aggregate-error: 4.0.1 - dev: true - - /p-timeout@6.1.1: - resolution: {integrity: sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==} - engines: {node: '>=14.16'} - dev: false - - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.21.4 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - - /postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - dev: true - - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - - /quick-lru@6.1.1: - resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==} - engines: {node: '>=12'} - dev: false - - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - dependencies: - find-up: 5.0.0 - read-pkg: 6.0.0 - type-fest: 1.4.0 - dev: true - - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - find-up: 6.3.0 - read-pkg: 7.1.0 - type-fest: 2.19.0 - dev: false - - /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 1.4.0 - dev: true - - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 2.19.0 - dev: false - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - dependencies: - indent-string: 5.0.0 - strip-indent: 4.0.0 - dev: true - - /redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - dev: true - - /redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - dependencies: - redis-errors: 1.2.0 - dev: true - - /regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - dev: true - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /rollup@3.20.2: - resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.5.0 - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - is-regex: 1.1.4 - dev: true - - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /shell-quote@1.8.0: - resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} - dev: true - - /shiki@0.14.2: - resolution: {integrity: sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==} - dependencies: - ansi-sequence-parser: 1.1.0 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 - dev: true - - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.0 - object-inspect: 1.12.3 - dev: true - - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: true - - /slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: true - - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - dependencies: - whatwg-url: 7.1.0 - dev: true - - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - - /standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - dev: true - - /stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - bl: 5.1.0 - dev: true - - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.0.1 - dev: true - - /string.prototype.padend@3.1.4: - resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - dependencies: - min-indent: 1.0.1 - dev: true - - /stubborn-fs@1.2.4: - resolution: {integrity: sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==} - dev: false - - /sucrase@3.31.0: - resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} - engines: {node: '>=8'} - hasBin: true - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - dependencies: - punycode: 2.3.0 - dev: true - - /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - dev: true - - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true - - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - dev: true - - /tsup@6.7.0(typescript@5.0.4): - resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} - engines: {node: '>=14.18'} - hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.1.0' - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - dependencies: - bundle-require: 4.0.1(esbuild@0.17.15) - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.17.15 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4 - resolve-from: 5.0.0 - rollup: 3.20.2 - source-map: 0.8.0-beta.0 - sucrase: 3.31.0 - tree-kill: 1.2.2 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /tsx@3.12.7: - resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} - hasBin: true - dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.1.0 - '@esbuild-kit/esm-loader': 2.5.5 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true - - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.2 - for-each: 0.3.3 - is-typed-array: 1.1.10 - dev: true - - /typedoc-plugin-markdown@3.15.3(typedoc@0.24.6): - resolution: {integrity: sha512-idntFYu3vfaY3eaD+w9DeRd0PmNGqGuNLKihPU9poxFGnATJYGn9dPtEhn2QrTdishFMg7jPXAhos+2T6YCWRQ==} - peerDependencies: - typedoc: '>=0.24.0' - dependencies: - handlebars: 4.7.7 - typedoc: 0.24.6(typescript@5.0.4) - dev: true - - /typedoc@0.24.6(typescript@5.0.4): - resolution: {integrity: sha512-c3y3h45xJv3qYwKDAwU6Cl+26CjT0ZvblHzfHJ+SjQDM4p1mZxtgHky4lhmG0+nNarRht8kADfZlbspJWdZarQ==} - engines: {node: '>= 14.14'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x - dependencies: - lunr: 2.3.9 - marked: 4.3.0 - minimatch: 9.0.0 - shiki: 0.14.2 - typescript: 5.0.4 - dev: true - - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} - hasBin: true - dev: true - - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.0 - dev: false - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} - hasBin: true - dev: false - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: true - - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: true - - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: true - - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true - - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - dev: true - - /when-exit@2.1.0: - resolution: {integrity: sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==} - dev: false - - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - dev: true - - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true - - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yaml@2.2.2: - resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} - engines: {node: '>= 14'} - dev: true - - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: false diff --git a/readme.md b/readme.md deleted file mode 100644 index 9f95aea..0000000 --- a/readme.md +++ /dev/null @@ -1,565 +0,0 @@ -# ChatGPT API - -> Node.js client for the official [ChatGPT](https://openai.com/blog/chatgpt/) API. - -[![NPM](https://img.shields.io/npm/v/chatgpt.svg)](https://www.npmjs.com/package/chatgpt) [![Build Status](https://github.com/transitive-bullshit/chatgpt-api/actions/workflows/test.yml/badge.svg)](https://github.com/transitive-bullshit/chatgpt-api/actions/workflows/test.yml) [![MIT License](https://img.shields.io/badge/license-MIT-blue)](https://github.com/transitive-bullshit/chatgpt-api/blob/main/license) [![Prettier Code Formatting](https://img.shields.io/badge/code_style-prettier-brightgreen.svg)](https://prettier.io) - -- [Intro](#intro) -- [Updates](#updates) -- [CLI](#cli) -- [Install](#install) -- [Usage](#usage) - - [Usage - ChatGPTAPI](#usage---chatgptapi) - - [Usage - ChatGPTUnofficialProxyAPI](#usage---chatgptunofficialproxyapi) - - [Reverse Proxy](#reverse-proxy) - - [Access Token](#access-token) -- [Docs](#docs) -- [Demos](#demos) -- [Projects](#projects) -- [Compatibility](#compatibility) -- [Credits](#credits) -- [License](#license) - -## Intro - -This package is a Node.js wrapper around [ChatGPT](https://openai.com/blog/chatgpt) by [OpenAI](https://openai.com). TS batteries included. ✨ - -

- Example usage -

- -## Updates - -
-April 10, 2023 - -
- -This package now **fully supports GPT-4**! 🔥 - -We also just released a [TypeScript chatgpt-plugin package](https://github.com/transitive-bullshit/chatgpt-plugin-ts) which contains helpers and examples to make it as easy as possible to start building your own ChatGPT Plugins in JS/TS. Even if you don't have developer access to ChatGPT Plugins yet, you can still use the [chatgpt-plugin](https://github.com/transitive-bullshit/chatgpt-plugin-ts) repo to get a head start on building your own plugins locally. - -If you have access to the `gpt-4` model, you can run the following to test out the CLI with GPT-4: - -```bash -npx chatgpt@latest --model gpt-4 "Hello world" -``` - -

- Using the chatgpt CLI with gpt-4 -

- -We still support both the official ChatGPT API and the unofficial proxy API, but we now recommend using the official API since it's significantly more robust and supports **GPT-4**. - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | ------- | ------------------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models + GPT-4 | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ❌ No️ | ✅ ChatGPT webapp | - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI. We will likely remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -
- -
-Previous Updates - -
- -
-March 1, 2023 - -
- -The [official OpenAI chat completions API](https://platform.openai.com/docs/guides/chat) has been released, and it is now the default for this package! 🔥 - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | -------- | ----------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ☑️ Maybe | ✅ Real ChatGPT | - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI. We may remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -
- -
-Feb 19, 2023 - -
- -We now provide three ways of accessing the unofficial ChatGPT API, all of which have tradeoffs: - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | -------- | ----------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ☑️ Mimics ChatGPT | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ☑️ Maybe | ✅ Real ChatGPT | -| `ChatGPTAPIBrowser` (v3) | ✅ Yes | ❌ No | ✅ Real ChatGPT | - -**Note**: I recommend that you use either `ChatGPTAPI` or `ChatGPTUnofficialProxyAPI`. - -1. `ChatGPTAPI` - (Used to use) `text-davinci-003` to mimic ChatGPT via the official OpenAI completions API (most robust approach, but it's not free and doesn't use a model fine-tuned for chat) -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) -3. `ChatGPTAPIBrowser` - (_deprecated_; v3.5.1 of this package) Uses Puppeteer to access the official ChatGPT webapp (uses the real ChatGPT, but very flaky, heavyweight, and error prone) - -
- -
-Feb 5, 2023 - -
- -OpenAI has disabled the leaked chat model we were previously using, so we're now defaulting to `text-davinci-003`, which is not free. - -We've found several other hidden, fine-tuned chat models, but OpenAI keeps disabling them, so we're searching for alternative workarounds. - -
- -
-Feb 1, 2023 - -
- -This package no longer requires any browser hacks – **it is now using the official OpenAI completions API** with a leaked model that ChatGPT uses under the hood. 🔥 - -```ts -import { ChatGPTAPI } from 'chatgpt' - -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY -}) - -const res = await api.sendMessage('Hello World!') -console.log(res.text) -``` - -Please upgrade to `chatgpt@latest` (at least [v4.0.0](https://github.com/transitive-bullshit/chatgpt-api/releases/tag/v4.0.0)). The updated version is **significantly more lightweight and robust** compared with previous versions. You also don't have to worry about IP issues or rate limiting. - -Huge shoutout to [@waylaidwanderer](https://github.com/waylaidwanderer) for discovering the leaked chat model! - -
-
- -If you run into any issues, we do have a pretty active [ChatGPT Hackers Discord](https://www.chatgpthackers.dev/) with over 8k developers from the Node.js & Python communities. - -Lastly, please consider starring this repo and
following me on twitter twitter to help support the project. - -Thanks && cheers, -[Travis](https://twitter.com/transitive_bs) - -## CLI - -To run the CLI, you'll need an [OpenAI API key](https://platform.openai.com/overview): - -```bash -export OPENAI_API_KEY="sk-TODO" -npx chatgpt "your prompt here" -``` - -By default, the response is streamed to stdout, the results are stored in a local config file, and every invocation starts a new conversation. You can use `-c` to continue the previous conversation and `--no-stream` to disable streaming. - -``` -Usage: - $ chatgpt - -Commands: - Ask ChatGPT a question - rm-cache Clears the local message cache - ls-cache Prints the local message cache path - -For more info, run any command with the `--help` flag: - $ chatgpt --help - $ chatgpt rm-cache --help - $ chatgpt ls-cache --help - -Options: - -c, --continue Continue last conversation (default: false) - -d, --debug Enables debug logging (default: false) - -s, --stream Streams the response (default: true) - -s, --store Enables the local message cache (default: true) - -t, --timeout Timeout in milliseconds - -k, --apiKey OpenAI API key - -o, --apiOrg OpenAI API organization - -n, --conversationName Unique name for the conversation - -h, --help Display this message - -v, --version Display version number -``` - -If you have access to the `gpt-4` model, you can run the following to test out the CLI with GPT-4: - -

- Using the chatgpt CLI with gpt-4 -

- -## Install - -```bash -npm install chatgpt -``` - -Make sure you're using `node >= 18` so `fetch` is available (or `node >= 14` if you install a [fetch polyfill](https://github.com/developit/unfetch#usage-as-a-polyfill)). - -## Usage - -To use this module from Node.js, you need to pick between two methods: - -| Method | Free? | Robust? | Quality? | -| --------------------------- | ------ | ------- | ------------------------------- | -| `ChatGPTAPI` | ❌ No | ✅ Yes | ✅️ Real ChatGPT models + GPT-4 | -| `ChatGPTUnofficialProxyAPI` | ✅ Yes | ❌ No️ | ✅ Real ChatGPT webapp | - -1. `ChatGPTAPI` - Uses the `gpt-3.5-turbo` model with the official OpenAI chat completions API (official, robust approach, but it's not free). You can override the model, completion params, and system message to fully customize your assistant. - -2. `ChatGPTUnofficialProxyAPI` - Uses an unofficial proxy server to access ChatGPT's backend API in a way that circumvents Cloudflare (uses the real ChatGPT and is pretty lightweight, but relies on a third-party server and is rate-limited) - -Both approaches have very similar APIs, so it should be simple to swap between them. - -**Note**: We strongly recommend using `ChatGPTAPI` since it uses the officially supported API from OpenAI and it also supports `gpt-4`. We will likely remove support for `ChatGPTUnofficialProxyAPI` in a future release. - -### Usage - ChatGPTAPI - -Sign up for an [OpenAI API key](https://platform.openai.com/overview) and store it in your environment. - -```ts -import { ChatGPTAPI } from 'chatgpt' - -async function example() { - const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY - }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -You can override the default `model` (`gpt-3.5-turbo`) and any [OpenAI chat completion params](https://platform.openai.com/docs/api-reference/chat/create) using `completionParams`: - -```ts -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - completionParams: { - model: 'gpt-4', - temperature: 0.5, - top_p: 0.8 - } -}) -``` - -If you want to track the conversation, you'll need to pass the `parentMessageId` like this: - -```ts -const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY }) - -// send a message and wait for the response -let res = await api.sendMessage('What is OpenAI?') -console.log(res.text) - -// send a follow-up -res = await api.sendMessage('Can you expand on that?', { - parentMessageId: res.id -}) -console.log(res.text) - -// send another follow-up -res = await api.sendMessage('What were we talking about?', { - parentMessageId: res.id -}) -console.log(res.text) -``` - -You can add streaming via the `onProgress` handler: - -```ts -const res = await api.sendMessage('Write a 500 word essay on frogs.', { - // print the partial response as the AI is "typing" - onProgress: (partialResponse) => console.log(partialResponse.text) -}) - -// print the full text at the end -console.log(res.text) -``` - -You can add a timeout using the `timeoutMs` option: - -```ts -// timeout after 2 minutes (which will also abort the underlying HTTP request) -const response = await api.sendMessage( - 'write me a really really long essay on frogs', - { - timeoutMs: 2 * 60 * 1000 - } -) -``` - -If you want to see more info about what's actually being sent to [OpenAI's chat completions API](https://platform.openai.com/docs/api-reference/chat/create), set the `debug: true` option in the `ChatGPTAPI` constructor: - -```ts -const api = new ChatGPTAPI({ - apiKey: process.env.OPENAI_API_KEY, - debug: true -}) -``` - -We default to a basic `systemMessage`. You can override this in either the `ChatGPTAPI` constructor or `sendMessage`: - -```ts -const res = await api.sendMessage('what is the answer to the universe?', { - systemMessage: `You are ChatGPT, a large language model trained by OpenAI. You answer as concisely as possible for each responseIf you are generating a list, do not have too many items. -Current date: ${new Date().toISOString()}\n\n` -}) -``` - -Note that we automatically handle appending the previous messages to the prompt and attempt to optimize for the available tokens (which defaults to `4096`). - -
-Usage in CommonJS (Dynamic import) - -```js -async function example() { - // To use ESM in CommonJS, you can use a dynamic import like this: - const { ChatGPTAPI } = await import('chatgpt') - // You can also try dynamic importing like this: - // const importDynamic = new Function('modulePath', 'return import(modulePath)') - // const { ChatGPTAPI } = await importDynamic('chatgpt') - - const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -
- -### Usage - ChatGPTUnofficialProxyAPI - -The API for `ChatGPTUnofficialProxyAPI` is almost exactly the same. You just need to provide a ChatGPT `accessToken` instead of an OpenAI API key. - -```ts -import { ChatGPTUnofficialProxyAPI } from 'chatgpt' - -async function example() { - const api = new ChatGPTUnofficialProxyAPI({ - accessToken: process.env.OPENAI_ACCESS_TOKEN - }) - - const res = await api.sendMessage('Hello World!') - console.log(res.text) -} -``` - -See [demos/demo-reverse-proxy](./demos/demo-reverse-proxy.ts) for a full example: - -```bash -npx tsx demos/demo-reverse-proxy.ts -``` - -`ChatGPTUnofficialProxyAPI` messages also contain a `conversationid` in addition to `parentMessageId`, since the ChatGPT webapp can't reference messages across different accounts & conversations. - -#### Reverse Proxy - -You can override the reverse proxy by passing `apiReverseProxyUrl`: - -```ts -const api = new ChatGPTUnofficialProxyAPI({ - accessToken: process.env.OPENAI_ACCESS_TOKEN, - apiReverseProxyUrl: 'https://your-example-server.com/api/conversation' -}) -``` - -Known reverse proxies run by community members include: - -| Reverse Proxy URL | Author | Rate Limits | Last Checked | -| ------------------------------------------------- | -------------------------------------------- | ---------------------------- | ------------ | -| `https://ai.fakeopen.com/api/conversation` | [@pengzhile](https://github.com/pengzhile) | 5 req / 10 seconds by IP | 4/18/2023 | -| `https://api.pawan.krd/backend-api/conversation` | [@PawanOsman](https://github.com/PawanOsman) | 50 req / 15 seconds (~3 r/s) | 3/23/2023 | - -Note: info on how the reverse proxies work is not being published at this time in order to prevent OpenAI from disabling access. - -#### Access Token - -To use `ChatGPTUnofficialProxyAPI`, you'll need an OpenAI access token from the ChatGPT webapp. To do this, you can use any of the following methods which take an `email` and `password` and return an access token: - -- Node.js libs - - [ericlewis/openai-authenticator](https://github.com/ericlewis/openai-authenticator) - - [michael-dm/openai-token](https://github.com/michael-dm/openai-token) - - [allanoricil/chat-gpt-authenticator](https://github.com/AllanOricil/chat-gpt-authenticator) -- Go libs - - [acheong08/OpenAIAuth](https://github.com/acheong08/OpenAIAuth) - -These libraries work with email + password accounts (e.g., they do not support accounts where you auth via Microsoft / Google). - -Alternatively, you can manually get an `accessToken` by logging in to the ChatGPT webapp and then opening `https://chat.openai.com/api/auth/session`, which will return a JSON object containing your `accessToken` string. - -Access tokens last for days. - -**Note**: using a reverse proxy will expose your access token to a third-party. There shouldn't be any adverse effects possible from this, but please consider the risks before using this method. - -## Docs - -See the [auto-generated docs](./docs/classes/ChatGPTAPI.md) for more info on methods and parameters. - -## Demos - -Most of the demos use `ChatGPTAPI`. It should be pretty easy to convert them to use `ChatGPTUnofficialProxyAPI` if you'd rather use that approach. The only thing that needs to change is how you initialize the api with an `accessToken` instead of an `apiKey`. - -To run the included demos: - -1. clone repo -2. install node deps -3. set `OPENAI_API_KEY` in .env - -A [basic demo](./demos/demo.ts) is included for testing purposes: - -```bash -npx tsx demos/demo.ts -``` - -A [demo showing on progress handler](./demos/demo-on-progress.ts): - -```bash -npx tsx demos/demo-on-progress.ts -``` - -The on progress demo uses the optional `onProgress` parameter to `sendMessage` to receive intermediary results as ChatGPT is "typing". - -A [conversation demo](./demos/demo-conversation.ts): - -```bash -npx tsx demos/demo-conversation.ts -``` - -A [persistence demo](./demos/demo-persistence.ts) shows how to store messages in Redis for persistence: - -```bash -npx tsx demos/demo-persistence.ts -``` - -Any [keyv adaptor](https://github.com/jaredwray/keyv) is supported for persistence, and there are overrides if you'd like to use a different way of storing / retrieving messages. - -Note that persisting message is required for remembering the context of previous conversations beyond the scope of the current Node.js process, since by default, we only store messages in memory. Here's an [external demo](https://github.com/transitive-bullshit/chatgpt-twitter-bot/blob/main/src/index.ts#L86-L95) of using a completely custom database solution to persist messages. - -**Note**: Persistence is handled automatically when using `ChatGPTUnofficialProxyAPI` because it is connecting indirectly to ChatGPT. - -## Projects - -All of these awesome projects are built using the `chatgpt` package. 🤯 - -- [Twitter Bot](https://github.com/transitive-bullshit/chatgpt-twitter-bot) powered by ChatGPT ✨ - - Mention [@ChatGPTBot](https://twitter.com/ChatGPTBot) on Twitter with your prompt to try it out -- [ChatGPT API Server](https://github.com/waylaidwanderer/node-chatgpt-api) - API server for this package with support for multiple OpenAI accounts, proxies, and load-balancing requests between accounts. -- [ChatGPT Prompts](https://github.com/pacholoamit/chatgpt-prompts) - A collection of 140+ of the best ChatGPT prompts from the community. -- [Lovelines.xyz](https://lovelines.xyz?ref=chatgpt-api) -- [Chrome Extension](https://github.com/gragland/chatgpt-everywhere) ([demo](https://twitter.com/gabe_ragland/status/1599466486422470656)) -- [VSCode Extension #1](https://github.com/mpociot/chatgpt-vscode) ([demo](https://twitter.com/marcelpociot/status/1599180144551526400), [updated version](https://github.com/timkmecl/chatgpt-vscode), [marketplace](https://marketplace.visualstudio.com/items?itemName=timkmecl.chatgpt)) -- [VSCode Extension #2](https://github.com/barnesoir/chatgpt-vscode-plugin) ([marketplace](https://marketplace.visualstudio.com/items?itemName=JayBarnes.chatgpt-vscode-plugin)) -- [VSCode Extension #3](https://github.com/gencay/vscode-chatgpt) ([marketplace](https://marketplace.visualstudio.com/items?itemName=gencay.vscode-chatgpt)) -- [VSCode Extension #4](https://github.com/dogukanakkaya/chatgpt-code-vscode-extension) ([marketplace](https://marketplace.visualstudio.com/items?itemName=dogukanakkaya.chatgpt-code)) -- [Raycast Extension #1](https://github.com/abielzulio/chatgpt-raycast) ([demo](https://twitter.com/abielzulio/status/1600176002042191875)) -- [Raycast Extension #2](https://github.com/domnantas/raycast-chatgpt) -- [Telegram Bot #1](https://github.com/realies/chatgpt-telegram-bot) -- [Telegram Bot #2](https://github.com/dawangraoming/chatgpt-telegram-bot) -- [Telegram Bot #3](https://github.com/RainEggplant/chatgpt-telegram-bot) (group privacy mode, ID-based auth) -- [Telegram Bot #4](https://github.com/ArdaGnsrn/chatgpt-telegram) (queue system, ID-based chat thread) -- [Telegram Bot #5](https://github.com/azoway/chatgpt-telegram-bot) (group privacy mode, ID-based chat thread) -- [Deno Telegram Bot](https://github.com/Ciyou/chatbot-telegram) -- [Go Telegram Bot](https://github.com/m1guelpf/chatgpt-telegram) -- [Telegram Bot for YouTube Summaries](https://github.com/codextde/youtube-summary) -- [GitHub ProBot](https://github.com/oceanlvr/ChatGPTBot) -- [Discord Bot #1](https://github.com/onury5506/Discord-ChatGPT-Bot) -- [Discord Bot #2](https://github.com/Nageld/ChatGPT-Bot) -- [Discord Bot #3](https://github.com/leinstay/gptbot) -- [Discord Bot #4 (selfbot)](https://github.com/0x7030676e31/cumsocket) -- [Discord Bot #5](https://github.com/itskdhere/ChatGPT-Discord-BOT) -- [Discord Bot #6 (Shakespeare bot)](https://gist.github.com/TheBrokenRail/4b37e7c44e8f721d8bd845050d034c16) -- [Discord Bot #7](https://github.com/Elitezen/discordjs-chatgpt) -- [Zoom Chat](https://github.com/shixin-guo/my-bot) -- [WeChat Bot #1](https://github.com/AutumnWhj/ChatGPT-wechat-bot) -- [WeChat Bot #2](https://github.com/fuergaosi233/wechat-chatgpt) -- [WeChat Bot #3](https://github.com/wangrongding/wechat-bot) ( -- [WeChat Bot #4](https://github.com/darknightlab/wechat-bot) -- [WeChat Bot #5](https://github.com/sunshanpeng/wechaty-chatgpt) -- [WeChat Bot #6](https://github.com/formulahendry/chatgpt-wechat-bot) -- [WeChat Bot #7](https://github.com/gfl94/Chatbot004) -- [QQ Bot (plugin for Yunzai-bot)](https://github.com/ikechan8370/chatgpt-plugin) -- [QQ Bot (plugin for KiviBot)](https://github.com/KiviBotLab/kivibot-plugin-chatgpt) -- [QQ Bot (oicq)](https://github.com/easydu2002/chat_gpt_oicq) -- [QQ Bot (oicq + RabbitMQ)](https://github.com/linsyking/ChatGPT-QQBot) -- [QQ Bot (go-cqhttp)](https://github.com/PairZhu/ChatGPT-QQRobot) -- [QQ Bot (plugin for Yunzai-Bot + Bull)](https://github.com/Micuks/chatGPT-yunzai) (Lightweight, Google Bard support 💪) -- [EXM smart contracts](https://github.com/decentldotland/molecule) -- [Flutter ChatGPT API](https://github.com/coskuncay/flutter_chatgpt_api) -- [Carik Bot](https://github.com/luridarmawan/Carik) -- [Github Action for reviewing PRs](https://github.com/kxxt/chatgpt-action/) -- [WhatsApp Bot #1](https://github.com/askrella/whatsapp-chatgpt) (DALL-E + Whisper support 💪) -- [WhatsApp Bot #2](https://github.com/amosayomide05/chatgpt-whatsapp-bot) -- [WhatsApp Bot #3](https://github.com/pascalroget/whatsgpt) (multi-user support) -- [WhatsApp Bot #4](https://github.com/noelzappy/chatgpt-whatsapp) (schedule periodic messages) -- [WhatsApp Bot #5](https://github.com/hujanais/bs-chat-gpt3-api) (RaspberryPi + ngrok + Twilio) -- [WhatsApp Bot #6](https://github.com/dannysantino/whatsgpt) (Session and chat history storage with MongoStore) -- [Matrix Bot](https://github.com/matrixgpt/matrix-chatgpt-bot) -- [Rental Cover Letter Generator](https://sharehouse.app/ai) -- [Assistant CLI](https://github.com/diciaup/assistant-cli) -- [Teams Bot](https://github.com/formulahendry/chatgpt-teams-bot) -- [Askai](https://github.com/yudax42/askai) -- [TalkGPT](https://github.com/ShadovvBeast/TalkGPT) -- [ChatGPT With Voice](https://github.com/thanhsonng/chatgpt-voice) -- [iOS Shortcut](https://github.com/leecobaby/shortcuts/blob/master/other/ChatGPT_EN.md) -- [Slack Bot #1](https://github.com/trietphm/chatgpt-slackbot/) -- [Slack Bot #2](https://github.com/lokwkin/chatgpt-slackbot-node/) (with queueing mechanism) -- [Slack Bot #3](https://github.com/NessunKim/slack-chatgpt/) -- [Slack Bot #4](https://github.com/MarkusGalant/chatgpt-slackbot-serverless/) ( Serverless AWS Lambda ) -- [Slack Bot #5](https://github.com/benjiJanssens/SlackGPT) (Hosted) - - [Add to Slack](https://slackgpt.benji.sh/slack/install) -- [Electron Bot](https://github.com/ShiranAbir/chaty) -- [Kodyfire CLI](https://github.com/nooqta/chatgpt-kodyfire) -- [Twitch Bot](https://github.com/BennyDeeDev/chatgpt-twitch-bot) -- [Continuous Conversation](https://github.com/DanielTerletzkiy/chat-gtp-assistant) -- [Figma plugin](https://github.com/frederickk/chatgpt-figma-plugin) -- [NestJS server](https://github.com/RusDyn/chatgpt_nestjs_server) -- [NestJS ChatGPT Starter Boilerplate](https://github.com/mitkodkn/nestjs-chatgpt-starter) -- [Wordsmith: Add-in for Microsoft Word](https://github.com/xtremehpx/Wordsmith) -- [QuizGPT: Create Kahoot quizzes with ChatGPT](https://github.com/Kladdy/quizgpt) -- [openai-chatgpt: Talk to ChatGPT from the terminal](https://github.com/gmpetrov/openai-chatgpt) -- [Clippy the Saleforce chatbot](https://github.com/sebas00/chatgptclippy) ClippyJS joke bot -- [ai-assistant](https://github.com/youking-lib/ai-assistant) Chat assistant -- [Feishu Bot](https://github.com/linjungz/feishu-chatgpt-bot) -- [DomainGPT: Discover available domain names](https://github.com/billylo1/DomainGPT) -- [AI Poem Generator](https://aipoemgenerator.com/) -- [Next.js ChatGPT With Firebase](https://github.com/youngle316/chatgpt) -- [ai-commit – GPT-3 Commit Message Generator](https://github.com/insulineru/ai-commit) -- [AItinerary – ChatGPT itinerary Generator](https://aitinerary.ai) -- [wechaty-chatgpt - A chatbot based on Wechaty & ChatGPT](https://github.com/zhengxs2018/wechaty-chatgpt) -- [Julius GPT](https://github.com/christophebe/julius-gpt) - Generate and publish your content from the CLI -- [OpenAI-API-Service](https://github.com/Jarvan-via/api-service) - Provides OpenAI related APIs for businesses -- [Discord Daily News Bot](https://github.com/ZirionNeft/chatgpt-discord-daily-news-bot) - Discord bot that generate funny daily news -- [ai-assistant](https://github.com/chenweiyi/ai-assistant) - Create a chat website similar to ChatGPT -- [Tulsk – AI-Driven Project Management](https://tulsk.io) - -If you create a cool integration, feel free to open a PR and add it to the list. - -## Compatibility - -- This package is ESM-only. -- This package supports `node >= 14`. -- This module assumes that `fetch` is installed. - - In `node >= 18`, it's installed by default. - - In `node < 18`, you need to install a polyfill like `unfetch/polyfill` ([guide](https://github.com/developit/unfetch#usage-as-a-polyfill)) or `isomorphic-fetch` ([guide](https://github.com/matthew-andrews/isomorphic-fetch#readme)). -- If you want to build a website using `chatgpt`, we recommend using it only from your backend API - -## Credits - -- Huge thanks to [@waylaidwanderer](https://github.com/waylaidwanderer), [@abacaj](https://github.com/abacaj), [@wong2](https://github.com/wong2), [@simon300000](https://github.com/simon300000), [@RomanHotsiy](https://github.com/RomanHotsiy), [@ElijahPepe](https://github.com/ElijahPepe), and all the other contributors 💪 -- [OpenAI](https://openai.com) for creating [ChatGPT](https://openai.com/blog/chatgpt/) 🔥 -- I run the [ChatGPT Hackers Discord](https://www.chatgpthackers.dev/) with over 8k developers – come join us! - -## License - -MIT © [Travis Fischer](https://transitivebullsh.it) - -If you found this project interesting, please consider [sponsoring me](https://github.com/sponsors/transitive-bullshit) or following me on twitter twitter diff --git a/src/chatgpt-api.ts b/src/chatgpt-api.ts deleted file mode 100644 index 2165956..0000000 --- a/src/chatgpt-api.ts +++ /dev/null @@ -1,470 +0,0 @@ -import Keyv from 'keyv' -import pTimeout from 'p-timeout' -import QuickLRU from 'quick-lru' -import { v4 as uuidv4 } from 'uuid' - -import * as tokenizer from './tokenizer' -import * as types from './types' -import { fetch as globalFetch } from './fetch' -import { fetchSSE } from './fetch-sse' - -const CHATGPT_MODEL = 'gpt-3.5-turbo' - -const USER_LABEL_DEFAULT = 'User' -const ASSISTANT_LABEL_DEFAULT = 'ChatGPT' - -export class ChatGPTAPI { - protected _apiKey: string - protected _apiBaseUrl: string - protected _apiOrg?: string - protected _debug: boolean - - protected _systemMessage: string - protected _completionParams: Omit< - types.openai.CreateChatCompletionRequest, - 'messages' | 'n' - > - protected _maxModelTokens: number - protected _maxResponseTokens: number - protected _fetch: types.FetchFn - - protected _getMessageById: types.GetMessageByIdFunction - protected _upsertMessage: types.UpsertMessageFunction - - protected _messageStore: Keyv - - /** - * Creates a new client wrapper around OpenAI's chat completion API, mimicing the official ChatGPT webapp's functionality as closely as possible. - * - * @param apiKey - OpenAI API key (required). - * @param apiOrg - Optional OpenAI API organization (optional). - * @param apiBaseUrl - Optional override for the OpenAI API base URL. - * @param debug - Optional enables logging debugging info to stdout. - * @param completionParams - Param overrides to send to the [OpenAI chat completion API](https://platform.openai.com/docs/api-reference/chat/create). Options like `temperature` and `presence_penalty` can be tweaked to change the personality of the assistant. - * @param maxModelTokens - Optional override for the maximum number of tokens allowed by the model's context. Defaults to 4096. - * @param maxResponseTokens - Optional override for the minimum number of tokens allowed for the model's response. Defaults to 1000. - * @param messageStore - Optional [Keyv](https://github.com/jaredwray/keyv) store to persist chat messages to. If not provided, messages will be lost when the process exits. - * @param getMessageById - Optional function to retrieve a message by its ID. If not provided, the default implementation will be used (using an in-memory `messageStore`). - * @param upsertMessage - Optional function to insert or update a message. If not provided, the default implementation will be used (using an in-memory `messageStore`). - * @param fetch - Optional override for the `fetch` implementation to use. Defaults to the global `fetch` function. - */ - constructor(opts: types.ChatGPTAPIOptions) { - const { - apiKey, - apiOrg, - apiBaseUrl = 'https://api.openai.com/v1', - debug = false, - messageStore, - completionParams, - systemMessage, - maxModelTokens = 4000, - maxResponseTokens = 1000, - getMessageById, - upsertMessage, - fetch = globalFetch - } = opts - - this._apiKey = apiKey - this._apiOrg = apiOrg - this._apiBaseUrl = apiBaseUrl - this._debug = !!debug - this._fetch = fetch - - this._completionParams = { - model: CHATGPT_MODEL, - temperature: 0.8, - top_p: 1.0, - presence_penalty: 1.0, - ...completionParams - } - - this._systemMessage = systemMessage - - if (this._systemMessage === undefined) { - const currentDate = new Date().toISOString().split('T')[0] - this._systemMessage = `You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.\nKnowledge cutoff: 2021-09-01\nCurrent date: ${currentDate}` - } - - this._maxModelTokens = maxModelTokens - this._maxResponseTokens = maxResponseTokens - - this._getMessageById = getMessageById ?? this._defaultGetMessageById - this._upsertMessage = upsertMessage ?? this._defaultUpsertMessage - - if (messageStore) { - this._messageStore = messageStore - } else { - this._messageStore = new Keyv({ - store: new QuickLRU({ maxSize: 10000 }) - }) - } - - if (!this._apiKey) { - throw new Error('OpenAI missing required apiKey') - } - - if (!this._fetch) { - throw new Error('Invalid environment; fetch is not defined') - } - - if (typeof this._fetch !== 'function') { - throw new Error('Invalid "fetch" is not a function') - } - } - - /** - * Sends a message to the OpenAI chat completions endpoint, waits for the response - * to resolve, and returns the response. - * - * If you want your response to have historical context, you must provide a valid `parentMessageId`. - * - * If you want to receive a stream of partial responses, use `opts.onProgress`. - * - * Set `debug: true` in the `ChatGPTAPI` constructor to log more info on the full prompt sent to the OpenAI chat completions API. You can override the `systemMessage` in `opts` to customize the assistant's instructions. - * - * @param message - The prompt message to send - * @param opts.parentMessageId - Optional ID of the previous message in the conversation (defaults to `undefined`) - * @param opts.conversationId - Optional ID of the conversation (defaults to `undefined`) - * @param opts.messageId - Optional ID of the message to send (defaults to a random UUID) - * @param opts.systemMessage - Optional override for the chat "system message" which acts as instructions to the model (defaults to the ChatGPT system message) - * @param opts.timeoutMs - Optional timeout in milliseconds (defaults to no timeout) - * @param opts.onProgress - Optional callback which will be invoked every time the partial response is updated - * @param opts.abortSignal - Optional callback used to abort the underlying `fetch` call using an [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) - * @param completionParams - Optional overrides to send to the [OpenAI chat completion API](https://platform.openai.com/docs/api-reference/chat/create). Options like `temperature` and `presence_penalty` can be tweaked to change the personality of the assistant. - * - * @returns The response from ChatGPT - */ - async sendMessage( - text: string, - opts: types.SendMessageOptions = {} - ): Promise { - const { - parentMessageId, - messageId = uuidv4(), - timeoutMs, - onProgress, - stream = onProgress ? true : false, - completionParams, - conversationId - } = opts - - let { abortSignal } = opts - - let abortController: AbortController = null - if (timeoutMs && !abortSignal) { - abortController = new AbortController() - abortSignal = abortController.signal - } - - const message: types.ChatMessage = { - role: 'user', - id: messageId, - conversationId, - parentMessageId, - text - } - - const latestQuestion = message - - const { messages, maxTokens, numTokens } = await this._buildMessages( - text, - opts - ) - - const result: types.ChatMessage = { - role: 'assistant', - id: uuidv4(), - conversationId, - parentMessageId: messageId, - text: '' - } - - const responseP = new Promise( - async (resolve, reject) => { - const url = `${this._apiBaseUrl}/chat/completions` - const headers = { - 'Content-Type': 'application/json', - Authorization: `Bearer ${this._apiKey}` - } - const body = { - max_tokens: maxTokens, - ...this._completionParams, - ...completionParams, - messages, - stream - } - - // Support multiple organizations - // See https://platform.openai.com/docs/api-reference/authentication - if (this._apiOrg) { - headers['OpenAI-Organization'] = this._apiOrg - } - - if (this._debug) { - console.log(`sendMessage (${numTokens} tokens)`, body) - } - - if (stream) { - fetchSSE( - url, - { - method: 'POST', - headers, - body: JSON.stringify(body), - signal: abortSignal, - onMessage: (data: string) => { - if (data === '[DONE]') { - result.text = result.text.trim() - return resolve(result) - } - - try { - const response: types.openai.CreateChatCompletionDeltaResponse = - JSON.parse(data) - - if (response.id) { - result.id = response.id - } - - if (response.choices?.length) { - const delta = response.choices[0].delta - result.delta = delta.content - if (delta?.content) result.text += delta.content - - if (delta.role) { - result.role = delta.role - } - - result.detail = response - onProgress?.(result) - } - } catch (err) { - console.warn('OpenAI stream SEE event unexpected error', err) - return reject(err) - } - } - }, - this._fetch - ).catch(reject) - } else { - try { - const res = await this._fetch(url, { - method: 'POST', - headers, - body: JSON.stringify(body), - signal: abortSignal - }) - - if (!res.ok) { - const reason = await res.text() - const msg = `OpenAI error ${ - res.status || res.statusText - }: ${reason}` - const error = new types.ChatGPTError(msg, { cause: res }) - error.statusCode = res.status - error.statusText = res.statusText - return reject(error) - } - - const response: types.openai.CreateChatCompletionResponse = - await res.json() - if (this._debug) { - console.log(response) - } - - if (response?.id) { - result.id = response.id - } - - if (response?.choices?.length) { - const message = response.choices[0].message - result.text = message.content - if (message.role) { - result.role = message.role - } - } else { - const res = response as any - return reject( - new Error( - `OpenAI error: ${ - res?.detail?.message || res?.detail || 'unknown' - }` - ) - ) - } - - result.detail = response - - return resolve(result) - } catch (err) { - return reject(err) - } - } - } - ).then(async (message) => { - if (message.detail && !message.detail.usage) { - try { - const promptTokens = numTokens - const completionTokens = await this._getTokenCount(message.text) - message.detail.usage = { - prompt_tokens: promptTokens, - completion_tokens: completionTokens, - total_tokens: promptTokens + completionTokens, - estimated: true - } - } catch (err) { - // TODO: this should really never happen, but if it does, - // we should handle notify the user gracefully - } - } - - return Promise.all([ - this._upsertMessage(latestQuestion), - this._upsertMessage(message) - ]).then(() => message) - }) - - if (timeoutMs) { - if (abortController) { - // This will be called when a timeout occurs in order for us to forcibly - // ensure that the underlying HTTP request is aborted. - ;(responseP as any).cancel = () => { - abortController.abort() - } - } - - return pTimeout(responseP, { - milliseconds: timeoutMs, - message: 'OpenAI timed out waiting for response' - }) - } else { - return responseP - } - } - - get apiKey(): string { - return this._apiKey - } - - set apiKey(apiKey: string) { - this._apiKey = apiKey - } - - get apiOrg(): string { - return this._apiOrg - } - - set apiOrg(apiOrg: string) { - this._apiOrg = apiOrg - } - - protected async _buildMessages(text: string, opts: types.SendMessageOptions) { - const { systemMessage = this._systemMessage } = opts - let { parentMessageId } = opts - - const userLabel = USER_LABEL_DEFAULT - const assistantLabel = ASSISTANT_LABEL_DEFAULT - - const maxNumTokens = this._maxModelTokens - this._maxResponseTokens - let messages: types.openai.ChatCompletionRequestMessage[] = [] - - if (systemMessage) { - messages.push({ - role: 'system', - content: systemMessage - }) - } - - const systemMessageOffset = messages.length - let nextMessages = text - ? messages.concat([ - { - role: 'user', - content: text, - name: opts.name - } - ]) - : messages - let numTokens = 0 - - do { - const prompt = nextMessages - .reduce((prompt, message) => { - switch (message.role) { - case 'system': - return prompt.concat([`Instructions:\n${message.content}`]) - case 'user': - return prompt.concat([`${userLabel}:\n${message.content}`]) - default: - return prompt.concat([`${assistantLabel}:\n${message.content}`]) - } - }, [] as string[]) - .join('\n\n') - - const nextNumTokensEstimate = await this._getTokenCount(prompt) - const isValidPrompt = nextNumTokensEstimate <= maxNumTokens - - if (prompt && !isValidPrompt) { - break - } - - messages = nextMessages - numTokens = nextNumTokensEstimate - - if (!isValidPrompt) { - break - } - - if (!parentMessageId) { - break - } - - const parentMessage = await this._getMessageById(parentMessageId) - if (!parentMessage) { - break - } - - const parentMessageRole = parentMessage.role || 'user' - - nextMessages = nextMessages.slice(0, systemMessageOffset).concat([ - { - role: parentMessageRole, - content: parentMessage.text, - name: parentMessage.name - }, - ...nextMessages.slice(systemMessageOffset) - ]) - - parentMessageId = parentMessage.parentMessageId - } while (true) - - // Use up to 4096 tokens (prompt + response), but try to leave 1000 tokens - // for the response. - const maxTokens = Math.max( - 1, - Math.min(this._maxModelTokens - numTokens, this._maxResponseTokens) - ) - - return { messages, maxTokens, numTokens } - } - - protected async _getTokenCount(text: string) { - // TODO: use a better fix in the tokenizer - text = text.replace(/<\|endoftext\|>/g, '') - - return tokenizer.encode(text).length - } - - protected async _defaultGetMessageById( - id: string - ): Promise { - const res = await this._messageStore.get(id) - return res - } - - protected async _defaultUpsertMessage( - message: types.ChatMessage - ): Promise { - await this._messageStore.set(message.id, message) - } -} diff --git a/src/chatgpt-unofficial-proxy-api.ts b/src/chatgpt-unofficial-proxy-api.ts deleted file mode 100644 index e67813e..0000000 --- a/src/chatgpt-unofficial-proxy-api.ts +++ /dev/null @@ -1,268 +0,0 @@ -import pTimeout from 'p-timeout' -import { v4 as uuidv4 } from 'uuid' - -import * as types from './types' -import { fetch as globalFetch } from './fetch' -import { fetchSSE } from './fetch-sse' -import { isValidUUIDv4 } from './utils' - -export class ChatGPTUnofficialProxyAPI { - protected _accessToken: string - protected _apiReverseProxyUrl: string - protected _debug: boolean - protected _model: string - protected _headers: Record - protected _fetch: types.FetchFn - - /** - * @param fetch - Optional override for the `fetch` implementation to use. Defaults to the global `fetch` function. - */ - constructor(opts: { - accessToken: string - - /** @defaultValue `https://bypass.duti.tech/api/conversation` **/ - apiReverseProxyUrl?: string - - /** @defaultValue `text-davinci-002-render-sha` **/ - model?: string - - /** @defaultValue `false` **/ - debug?: boolean - - /** @defaultValue `undefined` **/ - headers?: Record - - fetch?: types.FetchFn - }) { - const { - accessToken, - apiReverseProxyUrl = 'https://bypass.duti.tech/api/conversation', - model = 'text-davinci-002-render-sha', - debug = false, - headers, - fetch = globalFetch - } = opts - - this._accessToken = accessToken - this._apiReverseProxyUrl = apiReverseProxyUrl - this._debug = !!debug - this._model = model - this._fetch = fetch - this._headers = headers - - if (!this._accessToken) { - throw new Error('ChatGPT invalid accessToken') - } - - if (!this._fetch) { - throw new Error('Invalid environment; fetch is not defined') - } - - if (typeof this._fetch !== 'function') { - throw new Error('Invalid "fetch" is not a function') - } - } - - get accessToken(): string { - return this._accessToken - } - - set accessToken(value: string) { - this._accessToken = value - } - - /** - * Sends a message to ChatGPT, waits for the response to resolve, and returns - * the response. - * - * If you want your response to have historical context, you must provide a valid `parentMessageId`. - * - * If you want to receive a stream of partial responses, use `opts.onProgress`. - * If you want to receive the full response, including message and conversation IDs, - * you can use `opts.onConversationResponse` or use the `ChatGPTAPI.getConversation` - * helper. - * - * Set `debug: true` in the `ChatGPTAPI` constructor to log more info on the full prompt sent to the OpenAI completions API. You can override the `promptPrefix` and `promptSuffix` in `opts` to customize the prompt. - * - * @param message - The prompt message to send - * @param opts.conversationId - Optional ID of a conversation to continue (defaults to a random UUID) - * @param opts.parentMessageId - Optional ID of the previous message in the conversation (defaults to `undefined`) - * @param opts.messageId - Optional ID of the message to send (defaults to a random UUID) - * @param opts.timeoutMs - Optional timeout in milliseconds (defaults to no timeout) - * @param opts.onProgress - Optional callback which will be invoked every time the partial response is updated - * @param opts.abortSignal - Optional callback used to abort the underlying `fetch` call using an [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) - * - * @returns The response from ChatGPT - */ - async sendMessage( - text: string, - opts: types.SendMessageBrowserOptions = {} - ): Promise { - if (!!opts.conversationId !== !!opts.parentMessageId) { - throw new Error( - 'ChatGPTUnofficialProxyAPI.sendMessage: conversationId and parentMessageId must both be set or both be undefined' - ) - } - - if (opts.conversationId && !isValidUUIDv4(opts.conversationId)) { - throw new Error( - 'ChatGPTUnofficialProxyAPI.sendMessage: conversationId is not a valid v4 UUID' - ) - } - - if (opts.parentMessageId && !isValidUUIDv4(opts.parentMessageId)) { - throw new Error( - 'ChatGPTUnofficialProxyAPI.sendMessage: parentMessageId is not a valid v4 UUID' - ) - } - - if (opts.messageId && !isValidUUIDv4(opts.messageId)) { - throw new Error( - 'ChatGPTUnofficialProxyAPI.sendMessage: messageId is not a valid v4 UUID' - ) - } - - const { - conversationId, - parentMessageId = uuidv4(), - messageId = uuidv4(), - action = 'next', - timeoutMs, - onProgress - } = opts - - let { abortSignal } = opts - - let abortController: AbortController = null - if (timeoutMs && !abortSignal) { - abortController = new AbortController() - abortSignal = abortController.signal - } - - const body: types.ConversationJSONBody = { - action, - messages: [ - { - id: messageId, - role: 'user', - content: { - content_type: 'text', - parts: [text] - } - } - ], - model: this._model, - parent_message_id: parentMessageId - } - - if (conversationId) { - body.conversation_id = conversationId - } - - const result: types.ChatMessage = { - role: 'assistant', - id: uuidv4(), - parentMessageId: messageId, - conversationId, - text: '' - } - - const responseP = new Promise((resolve, reject) => { - const url = this._apiReverseProxyUrl - const headers = { - ...this._headers, - Authorization: `Bearer ${this._accessToken}`, - Accept: 'text/event-stream', - 'Content-Type': 'application/json' - } - - if (this._debug) { - console.log('POST', url, { body, headers }) - } - - fetchSSE( - url, - { - method: 'POST', - headers, - body: JSON.stringify(body), - signal: abortSignal, - onMessage: (data: string) => { - if (data === '[DONE]') { - return resolve(result) - } - - try { - const convoResponseEvent: types.ConversationResponseEvent = - JSON.parse(data) - if (convoResponseEvent.conversation_id) { - result.conversationId = convoResponseEvent.conversation_id - } - - if (convoResponseEvent.message?.id) { - result.id = convoResponseEvent.message.id - } - - const message = convoResponseEvent.message - // console.log('event', JSON.stringify(convoResponseEvent, null, 2)) - - if (message) { - let text = message?.content?.parts?.[0] - - if (text) { - result.text = text - - if (onProgress) { - onProgress(result) - } - } - } - } catch (err) { - if (this._debug) { - console.warn('chatgpt unexpected JSON error', err) - } - // reject(err) - } - }, - onError: (err) => { - reject(err) - } - }, - this._fetch - ).catch((err) => { - const errMessageL = err.toString().toLowerCase() - - if ( - result.text && - (errMessageL === 'error: typeerror: terminated' || - errMessageL === 'typeerror: terminated') - ) { - // OpenAI sometimes forcefully terminates the socket from their end before - // the HTTP request has resolved cleanly. In my testing, these cases tend to - // happen when OpenAI has already send the last `response`, so we can ignore - // the `fetch` error in this case. - return resolve(result) - } else { - return reject(err) - } - }) - }) - - if (timeoutMs) { - if (abortController) { - // This will be called when a timeout occurs in order for us to forcibly - // ensure that the underlying HTTP request is aborted. - ;(responseP as any).cancel = () => { - abortController.abort() - } - } - - return pTimeout(responseP, { - milliseconds: timeoutMs, - message: 'ChatGPT timed out waiting for response' - }) - } else { - return responseP - } - } -} diff --git a/src/fetch-sse.ts b/src/fetch-sse.ts deleted file mode 100644 index 08edacb..0000000 --- a/src/fetch-sse.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { createParser } from 'eventsource-parser' - -import * as types from './types' -import { fetch as globalFetch } from './fetch' -import { streamAsyncIterable } from './stream-async-iterable' - -export async function fetchSSE( - url: string, - options: Parameters[1] & { - onMessage: (data: string) => void - onError?: (error: any) => void - }, - fetch: types.FetchFn = globalFetch -) { - const { onMessage, onError, ...fetchOptions } = options - const res = await fetch(url, fetchOptions) - if (!res.ok) { - let reason: string - - try { - reason = await res.text() - } catch (err) { - reason = res.statusText - } - - const msg = `ChatGPT error ${res.status}: ${reason}` - const error = new types.ChatGPTError(msg, { cause: res }) - error.statusCode = res.status - error.statusText = res.statusText - throw error - } - - const parser = createParser((event) => { - if (event.type === 'event') { - onMessage(event.data) - } - }) - - // handle special response errors - const feed = (chunk: string) => { - let response = null - - try { - response = JSON.parse(chunk) - } catch { - // ignore - } - - if (response?.detail?.type === 'invalid_request_error') { - const msg = `ChatGPT error ${response.detail.message}: ${response.detail.code} (${response.detail.type})` - const error = new types.ChatGPTError(msg, { cause: response }) - error.statusCode = response.detail.code - error.statusText = response.detail.message - - if (onError) { - onError(error) - } else { - console.error(error) - } - - // don't feed to the event parser - return - } - - parser.feed(chunk) - } - - if (!res.body.getReader) { - // Vercel polyfills `fetch` with `node-fetch`, which doesn't conform to - // web standards, so this is a workaround... - const body: NodeJS.ReadableStream = res.body as any - - if (!body.on || !body.read) { - throw new types.ChatGPTError('unsupported "fetch" implementation') - } - - body.on('readable', () => { - let chunk: string | Buffer - while (null !== (chunk = body.read())) { - feed(chunk.toString()) - } - }) - } else { - for await (const chunk of streamAsyncIterable(res.body)) { - const str = new TextDecoder().decode(chunk) - feed(str) - } - } -} diff --git a/src/fetch.ts b/src/fetch.ts deleted file mode 100644 index 1dcd6a3..0000000 --- a/src/fetch.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// - -const fetch = globalThis.fetch - -export { fetch } diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index f8acafe..0000000 --- a/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './chatgpt-api' -export * from './chatgpt-unofficial-proxy-api' -export * from './types' diff --git a/src/stream-async-iterable.ts b/src/stream-async-iterable.ts deleted file mode 100644 index 78eb497..0000000 --- a/src/stream-async-iterable.ts +++ /dev/null @@ -1,14 +0,0 @@ -export async function* streamAsyncIterable(stream: ReadableStream) { - const reader = stream.getReader() - try { - while (true) { - const { done, value } = await reader.read() - if (done) { - return - } - yield value - } - } finally { - reader.releaseLock() - } -} diff --git a/src/tokenizer.ts b/src/tokenizer.ts deleted file mode 100644 index 87cc375..0000000 --- a/src/tokenizer.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { getEncoding } from 'js-tiktoken' - -// TODO: make this configurable -const tokenizer = getEncoding('cl100k_base') - -export function encode(input: string): Uint32Array { - return new Uint32Array(tokenizer.encode(input)) -} diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 2328584..0000000 --- a/src/types.ts +++ /dev/null @@ -1,446 +0,0 @@ -import Keyv from 'keyv' - -export type Role = 'user' | 'assistant' | 'system' - -export type FetchFn = typeof fetch - -export type ChatGPTAPIOptions = { - apiKey: string - - /** @defaultValue `'https://api.openai.com'` **/ - apiBaseUrl?: string - - apiOrg?: string - - /** @defaultValue `false` **/ - debug?: boolean - - completionParams?: Partial< - Omit - > - - systemMessage?: string - - /** @defaultValue `4096` **/ - maxModelTokens?: number - - /** @defaultValue `1000` **/ - maxResponseTokens?: number - - messageStore?: Keyv - getMessageById?: GetMessageByIdFunction - upsertMessage?: UpsertMessageFunction - - fetch?: FetchFn -} - -export type SendMessageOptions = { - /** The name of a user in a multi-user chat. */ - name?: string - parentMessageId?: string - conversationId?: string - messageId?: string - stream?: boolean - systemMessage?: string - timeoutMs?: number - onProgress?: (partialResponse: ChatMessage) => void - abortSignal?: AbortSignal - completionParams?: Partial< - Omit - > -} - -export type MessageActionType = 'next' | 'variant' - -export type SendMessageBrowserOptions = { - conversationId?: string - parentMessageId?: string - messageId?: string - action?: MessageActionType - timeoutMs?: number - onProgress?: (partialResponse: ChatMessage) => void - abortSignal?: AbortSignal -} - -export interface ChatMessage { - id: string - text: string - role: Role - name?: string - delta?: string - detail?: - | openai.CreateChatCompletionResponse - | CreateChatCompletionStreamResponse - - // relevant for both ChatGPTAPI and ChatGPTUnofficialProxyAPI - parentMessageId?: string - - // only relevant for ChatGPTUnofficialProxyAPI (optional for ChatGPTAPI) - conversationId?: string -} - -export class ChatGPTError extends Error { - statusCode?: number - statusText?: string - isFinal?: boolean - accountId?: string -} - -/** Returns a chat message from a store by it's ID (or null if not found). */ -export type GetMessageByIdFunction = (id: string) => Promise - -/** Upserts a chat message to a store. */ -export type UpsertMessageFunction = (message: ChatMessage) => Promise - -export interface CreateChatCompletionStreamResponse - extends openai.CreateChatCompletionDeltaResponse { - usage: CreateCompletionStreamResponseUsage -} - -export interface CreateCompletionStreamResponseUsage - extends openai.CreateCompletionResponseUsage { - estimated: true -} - -/** - * https://chat.openapi.com/backend-api/conversation - */ -export type ConversationJSONBody = { - /** - * The action to take - */ - action: string - - /** - * The ID of the conversation - */ - conversation_id?: string - - /** - * Prompts to provide - */ - messages: Prompt[] - - /** - * The model to use - */ - model: string - - /** - * The parent message ID - */ - parent_message_id: string -} - -export type Prompt = { - /** - * The content of the prompt - */ - content: PromptContent - - /** - * The ID of the prompt - */ - id: string - - /** - * The role played in the prompt - */ - role: Role -} - -export type ContentType = 'text' - -export type PromptContent = { - /** - * The content type of the prompt - */ - content_type: ContentType - - /** - * The parts to the prompt - */ - parts: string[] -} - -export type ConversationResponseEvent = { - message?: Message - conversation_id?: string - error?: string | null -} - -export type Message = { - id: string - content: MessageContent - role: Role - user: string | null - create_time: string | null - update_time: string | null - end_turn: null - weight: number - recipient: string - metadata: MessageMetadata -} - -export type MessageContent = { - content_type: string - parts: string[] -} - -export type MessageMetadata = any - -export namespace openai { - export interface CreateChatCompletionDeltaResponse { - id: string - object: 'chat.completion.chunk' - created: number - model: string - choices: [ - { - delta: { - role: Role - content?: string - } - index: number - finish_reason: string | null - } - ] - } - - /** - * - * @export - * @interface ChatCompletionRequestMessage - */ - export interface ChatCompletionRequestMessage { - /** - * The role of the author of this message. - * @type {string} - * @memberof ChatCompletionRequestMessage - */ - role: ChatCompletionRequestMessageRoleEnum - /** - * The contents of the message - * @type {string} - * @memberof ChatCompletionRequestMessage - */ - content: string - /** - * The name of the user in a multi-user chat - * @type {string} - * @memberof ChatCompletionRequestMessage - */ - name?: string - } - export declare const ChatCompletionRequestMessageRoleEnum: { - readonly System: 'system' - readonly User: 'user' - readonly Assistant: 'assistant' - } - export declare type ChatCompletionRequestMessageRoleEnum = - (typeof ChatCompletionRequestMessageRoleEnum)[keyof typeof ChatCompletionRequestMessageRoleEnum] - /** - * - * @export - * @interface ChatCompletionResponseMessage - */ - export interface ChatCompletionResponseMessage { - /** - * The role of the author of this message. - * @type {string} - * @memberof ChatCompletionResponseMessage - */ - role: ChatCompletionResponseMessageRoleEnum - /** - * The contents of the message - * @type {string} - * @memberof ChatCompletionResponseMessage - */ - content: string - } - export declare const ChatCompletionResponseMessageRoleEnum: { - readonly System: 'system' - readonly User: 'user' - readonly Assistant: 'assistant' - } - export declare type ChatCompletionResponseMessageRoleEnum = - (typeof ChatCompletionResponseMessageRoleEnum)[keyof typeof ChatCompletionResponseMessageRoleEnum] - /** - * - * @export - * @interface CreateChatCompletionRequest - */ - export interface CreateChatCompletionRequest { - /** - * ID of the model to use. Currently, only `gpt-3.5-turbo` and `gpt-3.5-turbo-0301` are supported. - * @type {string} - * @memberof CreateChatCompletionRequest - */ - model: string - /** - * The messages to generate chat completions for, in the [chat format](/docs/guides/chat/introduction). - * @type {Array} - * @memberof CreateChatCompletionRequest - */ - messages: Array - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both. - * @type {number} - * @memberof CreateChatCompletionRequest - */ - temperature?: number | null - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or `temperature` but not both. - * @type {number} - * @memberof CreateChatCompletionRequest - */ - top_p?: number | null - /** - * How many chat completion choices to generate for each input message. - * @type {number} - * @memberof CreateChatCompletionRequest - */ - n?: number | null - /** - * If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. - * @type {boolean} - * @memberof CreateChatCompletionRequest - */ - stream?: boolean | null - /** - * - * @type {CreateChatCompletionRequestStop} - * @memberof CreateChatCompletionRequest - */ - stop?: CreateChatCompletionRequestStop - /** - * The maximum number of tokens allowed for the generated answer. By default, the number of tokens the model can return will be (4096 - prompt tokens). - * @type {number} - * @memberof CreateChatCompletionRequest - */ - max_tokens?: number - /** - * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model\'s likelihood to talk about new topics. [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - * @type {number} - * @memberof CreateChatCompletionRequest - */ - presence_penalty?: number | null - /** - * Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model\'s likelihood to repeat the same line verbatim. [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details) - * @type {number} - * @memberof CreateChatCompletionRequest - */ - frequency_penalty?: number | null - /** - * Modify the likelihood of specified tokens appearing in the completion. Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. - * @type {object} - * @memberof CreateChatCompletionRequest - */ - logit_bias?: object | null - /** - * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids). - * @type {string} - * @memberof CreateChatCompletionRequest - */ - user?: string - } - /** - * @type CreateChatCompletionRequestStop - * Up to 4 sequences where the API will stop generating further tokens. - * @export - */ - export declare type CreateChatCompletionRequestStop = Array | string - /** - * - * @export - * @interface CreateChatCompletionResponse - */ - export interface CreateChatCompletionResponse { - /** - * - * @type {string} - * @memberof CreateChatCompletionResponse - */ - id: string - /** - * - * @type {string} - * @memberof CreateChatCompletionResponse - */ - object: string - /** - * - * @type {number} - * @memberof CreateChatCompletionResponse - */ - created: number - /** - * - * @type {string} - * @memberof CreateChatCompletionResponse - */ - model: string - /** - * - * @type {Array} - * @memberof CreateChatCompletionResponse - */ - choices: Array - /** - * - * @type {CreateCompletionResponseUsage} - * @memberof CreateChatCompletionResponse - */ - usage?: CreateCompletionResponseUsage - } - /** - * - * @export - * @interface CreateChatCompletionResponseChoicesInner - */ - export interface CreateChatCompletionResponseChoicesInner { - /** - * - * @type {number} - * @memberof CreateChatCompletionResponseChoicesInner - */ - index?: number - /** - * - * @type {ChatCompletionResponseMessage} - * @memberof CreateChatCompletionResponseChoicesInner - */ - message?: ChatCompletionResponseMessage - /** - * - * @type {string} - * @memberof CreateChatCompletionResponseChoicesInner - */ - finish_reason?: string - } - /** - * - * @export - * @interface CreateCompletionResponseUsage - */ - export interface CreateCompletionResponseUsage { - /** - * - * @type {number} - * @memberof CreateCompletionResponseUsage - */ - prompt_tokens: number - /** - * - * @type {number} - * @memberof CreateCompletionResponseUsage - */ - completion_tokens: number - /** - * - * @type {number} - * @memberof CreateCompletionResponseUsage - */ - total_tokens: number - } -} diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index c849d5c..0000000 --- a/src/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -const uuidv4Re = - /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i - -export function isValidUUIDv4(str: string): boolean { - return str && uuidv4Re.test(str) -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 9c6127d..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "lib": ["esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "baseUrl": ".", - "outDir": "build", - "noEmit": true - }, - "exclude": ["node_modules", "build"], - "include": ["**/*.ts"] -} diff --git a/tsup.config.ts b/tsup.config.ts deleted file mode 100644 index 15a3436..0000000 --- a/tsup.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { defineConfig } from 'tsup' - -export default defineConfig([ - { - entry: ['src/index.ts', 'src/cli.ts'], - outDir: 'build', - target: 'node16', - platform: 'node', - format: ['esm'], - splitting: false, - sourcemap: true, - minify: false, - shims: true, - dts: true - } -]) diff --git a/typedoc.json b/typedoc.json deleted file mode 100644 index f09e1b5..0000000 --- a/typedoc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://typedoc.org/schema.json", - "entryPoints": ["./src/index.ts"], - "exclude": ["**/*.test.ts"], - "plugin": ["typedoc-plugin-markdown"], - "out": "docs", - "hideBreadcrumbs": false, - "hideInPageTOC": false, - "excludePrivate": true, - "excludeProtected": true, - "excludeExternals": true, - "excludeInternal": true, - "entryDocument": "readme.md" -}