├── .eslintignore ├── bin └── cli.js ├── .env ├── .prettierrc.cjs ├── src ├── index.ts ├── errors.ts ├── types.ts ├── getEnvKeys.ts ├── splitIntoChunks.test.ts ├── semanticQuery.ts ├── commands │ ├── search.ts │ └── indexFiles.ts ├── splitIntoChunks.ts ├── titleCase.ts ├── getEmbeddings.ts ├── bin │ └── cli.ts ├── password.ts ├── mdxToPlainText.test.ts └── mdxToPlainText.ts ├── .gitignore ├── tsconfig.json ├── .eslintrc.cjs ├── LICENSE.md ├── .github └── workflows │ └── ci.yml ├── package.json ├── README.md └── pnpm-lock.yaml /.eslintignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /bin/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require("../dist/bin/cli.js"); 4 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | 3 | PINECONE_API_KEY= 4 | PINECONE_BASE_URL= 5 | PINECONE_NAMESPACE= 6 | -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import("prettier").Config} */ 2 | module.exports = { 3 | proseWrap: "always", 4 | }; 5 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { indexFiles } from "./commands/indexFiles.js"; 2 | export { search } from "./commands/search.js"; 3 | export * from "./errors.js"; 4 | export { type SemanticQueryOptions, semanticQuery } from "./semanticQuery.js"; 5 | export * from "./types.js"; 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | 4 | # dependencies 5 | node_modules/ 6 | 7 | # logs 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | pnpm-debug.log* 12 | 13 | # macOS-specific files 14 | .DS_Store 15 | 16 | .env.local 17 | .env.*.local 18 | 19 | todo.md 20 | 21 | # pnpm pack 22 | *.tgz -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "ESNext", 4 | "target": "ES2022", 5 | "moduleResolution": "bundler", 6 | "strict": true, 7 | "noUncheckedIndexedAccess": true, 8 | "outDir": "dist", 9 | "declaration": true, 10 | "skipLibCheck": true, 11 | "importHelpers": true 12 | }, 13 | "include": ["src"] 14 | } 15 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", 3 | extends: ["@edgeandnode"], 4 | settings: { react: { version: "999.999.999" } }, 5 | rules: {}, 6 | overrides: [ 7 | { 8 | files: ["*.ts", "*.tsx"], 9 | parserOptions: { 10 | project: require.resolve("./tsconfig.json"), 11 | }, 12 | rules: { 13 | "react/jsx-key": "off", 14 | "react/style-prop-object": "off", 15 | }, 16 | }, 17 | ], 18 | }; 19 | -------------------------------------------------------------------------------- /src/errors.ts: -------------------------------------------------------------------------------- 1 | export function isRateLimitExceeded(err: unknown): boolean { 2 | return ( 3 | typeof err === "object" && 4 | err !== null && 5 | "response" in err && 6 | typeof err["response"] === "object" && 7 | err["response"] !== null && 8 | "status" in err.response && 9 | err.response.status === 429 10 | ); 11 | } 12 | 13 | export function isAuthError(err: unknown): boolean { 14 | return ( 15 | typeof err === "object" && 16 | err !== null && 17 | "response" in err && 18 | typeof err["response"] === "object" && 19 | err["response"] !== null && 20 | "status" in err.response && 21 | err.response.status === 401 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type SemanticSearchMetadata = { 2 | id: string; 3 | title: string; 4 | text: string; 5 | start: number; 6 | end: number; 7 | }; 8 | 9 | export type SemanticSearchVector = { 10 | id: string; 11 | values: number[]; 12 | metadata: SemanticSearchMetadata; 13 | }; 14 | 15 | export interface PostDetails { 16 | title: string; 17 | path: string; 18 | content: PostContent; 19 | } 20 | 21 | export type PostContent = { 22 | chunks: Chunk[]; 23 | }; 24 | 25 | export type Chunk = { 26 | text: string; 27 | start: number; 28 | end: number; 29 | }; 30 | 31 | export const OPENAI_EMBEDDING_MODEL = "text-embedding-ada-002"; 32 | export const MAX_INPUT_TOKENS = 100; 33 | -------------------------------------------------------------------------------- /src/getEnvKeys.ts: -------------------------------------------------------------------------------- 1 | import { text } from "@clack/prompts"; 2 | 3 | import { password } from "./password.js"; 4 | 5 | export const getEnvKeys = async () => { 6 | if (!process.env.OPENAI_API_KEY) { 7 | process.env.OPENAI_API_KEY = (await password({ 8 | message: "Enter your OpenAI API key.", 9 | })) as string; 10 | } 11 | 12 | if (!process.env.PINECONE_API_KEY) { 13 | process.env.PINECONE_API_KEY = (await password({ 14 | message: "Enter your Pinecone API key.", 15 | })) as string; 16 | } 17 | 18 | if (!process.env.PINECONE_BASE_URL) { 19 | process.env.PINECONE_BASE_URL = (await text({ 20 | message: "Enter your Pinecone base URL.", 21 | })) as string; 22 | } 23 | 24 | if (!process.env.PINECONE_NAMESPACE) { 25 | process.env.PINECONE_NAMESPACE = (await text({ 26 | message: "Enter your Pinecone namespace.", 27 | })) as string; 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /src/splitIntoChunks.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from "vitest"; 2 | 3 | import { splitIntoChunks } from "./splitIntoChunks.js"; 4 | 5 | describe("splitIntoChunks", () => { 6 | it("should not lose tokens", async () => { 7 | const text = 8 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; 9 | 10 | const chunks = splitIntoChunks(text); 11 | 12 | const textInChunks = chunks.map((chunk) => chunk.text).join(""); 13 | 14 | expect(text.length).toBe(textInChunks.length); 15 | expect(text).toBe(textInChunks); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /src/semanticQuery.ts: -------------------------------------------------------------------------------- 1 | import type { OpenAIApi } from "openai"; 2 | import type { PineconeClient } from "pinecone-client"; 3 | 4 | import { OPENAI_EMBEDDING_MODEL, SemanticSearchMetadata } from "./types.js"; 5 | 6 | export interface SemanticQueryOptions { 7 | /** Default: 10 */ 8 | limit?: number; 9 | /** Default: false */ 10 | includeValues?: boolean; 11 | } 12 | export async function semanticQuery( 13 | query: string, 14 | openai: OpenAIApi, 15 | pinecone: PineconeClient, 16 | options?: SemanticQueryOptions 17 | ) { 18 | const embed = ( 19 | await openai.createEmbedding({ 20 | input: query, 21 | model: OPENAI_EMBEDDING_MODEL, 22 | }) 23 | ).data; 24 | 25 | if (!embed.data.length || !embed.data[0]) { 26 | throw new Error(`Error generating embedding for query: ${query}`); 27 | } 28 | 29 | const response = await pinecone.query({ 30 | vector: embed.data[0].embedding, 31 | topK: options?.limit ?? 10, 32 | includeMetadata: true, 33 | includeValues: options?.includeValues ?? false, 34 | }); 35 | 36 | return response; 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Aleksandra Sikora 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | jobs: 5 | test-build-and-deploy: 6 | runs-on: ubuntu-latest 7 | permissions: 8 | deployments: write 9 | contents: write 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v3 13 | with: 14 | fetch-depth: 0 15 | 16 | - uses: pnpm/action-setup@v2 17 | with: 18 | version: 7 19 | 20 | - uses: actions/setup-node@v3 21 | with: 22 | node-version: "18" 23 | cache: "pnpm" 24 | 25 | - name: Install 26 | id: install 27 | run: | 28 | pnpm install --no-optional --frozen-lockfile ${{ env.IS_DEPENDABOT == 0 }} 29 | 30 | - name: Commit lockfile 31 | if: ${{ env.IS_DEPENDABOT == 1 }} 32 | uses: EndBug/add-and-commit@v9 33 | with: 34 | { add: "pnpm-lock.yaml", fetch: false, message: "Update lockfile" } 35 | 36 | - name: Run linter 37 | run: pnpm lint --quiet 38 | 39 | - name: Typecheck 40 | run: pnpm typecheck 41 | 42 | - name: Build 43 | run: pnpm build 44 | 45 | env: 46 | IS_DEPENDABOT: ${{ secrets.IS_DEPENDABOT }} 47 | -------------------------------------------------------------------------------- /src/commands/search.ts: -------------------------------------------------------------------------------- 1 | import { intro, outro, spinner, text } from "@clack/prompts"; 2 | import { Configuration, OpenAIApi } from "openai"; 3 | import { PineconeClient } from "pinecone-client"; 4 | 5 | import { getEnvKeys } from "../getEnvKeys.js"; 6 | import { semanticQuery } from "../semanticQuery.js"; 7 | import { SemanticSearchMetadata } from "../types.js"; 8 | 9 | export async function search() { 10 | intro(`@beerose/semantic-search search`); 11 | await getEnvKeys(); 12 | 13 | const s = spinner(); 14 | 15 | const query = (await text({ 16 | message: "Enter a search query:", 17 | })) as string; 18 | 19 | s.start("Searching..."); 20 | 21 | const openai = new OpenAIApi( 22 | new Configuration({ 23 | apiKey: process.env.OPENAI_API_KEY!, 24 | }) 25 | ); 26 | 27 | const pinecone = new PineconeClient({ 28 | apiKey: process.env.PINECONE_API_KEY!, 29 | baseUrl: process.env.PINECONE_BASE_URL!, 30 | namespace: process.env.PINECONE_NAMESPACE!, 31 | }); 32 | 33 | const response = await semanticQuery(query, openai, pinecone); 34 | 35 | console.log(JSON.stringify(response, null, 2)); 36 | 37 | s.stop(); 38 | outro("Done!"); 39 | } 40 | -------------------------------------------------------------------------------- /src/splitIntoChunks.ts: -------------------------------------------------------------------------------- 1 | import GPT3Tokenizer from "gpt3-tokenizer"; 2 | 3 | import { Chunk, MAX_INPUT_TOKENS } from "./types.js"; 4 | 5 | export const splitIntoChunks = ( 6 | content: string, 7 | maxInputTokens = MAX_INPUT_TOKENS 8 | ) => { 9 | const chunks: Chunk[] = []; 10 | let chunk = { 11 | tokens: [] as string[], 12 | start: 0, 13 | end: 0, 14 | }; 15 | let start = 0; 16 | 17 | const tokenizer = new GPT3Tokenizer({ type: "gpt3" }); 18 | const { text } = tokenizer.encode(content); 19 | 20 | for (const word of text) { 21 | const newChunkTokens = [...chunk.tokens, word]; 22 | if (newChunkTokens.length > maxInputTokens) { 23 | const text = chunk.tokens.join(""); 24 | chunks.push({ 25 | text, 26 | start, 27 | end: start + text.length, 28 | }); 29 | start += text.length + 1; 30 | chunk = { 31 | tokens: [word], 32 | start, 33 | end: start, 34 | }; 35 | } else { 36 | chunk = { 37 | ...chunk, 38 | tokens: newChunkTokens, 39 | }; 40 | } 41 | } 42 | chunks.push({ 43 | ...chunk, 44 | text: chunk.tokens.join(""), 45 | }); 46 | 47 | return chunks; 48 | }; 49 | -------------------------------------------------------------------------------- /src/titleCase.ts: -------------------------------------------------------------------------------- 1 | const smallWords = 2 | /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|v.?|vs.?|via)$/i; 3 | const alphanumericPattern = /([A-Za-z0-9\u00C0-\u00FF])/; 4 | const wordSeparators = /([ :–—-])/; 5 | 6 | /** 7 | * @author David Gouch 8 | * @see https://github.com/gouch/to-title-case/blob/master/to-title-case.js 9 | * @changes 10 | * - moved fron string prototype to a function export 11 | * - annotated with TypeScript 12 | * - returned " " when `current === "-"`, because our pathnames are kebab-cased 13 | */ 14 | export function titleCase(str: string) { 15 | return str 16 | .split(wordSeparators) 17 | .map((current, index, array) => { 18 | if (current === "-") return " "; 19 | 20 | if ( 21 | /* Check for small words */ 22 | current.search(smallWords) > -1 && 23 | /* Skip first and last word */ 24 | index !== 0 && 25 | index !== array.length - 1 && 26 | /* Ignore title end and subtitle start */ 27 | array[index - 3] !== ":" && 28 | array[index + 1] !== ":" && 29 | (array[index + 1] !== "-" || 30 | (array[index - 1] === "-" && array[index + 1] === "-")) 31 | ) { 32 | return current.toLowerCase(); 33 | } 34 | 35 | /* Ignore intentional capitalization */ 36 | if (current.slice(1).search(/[A-Z]|\../) > -1) { 37 | return current; 38 | } 39 | 40 | /* Ignore URLs */ 41 | if (array[index + 1] === ":" && array[index + 2] !== "") { 42 | return current; 43 | } 44 | 45 | /* Capitalize the first letter */ 46 | return current.replace(alphanumericPattern, (match) => 47 | match.toUpperCase() 48 | ); 49 | }) 50 | .join(""); 51 | } 52 | -------------------------------------------------------------------------------- /src/getEmbeddings.ts: -------------------------------------------------------------------------------- 1 | import type { OpenAIApi } from "openai"; 2 | 3 | import { isRateLimitExceeded } from "./errors.js"; 4 | import { 5 | type PostContent, 6 | type SemanticSearchVector, 7 | OPENAI_EMBEDDING_MODEL, 8 | } from "./types.js"; 9 | 10 | export async function getEmbeddings({ 11 | content, 12 | id, 13 | title, 14 | openai, 15 | model = OPENAI_EMBEDDING_MODEL, 16 | }: { 17 | content: PostContent; 18 | title: string; 19 | id: string; 20 | openai: OpenAIApi; 21 | model?: string; 22 | }) { 23 | const pendingVectors = content.chunks.map(({ text, start, end }, index) => { 24 | return { 25 | id: `${id}:${index}`, 26 | input: text, 27 | metadata: { 28 | index, 29 | id, 30 | title, 31 | text, 32 | end, 33 | start, 34 | }, 35 | }; 36 | }); 37 | 38 | const vectors: SemanticSearchVector[] = []; 39 | 40 | let timeout = 10_000; 41 | while (pendingVectors.length) { 42 | // We have 20 RPM on Free Trial, and 60 RPM on Pay-as-you-go plan, so we'll do exponential backoff. 43 | const pendingVector = pendingVectors.shift()!; 44 | try { 45 | const { data: embed } = await openai.createEmbedding({ 46 | input: pendingVector.input, 47 | model, 48 | }); 49 | 50 | const vector: SemanticSearchVector = { 51 | id: pendingVector.id, 52 | metadata: pendingVector.metadata, 53 | values: embed.data[0]?.embedding || [], 54 | }; 55 | 56 | vectors.push(vector); 57 | } catch (err: unknown) { 58 | if (isRateLimitExceeded(err)) { 59 | pendingVectors.unshift(pendingVector); 60 | console.log("OpenAI rate limit exceeded, retrying in", timeout, "ms"); 61 | await new Promise((resolve) => setTimeout(resolve, timeout)); 62 | timeout *= 2; 63 | } else { 64 | throw err; 65 | } 66 | } 67 | } 68 | 69 | return vectors; 70 | } 71 | -------------------------------------------------------------------------------- /src/bin/cli.ts: -------------------------------------------------------------------------------- 1 | import { cac } from "cac"; 2 | import dotenv from "dotenv"; 3 | import color from "picocolors"; 4 | 5 | import { indexFiles } from "../commands/indexFiles.js"; 6 | import { search } from "../commands/search.js"; 7 | import { isAuthError } from "../errors.js"; 8 | 9 | dotenv.config(); 10 | 11 | const cli = cac("@beerose/semantic-search"); 12 | 13 | cli 14 | .command( 15 | "index ", 16 | "Process files with your content and upload them to Pinecone" 17 | ) 18 | .example("index ./posts") 19 | .action(async (postsDir) => { 20 | try { 21 | await indexFiles(postsDir); 22 | } catch (err: any) { 23 | if (isAuthError(err)) { 24 | console.error( 25 | color.red( 26 | "\n❌ Authorization error — please check your environment variables.\n" 27 | ) 28 | ); 29 | process.exit(1); 30 | } 31 | console.error(color.red(err.message)); 32 | process.exit(1); 33 | } 34 | }); 35 | 36 | cli 37 | .command("search", "Search by a provided query") 38 | .example("search") 39 | .action(async () => { 40 | try { 41 | await search(); 42 | } catch (err: any) { 43 | if (isAuthError(err)) { 44 | console.error( 45 | color.red( 46 | "\n❌ Authorization error — please check your environment variables.\n" 47 | ) 48 | ); 49 | process.exit(1); 50 | } 51 | console.error(color.red(err.message)); 52 | process.exit(1); 53 | } 54 | }); 55 | 56 | cli.command("", "").action(() => { 57 | cli.outputHelp(); 58 | }); 59 | 60 | cli.help(); 61 | 62 | try { 63 | cli.parse(process.argv, { run: false }); 64 | cli.runMatchedCommand(); 65 | } catch (error: any) { 66 | if (error.name === "CACError") { 67 | console.error(error.message + "\n"); 68 | cli.outputHelp(); 69 | } else { 70 | console.error(color.red(error.stack)); 71 | } 72 | process.exit(1); 73 | } 74 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@beerose/semantic-search", 3 | "license": "MIT", 4 | "version": "1.0.0", 5 | "description": "An OpenAI-powered CLI to build a semantic search index from your MDX files.", 6 | "author": { 7 | "email": "alexsandra.sikora@gmail.com", 8 | "name": "Aleksandra Sikora", 9 | "url": "https://aleksandra.codes" 10 | }, 11 | "homepage": "https://github.com/beerose/semantic-search/blob/main/README.md", 12 | "bin": { 13 | "@beerose/semantic-search": "bin/cli.js" 14 | }, 15 | "type": "commonjs", 16 | "main": "dist/index.js", 17 | "types": "dist/index.d.ts", 18 | "publishConfig": { 19 | "access": "public" 20 | }, 21 | "keywords": [ 22 | "semantic", 23 | "search", 24 | "cli", 25 | "mdx", 26 | "pinecone", 27 | "openai" 28 | ], 29 | "files": [ 30 | "dist", 31 | "bin" 32 | ], 33 | "scripts": { 34 | "build": "tsup src/index.ts src/bin/cli.ts --format cjs,esm --dts --treeshake --minify", 35 | "test": "vitest run", 36 | "test:watch": "vitest", 37 | "lint": "eslint src", 38 | "typecheck": "tsc --noEmit", 39 | "format": "prettier --write src,tests" 40 | }, 41 | "devDependencies": { 42 | "@edgeandnode/eslint-config": "^1.3.0", 43 | "@types/mdast": "^3.0.10", 44 | "@types/node": "^18.13.0", 45 | "@typescript-eslint/parser": "^5.52.0", 46 | "eslint": "^8.34.0", 47 | "prettier": "^2.8.4", 48 | "tsup": "^6.6.3", 49 | "typescript": "^5.0.0-beta", 50 | "vitest": "^0.28.5" 51 | }, 52 | "dependencies": { 53 | "@clack/core": "^0.1.7", 54 | "@clack/prompts": "^0.4.3", 55 | "cac": "^6.7.14", 56 | "dotenv": "^16.0.3", 57 | "gpt3-tokenizer": "^1.1.5", 58 | "openai": "^3.1.0", 59 | "picocolors": "^1.0.0", 60 | "pinecone-client": "^1.0.1", 61 | "remark": "^14.0.2", 62 | "remark-frontmatter": "^4.0.1", 63 | "remark-gfm": "^3.0.1", 64 | "remark-mdx": "^2.3.0", 65 | "remark-smartypants": "^2.0.0", 66 | "tiny-glob": "^0.2.9", 67 | "unified": "^10.1.2" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/commands/indexFiles.ts: -------------------------------------------------------------------------------- 1 | import { intro, outro, spinner } from "@clack/prompts"; 2 | import * as fs from "node:fs"; 3 | import { Configuration, OpenAIApi } from "openai"; 4 | import { PineconeClient } from "pinecone-client"; 5 | import glob from "tiny-glob"; 6 | 7 | import { getEmbeddings } from "../getEmbeddings.js"; 8 | import { getEnvKeys } from "../getEnvKeys.js"; 9 | import { mdxToPlainText } from "../mdxToPlainText.js"; 10 | import { splitIntoChunks } from "../splitIntoChunks.js"; 11 | import { titleCase } from "../titleCase.js"; 12 | import type { SemanticSearchMetadata } from "../types.js"; 13 | 14 | const debug = (...args: Parameters) => { 15 | if (process.env.DEBUG) { 16 | console.debug(...args); 17 | } 18 | }; 19 | 20 | const getTitle = (content: string, path: string): string => { 21 | const title = /(?<=title: ).*/.exec(content)?.[0]; 22 | if (title) { 23 | return title.replace(/"/g, ""); 24 | } 25 | return titleCase(path.replace(/-/g, " ").replace(/\.mdx$/, "")); 26 | }; 27 | 28 | export async function indexFiles(postsDir: string) { 29 | intro(`@beerose/semantic-search index`); 30 | await getEnvKeys(); 31 | 32 | const s = spinner(); 33 | 34 | const openai = new OpenAIApi( 35 | new Configuration({ 36 | apiKey: process.env.OPENAI_API_KEY!, 37 | }) 38 | ); 39 | 40 | const pinecone = new PineconeClient({ 41 | apiKey: process.env.PINECONE_API_KEY!, 42 | baseUrl: process.env.PINECONE_BASE_URL!, 43 | namespace: process.env.PINECONE_NAMESPACE!, 44 | }); 45 | 46 | const files = await glob(`${postsDir}/**/*.{mdx, md}`); 47 | let count = 1; 48 | for (const post of files) { 49 | if (!post.endsWith(".mdx") && !post.endsWith(".md")) continue; 50 | 51 | const fileName = post.split("/").pop(); 52 | 53 | s.start(`[${count}/${files.length}] Processing file: ${fileName}`); 54 | 55 | const rawContent = fs.readFileSync(post, "utf-8"); 56 | const title = getTitle(rawContent, post); 57 | const plainText = await mdxToPlainText(rawContent); 58 | 59 | const chunks = splitIntoChunks(plainText); 60 | debug(`Split post "${title}" into ${chunks.length} chunks.`); 61 | 62 | debug("Generating embeddings for post content..."); 63 | const itemEmbeddings = await getEmbeddings({ 64 | id: post, 65 | content: { chunks }, 66 | title, 67 | openai, 68 | }); 69 | debug(`Generated ${itemEmbeddings.length} vectors for post: ${title}`); 70 | 71 | debug(`Upserting ${itemEmbeddings.length} vectors for post: ${post}...`); 72 | await pinecone.upsert({ 73 | vectors: itemEmbeddings, 74 | }); 75 | s.stop( 76 | `[${count}/${files.length}] Upserted ${itemEmbeddings.length} vectors for file: ${fileName}` 77 | ); 78 | count++; 79 | } 80 | 81 | outro("Done! 🎉"); 82 | } 83 | -------------------------------------------------------------------------------- /src/password.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-unsafe-return */ 2 | import { PasswordPrompt } from "@clack/core"; 3 | import color from "picocolors"; 4 | export { isCancel } from "@clack/core"; 5 | 6 | // This is temporary until https://github.com/natemoo-re/clack/pull/61 is merged 7 | 8 | export default function isUnicodeSupported() { 9 | if (process.platform !== "win32") { 10 | return process.env.TERM !== "linux"; // Linux console (kernel) 11 | } 12 | 13 | return ( 14 | Boolean(process.env.CI) || 15 | Boolean(process.env.WT_SESSION) || // Windows Terminal 16 | Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27) 17 | process.env.ConEmuTask === "{cmd::Cmder}" || // ConEmu and cmder 18 | process.env.TERM_PROGRAM === "Terminus-Sublime" || 19 | process.env.TERM_PROGRAM === "vscode" || 20 | process.env.TERM === "xterm-256color" || 21 | process.env.TERM === "alacritty" || 22 | process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm" 23 | ); 24 | } 25 | 26 | const unicode = isUnicodeSupported(); 27 | const s = (c: string, fallback: string) => (unicode ? c : fallback); 28 | const S_STEP_ACTIVE = s("◆", "*"); 29 | const S_STEP_CANCEL = s("■", "x"); 30 | const S_STEP_ERROR = s("▲", "x"); 31 | const S_STEP_SUBMIT = s("◇", "o"); 32 | 33 | const S_BAR = s("│", "|"); 34 | const S_BAR_END = s("└", "—"); 35 | 36 | const symbol = (state: any) => { 37 | switch (state) { 38 | case "initial": 39 | case "active": 40 | return color.cyan(S_STEP_ACTIVE); 41 | case "cancel": 42 | return color.red(S_STEP_CANCEL); 43 | case "error": 44 | return color.yellow(S_STEP_ERROR); 45 | case "submit": 46 | return color.green(S_STEP_SUBMIT); 47 | } 48 | }; 49 | 50 | export interface PasswordOptions { 51 | message: string; 52 | } 53 | export const password = (opts: PasswordOptions) => { 54 | return new PasswordPrompt({ 55 | render() { 56 | const title = `${color.gray(S_BAR)}\n${symbol(this.state)} ${ 57 | opts.message 58 | }\n`; 59 | const value = this.valueWithCursor; 60 | const masked = this.value 61 | .split("") 62 | .map(() => color.gray("•")) 63 | .join(""); 64 | 65 | switch (this.state) { 66 | case "error": 67 | return `${title.trim()}\n${color.yellow( 68 | S_BAR 69 | )} ${masked}\n${color.yellow(S_BAR_END)} ${color.yellow( 70 | this.error 71 | )}\n`; 72 | case "submit": 73 | return `${title}${color.gray(S_BAR)} ${color.dim(masked)}`; 74 | case "cancel": 75 | return `${title}${color.gray(S_BAR)} ${color.strikethrough( 76 | color.dim(masked ?? "") 77 | )}${masked?.trim() ? "\n" + color.gray(S_BAR) : ""}`; 78 | default: 79 | return `${title}${color.cyan(S_BAR)} ${value}\n${color.cyan( 80 | S_BAR_END 81 | )}\n`; 82 | } 83 | }, 84 | }).prompt(); 85 | }; 86 | -------------------------------------------------------------------------------- /src/mdxToPlainText.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, describe, it } from "vitest"; 2 | 3 | import { mdxToPlainText } from "./mdxToPlainText.js"; 4 | 5 | describe("mdxToPlainText", () => { 6 | it("should remove JSX elements", async () => { 7 | assert.equal(await mdxToPlainText(""), ""); 8 | assert.equal(await mdxToPlainText("Sesame"), ""); 9 | assert.equal(await mdxToPlainText(""), ""); 10 | }); 11 | 12 | it.only("should handle code", async () => { 13 | assert.equal( 14 | await mdxToPlainText(["```", "Bagel", "```"].join("\n")), 15 | "Bagel" 16 | ); 17 | assert.equal( 18 | await mdxToPlainText('```js\nconsole.log("world");\n```'), 19 | 'console.log("world");' 20 | ); 21 | }); 22 | 23 | it("should remove frontmatter", async () => { 24 | const rawInput = ["---", "title: Hello World", "---", "Hello"].join("\n"); 25 | const expectedOutput = "Hello"; 26 | const output = await mdxToPlainText(rawInput); 27 | assert.equal(output, expectedOutput); 28 | }); 29 | 30 | it("should remove markdown elements", async () => { 31 | assert.equal(await mdxToPlainText("Alfred"), "Alfred"); 32 | assert.equal(await mdxToPlainText("*Alfred*"), "Alfred"); 33 | assert.equal(await mdxToPlainText("_Alfred_"), "Alfred"); 34 | assert.equal(await mdxToPlainText("**Alfred**"), "Alfred"); 35 | assert.equal(await mdxToPlainText("__Alfred__"), "Alfred"); 36 | assert.equal(await mdxToPlainText("~~Alfred~~"), "Alfred"); 37 | assert.equal(await mdxToPlainText("`Alfred`"), "Alfred"); 38 | assert.equal(await mdxToPlainText("[Hello](world)"), "Hello"); 39 | assert.equal(await mdxToPlainText("[**H**ello](world)"), "Hello"); 40 | assert.equal( 41 | await mdxToPlainText( 42 | '[Hello][id]\n\n[id]: http://example.com "optional title"' 43 | ), 44 | "Hello" 45 | ); 46 | assert.equal(await mdxToPlainText("Hello.\n\nWorld."), "Hello.\n\nWorld."); 47 | assert.equal(await mdxToPlainText("## Alfred"), "Alfred"); 48 | assert.equal(await mdxToPlainText("Alfred\n====="), "Alfred"); 49 | assert.equal( 50 | await mdxToPlainText("- Hello\n * World\n + !"), 51 | "Hello\n\nWorld\n\n!" 52 | ); 53 | assert.equal( 54 | await mdxToPlainText("- Hello\n\n- World\n\n- !"), 55 | "Hello\n\nWorld\n\n!", 56 | "list" 57 | ); 58 | 59 | assert.equal( 60 | await mdxToPlainText("- Hello\n- \n- World!"), 61 | "Hello\n\nWorld!", 62 | "empty list item" 63 | ); 64 | 65 | assert.equal( 66 | await mdxToPlainText("> Hello\n> World\n> !"), 67 | "Hello\nWorld\n!", 68 | "blockquote" 69 | ); 70 | 71 | assert.equal( 72 | await mdxToPlainText('![An image](image.png "test")'), 73 | "An image", 74 | "image (1)" 75 | ); 76 | assert.equal( 77 | await mdxToPlainText('![](image.png "test")'), 78 | "test", 79 | "image (2)" 80 | ); 81 | assert.equal(await mdxToPlainText("![](image.png)"), "", "image (3)"); 82 | assert.equal( 83 | await mdxToPlainText("![An image][id]\n\n[id]: http://example.com/a.jpg"), 84 | "An image" 85 | ); 86 | 87 | assert.equal(await mdxToPlainText("---"), "", "thematic break"); 88 | assert.equal(await mdxToPlainText("A \nB"), "A\nB", "hard line break"); 89 | assert.equal(await mdxToPlainText("A\nB"), "A\nB", "soft line break"); 90 | assert.equal(await mdxToPlainText("| A | B |\n| - | - |\n| C | D |"), ""); 91 | 92 | assert.equal(await mdxToPlainText(''), ""); 93 | assert.equal( 94 | await mdxToPlainText( 95 | '[](http://example.com)' 96 | ), 97 | "" 98 | ); 99 | }); 100 | 101 | it("should handle import/export", async () => { 102 | assert.equal( 103 | await mdxToPlainText("import Bagel from 'noahs-bagels';"), 104 | "", 105 | "import" 106 | ); 107 | assert.equal( 108 | await mdxToPlainText("import {Bagel} from 'noahs-bagels';"), 109 | "", 110 | "import" 111 | ); 112 | assert.equal( 113 | await mdxToPlainText("import * as Bagel from 'noahs-bagels';"), 114 | "", 115 | "import" 116 | ); 117 | 118 | assert.equal( 119 | await mdxToPlainText(`export const Bagel = "sesame"`), 120 | "", 121 | "export" 122 | ); 123 | }); 124 | }); 125 | -------------------------------------------------------------------------------- /src/mdxToPlainText.ts: -------------------------------------------------------------------------------- 1 | import type { Code, Content, Paragraph, Parent, Text } from "mdast"; 2 | import { Image, ImageReference } from "mdast"; 3 | import type { Root } from "remark-mdx"; 4 | import type { Plugin } from "unified"; 5 | 6 | type Node = Root | Content; 7 | 8 | type Handler = (node: any) => Node | Node[]; 9 | 10 | /** 11 | * Expose modifiers for available node types. 12 | * Node types not listed here are not changed (but their children are). 13 | * 14 | * @type {Handlers} 15 | */ 16 | const defaultHandlers: Partial> = { 17 | heading: paragraph, 18 | text, 19 | inlineCode: text, 20 | code: text, 21 | paragraph, 22 | 23 | image, 24 | imageReference: image, 25 | break: lineBreak, 26 | 27 | blockquote: children, 28 | list: children, 29 | listItem: children, 30 | strong: children, 31 | emphasis: children, 32 | delete: children, 33 | link: children, 34 | linkReference: children, 35 | 36 | thematicBreak: empty, 37 | html: empty, 38 | table: empty, 39 | tableCell: empty, 40 | definition: empty, 41 | yaml: empty, 42 | 43 | // @ts-expect-error: custom frontmatter node. 44 | toml: empty, 45 | 46 | footnoteReference: empty, 47 | footnoteDefinition: empty, 48 | 49 | mdxjsEsm: empty, 50 | mdxJsxTextElement: empty, 51 | mdxJsxFlowElement: empty, 52 | }; 53 | 54 | /** 55 | * Clean nodes: merges literals. 56 | */ 57 | function clean(values: Node[]): Node[] { 58 | let index = -1; 59 | /** @type {Node[]} */ 60 | const result: Node[] = []; 61 | /** @type {Node|undefined} */ 62 | let previous: Node | undefined; 63 | 64 | while (++index < values.length) { 65 | const value = values[index]; 66 | if (!value) continue; 67 | 68 | if (previous && value.type === previous.type && "value" in value) { 69 | // @ts-expect-error: we just checked that they’re the same node. 70 | previous.value += value.value; 71 | } else { 72 | result.push(value); 73 | previous = value; 74 | } 75 | } 76 | 77 | return result; 78 | } 79 | 80 | function image(node: Image | ImageReference): Text { 81 | const title = "title" in node ? node.title : ""; 82 | return { type: "text", value: node.alt || title || "" }; 83 | } 84 | 85 | function text(node: Text | Code): Text { 86 | return { type: "text", value: node.value }; 87 | } 88 | 89 | function paragraph(node: Paragraph): Paragraph { 90 | return { type: "paragraph", children: node.children }; 91 | } 92 | 93 | function children(node: Extract): Content[] { 94 | // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition 95 | return node.children || []; 96 | } 97 | 98 | function empty(): Text { 99 | return { type: "text", value: "" }; 100 | } 101 | 102 | function lineBreak(): Text { 103 | return { type: "text", value: "\n" }; 104 | } 105 | 106 | export const remarkMdxToPlainText: Plugin<[], Root> = () => { 107 | const handlers = { ...defaultHandlers }; 108 | 109 | return stripOne as (node: Root) => Root; 110 | 111 | function stripOne(node: Node): Node | Node[] { 112 | let result: Node | Node[] = node; 113 | 114 | if (node.type in handlers) { 115 | const handler = handlers[node.type]; 116 | if (handler) result = handler(result); 117 | } 118 | 119 | result = Array.isArray(result) ? stripMany(result) : result; 120 | 121 | if ("children" in result) { 122 | result.children = stripMany(result.children) as Content[]; 123 | } 124 | 125 | return result; 126 | } 127 | 128 | function stripMany(nodes: Node[]): Node[] { 129 | let index = -1; 130 | /** @type {Node[]} */ 131 | const result: Node[] = []; 132 | 133 | while (++index < nodes.length) { 134 | const value = stripOne(nodes[index]!); 135 | 136 | if (Array.isArray(value)) { 137 | result.push(...value.flatMap(stripOne)); 138 | } else { 139 | result.push(value); 140 | } 141 | } 142 | 143 | return clean(result); 144 | } 145 | }; 146 | 147 | export const mdxToPlainText = async (rawContent: string) => { 148 | const remark = (await import("remark")).remark; 149 | const remarkFrontmatter = (await import("remark-frontmatter")).default; 150 | const remarkGfm = (await import("remark-gfm")).default; 151 | const remarkMdx = (await import("remark-mdx")).default; 152 | const remarkSmartypants = (await import("remark-smartypants")).default; 153 | 154 | try { 155 | const vfile = await remark() 156 | .use(remarkFrontmatter) 157 | .use(remarkSmartypants) 158 | .use(remarkGfm) 159 | .use(remarkMdx) 160 | .use(remarkMdxToPlainText) 161 | .process(rawContent); 162 | 163 | return vfile.value.toString().trim(); 164 | } catch (err) { 165 | return rawContent; 166 | } 167 | }; 168 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @beerose/semantic-search 2 | 3 | An OpenAI-powered CLI to build a semantic search index from your MDX files. It 4 | allows you to perform complex searches across your content and integrate it with 5 | your platform. 6 | 7 | ## 🧳 Prerequisites 8 | 9 | This project uses [OpenAI](https://openai.com/api) to generate vector embeddings 10 | and [Pinecone](https://pinecone.io/) to host the embeddings, which means you 11 | need to have accounts in OpenAI and Pinecone to use it. 12 | 13 |
14 | Setting up a Pinecone project 15 | 16 | After creating an account in Pinecone, go to the dashboard and click on the 17 | `Create Index` button: 18 | 19 | ![CleanShot 2023-02-17 at 16 10 32@2x](https://user-images.githubusercontent.com/9019397/219693945-6d656f53-6dc2-4010-8ee8-f9d3e69913a1.png) 20 | 21 | Fill the form with your new index name (e.g. your blog name) and set the number 22 | of dimensions to 1536: 23 | 24 | ![CleanShot 2023-02-17 at 16 11 54@2x](https://user-images.githubusercontent.com/9019397/219693863-ccaa2105-db44-4838-b94b-40689945c8f2.png) 25 | 26 |
27 | 28 | ## 🚀 CLI Usage 29 | 30 |
31 | How to get your env keys from Pinecone and OpenAI? 32 | 33 | **Pinecone** 34 | 35 | ![CleanShot 2023-02-17 at 16 15 32@2x](https://user-images.githubusercontent.com/9019397/219693780-bee0e02b-3961-4a92-b505-8076ef67295e.png) 36 | ![CleanShot 2023-02-17 at 16 13 22@2x](https://user-images.githubusercontent.com/9019397/219693831-794c88ce-a763-4415-84f6-08b00c0aab0e.png) 37 | 38 | **OpenAI** 39 | 40 | ![CleanShot 2023-02-17 at 16 18 00@2x](https://user-images.githubusercontent.com/9019397/219693739-3c5e0b31-425b-4cef-8aa9-066dd24d9ab2.png) 41 | 42 |
43 | 44 | The CLI requires four env keys: 45 | 46 | ```sh 47 | OPENAI_API_KEY= 48 | 49 | PINECONE_API_KEY= 50 | PINECONE_BASE_URL= 51 | PINECONE_NAMESPACE= 52 | ``` 53 | 54 | Make sure to add them before using it! 55 | 56 | ### 🛠 Commands: 57 | 58 | `index ` — processes files with your content and upload them to Pinecone. 59 | 60 | Example: 61 | 62 | ```sh 63 | $ @beerose/semantic-search index ./posts 64 | ``` 65 | 66 | `search ` — performs a semantic search by a given query. 67 | 68 | Example: 69 | 70 | ```sh 71 | $ @beerose/semantic-search search "hello world" 72 | ``` 73 | 74 | For more info, run any command with the `--help` flag: 75 | 76 | ```sh 77 | $ @beerose/semantic-search index --help 78 | $ @beerose/semantic-search search --help 79 | $ @beerose/semantic-search --help 80 | ``` 81 | 82 | ## ➕ Project integration 83 | 84 | You can use the `semanticQuery` function exported from this library and 85 | integrate it with your website or application. 86 | 87 | Install deps: 88 | 89 | ```sh 90 | $ pnpm add pinecone-client openai @beerose/semantic-search 91 | 92 | # or `yarn add` or `npm i` 93 | ``` 94 | 95 | An example usage: 96 | 97 | ```ts 98 | import { PineconeMetadata, semanticQuery } from "@beerose/semantic-search"; 99 | import { Configuration, OpenAIApi } from "openai"; 100 | import { PineconeClient } from "pinecone-client"; 101 | 102 | const openai = new OpenAIApi( 103 | new Configuration({ 104 | apiKey: process.env.OPENAI_API_KEY, 105 | }) 106 | ); 107 | 108 | const pinecone = new PineconeClient({ 109 | apiKey: process.env.PINECONE_API_KEY, 110 | baseUrl: process.env.PINECONE_BASE_URL, 111 | namespace: process.env.PINECONE_NAMESPACE, 112 | }); 113 | 114 | const result = await semanticQuery("hello world", openai, pinecone); 115 | ``` 116 | 117 | Here's an example API route from [aleksandra.codes](https://aleksandra.codes): 118 | https://github.com/beerose/aleksandra.codes/blob/main/api/search.ts 119 | 120 | ## ✨ How does it work? 121 | 122 | Semantic search can understand the meaning of words in documents and return 123 | results that are more relevant to the user's intent. 124 | 125 | This tool uses [OpenAI](https://openai.com/) to generate vector embeddings with 126 | a `text-embedding-ada-002` model. 127 | 128 | > Embeddings are numerical representations of concepts converted to number 129 | > sequences, which make it easy for computers to understand the relationships 130 | > between those concepts. 131 | > https://openai.com/blog/new-and-improved-embedding-model/ 132 | 133 | It also uses [Pinecone](https://pinecone.io/) — a hosted database for vector 134 | search. It lets us perform k-NN searches across the generated embeddings. 135 | 136 | ### Processing MDX content 137 | 138 | The `@beerose/sematic-search index` CLI command performs the following steps for 139 | each file in a given directory: 140 | 141 | 1. Converts the MDX files to raw text. 142 | 2. Extracts the title. 143 | 3. Splits the file into chunks of a maximum of 100 tokens. 144 | 4. Generates OpenAI embeddings for each chunk. 145 | 5. Upserts the embeddings to Pinecone. 146 | 147 | Depending on your content, the whole process requires a bunch of calls to OpenAI 148 | and Pinecone, which can take some time. For example, it takes around thirty 149 | minutes for a directory with ~25 blog posts and an average of 6 minutes of 150 | reading time. 151 | 152 | ### Performing semantic searches 153 | 154 | To test the semantic search, you can use `@beerose/sematic-search search` CLI 155 | command, which: 156 | 157 | 1. Creates an embedding for a provided query. 158 | 2. Sends a request to Pinecone with the embedding. 159 | 160 | ## 🍿 Demo 161 | 162 | ![](https://user-images.githubusercontent.com/9019397/219777236-d9c4cbb6-b408-40ca-be22-cd01eefa4e53.gif) 163 | 164 | ## 📦 What's inside? 165 | 166 | ```sh 167 | . 168 | ├── bin 169 | │ └── cli.js 170 | ├── src 171 | │ ├── bin 172 | │ │ └── cli.ts 173 | │ ├── commands 174 | │ │ ├── indexFiles.ts 175 | │ │ └── search.ts 176 | │ ├── getEmbeddings.ts 177 | │ ├── isRateLimitExceeded.ts 178 | │ ├── mdxToPlainText.test.ts 179 | │ ├── mdxToPlainText.ts 180 | │ ├── semanticQuery.ts 181 | │ ├── splitIntoChunks.test.ts 182 | │ ├── splitIntoChunks.ts 183 | │ ├── titleCase.ts 184 | │ └── types.ts 185 | ├── tsconfig.build.json 186 | ├── tsconfig.json 187 | ├── package.json 188 | └── pnpm-lock.yaml 189 | ``` 190 | 191 | - `bin/cli.js` — The CLI entrypoint. 192 | - `src`: 193 | - `bin/cli.ts` — Files where you can find CLI commands and settings. This 194 | project uses [CAC](https://github.com/cacjs/cac) for building CLIs. 195 | - `commands/indexFiles.ts` — A CLI command that handles processing md/mdx 196 | content, generating embeddings and uploading vectors to Pinecone. 197 | - `command/search.ts` — A semantic search command. It generates an embedding 198 | for a given search query and then calls Pinecone for the results. 199 | - `getEmbeddings.ts` — Generating embeddings logic. It handles a call to Open 200 | AI. 201 | - `isRateLimitExceeded.ts` — Error handling helper. 202 | - `mdxToPlainText.ts` — Converts MDX files to raw text. Uses remark and a 203 | custom `remarkMdxToPlainText` plugin (also defined in that file). 204 | - `semanticQuery.ts` — Core logic for performing semantic searches. It's being 205 | used in `search` command, and also it's exported from this library so that 206 | you can integrate it with your projects. 207 | - `splitIntoChunks.ts` — Splits the text into chunks with a maximum of 100 208 | tokens. 209 | - `titleCase.ts` — Extracts a title from a file path. 210 | - `types.ts` — Types and utilities used in this project. 211 | - `tsconfig.json` - TypeScript compiler configuration. 212 | - `tsconfig.build.json` - TypeScript compiler configuration used for 213 | `pnpm build`. 214 | 215 | Tests: 216 | 217 | - `src/mdxToPlainText.test.ts` 218 | - `src/splitIntoChunks.test.ts` 219 | 220 | ## 👩‍💻 Local development 221 | 222 | Install deps and build the project: 223 | 224 | ```sh 225 | pnpm i 226 | 227 | pnpm build 228 | ``` 229 | 230 | Run the CLI locally: 231 | 232 | ```sh 233 | node bin/cli.js 234 | ``` 235 | 236 | ## 🧪 Running tests 237 | 238 | ```sh 239 | pnpm test 240 | ``` 241 | 242 | ## 🤝 Contributing 243 | 244 | Contributions, issues and feature requests are welcome.
Feel free to check 245 | [issues page](https://github.com/beerose/semantic-search/issues) if you want to 246 | contribute.
247 | 248 | ## 📝 License 249 | 250 | Copyright © 2023 [Aleksandra Sikora](https://github.com/beerose).
This 251 | project is [MIT](https://github.com/beerose/semantic-search/blob/master/LICENSE) 252 | licensed. 253 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@clack/core': ^0.1.7 5 | '@clack/prompts': ^0.4.3 6 | '@edgeandnode/eslint-config': ^1.3.0 7 | '@types/mdast': ^3.0.10 8 | '@types/node': ^18.13.0 9 | '@typescript-eslint/parser': ^5.52.0 10 | cac: ^6.7.14 11 | dotenv: ^16.0.3 12 | eslint: ^8.34.0 13 | gpt3-tokenizer: ^1.1.5 14 | openai: ^3.1.0 15 | picocolors: ^1.0.0 16 | pinecone-client: ^1.0.1 17 | prettier: ^2.8.4 18 | remark: ^14.0.2 19 | remark-frontmatter: ^4.0.1 20 | remark-gfm: ^3.0.1 21 | remark-mdx: ^2.3.0 22 | remark-smartypants: ^2.0.0 23 | tiny-glob: ^0.2.9 24 | tsup: ^6.6.3 25 | typescript: ^5.0.0-beta 26 | unified: ^10.1.2 27 | vitest: ^0.28.5 28 | 29 | dependencies: 30 | '@clack/core': 0.1.7 31 | '@clack/prompts': 0.4.3 32 | cac: 6.7.14 33 | dotenv: 16.0.3 34 | gpt3-tokenizer: 1.1.5 35 | openai: 3.1.0 36 | picocolors: 1.0.0 37 | pinecone-client: 1.0.1 38 | remark: 14.0.2 39 | remark-frontmatter: 4.0.1 40 | remark-gfm: 3.0.1 41 | remark-mdx: 2.3.0 42 | remark-smartypants: 2.0.0 43 | tiny-glob: 0.2.9 44 | unified: 10.1.2 45 | 46 | devDependencies: 47 | '@edgeandnode/eslint-config': 1.3.0_kj4pw4bbzer7vpyrczb5nqfemu 48 | '@types/mdast': 3.0.10 49 | '@types/node': 18.13.0 50 | '@typescript-eslint/parser': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 51 | eslint: 8.34.0 52 | prettier: 2.8.4 53 | tsup: 6.6.3_ioffpfjnyzwfwm6i4hqtqqtreq 54 | typescript: 5.0.0-dev.20230216 55 | vitest: 0.28.5 56 | 57 | packages: 58 | 59 | /@babel/runtime/7.20.13: 60 | resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} 61 | engines: {node: '>=6.9.0'} 62 | dependencies: 63 | regenerator-runtime: 0.13.11 64 | dev: true 65 | 66 | /@clack/core/0.1.7: 67 | resolution: {integrity: sha512-hyrb8/QlcC2vJO5ZL19/Fl3YHwfPK2o2TuW1zczzFO7lBUQWePGHhJu2wc6AJOjtpbyppylCLWnFFY3sGfLJSg==} 68 | dependencies: 69 | picocolors: 1.0.0 70 | sisteransi: 1.0.5 71 | dev: false 72 | 73 | /@clack/prompts/0.4.3: 74 | resolution: {integrity: sha512-R3Ws19DbdqKarkfbvqde0v9Cfi7o/mferY4CF4ca4VOrrUXUKP0NOofKEMDzuehEdlImiaC5qs9UKnfU3p2IxQ==} 75 | dependencies: 76 | '@clack/core': 0.1.7 77 | picocolors: 1.0.0 78 | sisteransi: 1.0.5 79 | dev: false 80 | bundledDependencies: 81 | - is-unicode-supported 82 | 83 | /@edgeandnode/eslint-config/1.3.0_kj4pw4bbzer7vpyrczb5nqfemu: 84 | resolution: {integrity: sha512-6I1unFKn5hqwKbfz/WnMzi+d6p8AW+X6Lcgtgbf3uz4ZgRuo/w0tmpMYO6h1g4Ea/Qd4+xnSm+ibbVTx4Vvk9A==} 85 | peerDependencies: 86 | eslint: ^7 || ^8 87 | typescript: ^4 88 | peerDependenciesMeta: 89 | typescript: 90 | optional: true 91 | dependencies: 92 | '@next/eslint-plugin-next': 13.1.3 93 | '@rushstack/eslint-patch': 1.2.0 94 | '@typescript-eslint/eslint-plugin': 5.52.0_t6n3qwylx2iw2ydsp4agb5ntlu 95 | '@typescript-eslint/parser': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 96 | eslint: 8.34.0 97 | eslint-import-resolver-node: 0.3.7 98 | eslint-import-resolver-typescript: 3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm 99 | eslint-plugin-import: 2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi 100 | eslint-plugin-jsx-a11y: 6.7.1_eslint@8.34.0 101 | eslint-plugin-react: 7.32.2_eslint@8.34.0 102 | eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 103 | eslint-plugin-simple-import-sort: 9.0.0_eslint@8.34.0 104 | eslint-plugin-sonarjs: 0.18.0_eslint@8.34.0 105 | typescript: 5.0.0-dev.20230216 106 | transitivePeerDependencies: 107 | - eslint-import-resolver-webpack 108 | - supports-color 109 | dev: true 110 | 111 | /@esbuild/android-arm/0.16.17: 112 | resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} 113 | engines: {node: '>=12'} 114 | cpu: [arm] 115 | os: [android] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/android-arm/0.17.8: 121 | resolution: {integrity: sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==} 122 | engines: {node: '>=12'} 123 | cpu: [arm] 124 | os: [android] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/android-arm64/0.16.17: 130 | resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} 131 | engines: {node: '>=12'} 132 | cpu: [arm64] 133 | os: [android] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/android-arm64/0.17.8: 139 | resolution: {integrity: sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==} 140 | engines: {node: '>=12'} 141 | cpu: [arm64] 142 | os: [android] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/android-x64/0.16.17: 148 | resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} 149 | engines: {node: '>=12'} 150 | cpu: [x64] 151 | os: [android] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/android-x64/0.17.8: 157 | resolution: {integrity: sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==} 158 | engines: {node: '>=12'} 159 | cpu: [x64] 160 | os: [android] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/darwin-arm64/0.16.17: 166 | resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} 167 | engines: {node: '>=12'} 168 | cpu: [arm64] 169 | os: [darwin] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/darwin-arm64/0.17.8: 175 | resolution: {integrity: sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==} 176 | engines: {node: '>=12'} 177 | cpu: [arm64] 178 | os: [darwin] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/darwin-x64/0.16.17: 184 | resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} 185 | engines: {node: '>=12'} 186 | cpu: [x64] 187 | os: [darwin] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/darwin-x64/0.17.8: 193 | resolution: {integrity: sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [darwin] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/freebsd-arm64/0.16.17: 202 | resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} 203 | engines: {node: '>=12'} 204 | cpu: [arm64] 205 | os: [freebsd] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/freebsd-arm64/0.17.8: 211 | resolution: {integrity: sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==} 212 | engines: {node: '>=12'} 213 | cpu: [arm64] 214 | os: [freebsd] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/freebsd-x64/0.16.17: 220 | resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} 221 | engines: {node: '>=12'} 222 | cpu: [x64] 223 | os: [freebsd] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/freebsd-x64/0.17.8: 229 | resolution: {integrity: sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [freebsd] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/linux-arm/0.16.17: 238 | resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} 239 | engines: {node: '>=12'} 240 | cpu: [arm] 241 | os: [linux] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/linux-arm/0.17.8: 247 | resolution: {integrity: sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==} 248 | engines: {node: '>=12'} 249 | cpu: [arm] 250 | os: [linux] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/linux-arm64/0.16.17: 256 | resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} 257 | engines: {node: '>=12'} 258 | cpu: [arm64] 259 | os: [linux] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/linux-arm64/0.17.8: 265 | resolution: {integrity: sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==} 266 | engines: {node: '>=12'} 267 | cpu: [arm64] 268 | os: [linux] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@esbuild/linux-ia32/0.16.17: 274 | resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} 275 | engines: {node: '>=12'} 276 | cpu: [ia32] 277 | os: [linux] 278 | requiresBuild: true 279 | dev: true 280 | optional: true 281 | 282 | /@esbuild/linux-ia32/0.17.8: 283 | resolution: {integrity: sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==} 284 | engines: {node: '>=12'} 285 | cpu: [ia32] 286 | os: [linux] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/linux-loong64/0.16.17: 292 | resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} 293 | engines: {node: '>=12'} 294 | cpu: [loong64] 295 | os: [linux] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/linux-loong64/0.17.8: 301 | resolution: {integrity: sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==} 302 | engines: {node: '>=12'} 303 | cpu: [loong64] 304 | os: [linux] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/linux-mips64el/0.16.17: 310 | resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} 311 | engines: {node: '>=12'} 312 | cpu: [mips64el] 313 | os: [linux] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@esbuild/linux-mips64el/0.17.8: 319 | resolution: {integrity: sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==} 320 | engines: {node: '>=12'} 321 | cpu: [mips64el] 322 | os: [linux] 323 | requiresBuild: true 324 | dev: true 325 | optional: true 326 | 327 | /@esbuild/linux-ppc64/0.16.17: 328 | resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} 329 | engines: {node: '>=12'} 330 | cpu: [ppc64] 331 | os: [linux] 332 | requiresBuild: true 333 | dev: true 334 | optional: true 335 | 336 | /@esbuild/linux-ppc64/0.17.8: 337 | resolution: {integrity: sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==} 338 | engines: {node: '>=12'} 339 | cpu: [ppc64] 340 | os: [linux] 341 | requiresBuild: true 342 | dev: true 343 | optional: true 344 | 345 | /@esbuild/linux-riscv64/0.16.17: 346 | resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} 347 | engines: {node: '>=12'} 348 | cpu: [riscv64] 349 | os: [linux] 350 | requiresBuild: true 351 | dev: true 352 | optional: true 353 | 354 | /@esbuild/linux-riscv64/0.17.8: 355 | resolution: {integrity: sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==} 356 | engines: {node: '>=12'} 357 | cpu: [riscv64] 358 | os: [linux] 359 | requiresBuild: true 360 | dev: true 361 | optional: true 362 | 363 | /@esbuild/linux-s390x/0.16.17: 364 | resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} 365 | engines: {node: '>=12'} 366 | cpu: [s390x] 367 | os: [linux] 368 | requiresBuild: true 369 | dev: true 370 | optional: true 371 | 372 | /@esbuild/linux-s390x/0.17.8: 373 | resolution: {integrity: sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==} 374 | engines: {node: '>=12'} 375 | cpu: [s390x] 376 | os: [linux] 377 | requiresBuild: true 378 | dev: true 379 | optional: true 380 | 381 | /@esbuild/linux-x64/0.16.17: 382 | resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} 383 | engines: {node: '>=12'} 384 | cpu: [x64] 385 | os: [linux] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@esbuild/linux-x64/0.17.8: 391 | resolution: {integrity: sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==} 392 | engines: {node: '>=12'} 393 | cpu: [x64] 394 | os: [linux] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@esbuild/netbsd-x64/0.16.17: 400 | resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} 401 | engines: {node: '>=12'} 402 | cpu: [x64] 403 | os: [netbsd] 404 | requiresBuild: true 405 | dev: true 406 | optional: true 407 | 408 | /@esbuild/netbsd-x64/0.17.8: 409 | resolution: {integrity: sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==} 410 | engines: {node: '>=12'} 411 | cpu: [x64] 412 | os: [netbsd] 413 | requiresBuild: true 414 | dev: true 415 | optional: true 416 | 417 | /@esbuild/openbsd-x64/0.16.17: 418 | resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} 419 | engines: {node: '>=12'} 420 | cpu: [x64] 421 | os: [openbsd] 422 | requiresBuild: true 423 | dev: true 424 | optional: true 425 | 426 | /@esbuild/openbsd-x64/0.17.8: 427 | resolution: {integrity: sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==} 428 | engines: {node: '>=12'} 429 | cpu: [x64] 430 | os: [openbsd] 431 | requiresBuild: true 432 | dev: true 433 | optional: true 434 | 435 | /@esbuild/sunos-x64/0.16.17: 436 | resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} 437 | engines: {node: '>=12'} 438 | cpu: [x64] 439 | os: [sunos] 440 | requiresBuild: true 441 | dev: true 442 | optional: true 443 | 444 | /@esbuild/sunos-x64/0.17.8: 445 | resolution: {integrity: sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==} 446 | engines: {node: '>=12'} 447 | cpu: [x64] 448 | os: [sunos] 449 | requiresBuild: true 450 | dev: true 451 | optional: true 452 | 453 | /@esbuild/win32-arm64/0.16.17: 454 | resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} 455 | engines: {node: '>=12'} 456 | cpu: [arm64] 457 | os: [win32] 458 | requiresBuild: true 459 | dev: true 460 | optional: true 461 | 462 | /@esbuild/win32-arm64/0.17.8: 463 | resolution: {integrity: sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==} 464 | engines: {node: '>=12'} 465 | cpu: [arm64] 466 | os: [win32] 467 | requiresBuild: true 468 | dev: true 469 | optional: true 470 | 471 | /@esbuild/win32-ia32/0.16.17: 472 | resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} 473 | engines: {node: '>=12'} 474 | cpu: [ia32] 475 | os: [win32] 476 | requiresBuild: true 477 | dev: true 478 | optional: true 479 | 480 | /@esbuild/win32-ia32/0.17.8: 481 | resolution: {integrity: sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==} 482 | engines: {node: '>=12'} 483 | cpu: [ia32] 484 | os: [win32] 485 | requiresBuild: true 486 | dev: true 487 | optional: true 488 | 489 | /@esbuild/win32-x64/0.16.17: 490 | resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} 491 | engines: {node: '>=12'} 492 | cpu: [x64] 493 | os: [win32] 494 | requiresBuild: true 495 | dev: true 496 | optional: true 497 | 498 | /@esbuild/win32-x64/0.17.8: 499 | resolution: {integrity: sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==} 500 | engines: {node: '>=12'} 501 | cpu: [x64] 502 | os: [win32] 503 | requiresBuild: true 504 | dev: true 505 | optional: true 506 | 507 | /@eslint/eslintrc/1.4.1: 508 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 509 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 510 | dependencies: 511 | ajv: 6.12.6 512 | debug: 4.3.4 513 | espree: 9.4.1 514 | globals: 13.20.0 515 | ignore: 5.2.4 516 | import-fresh: 3.3.0 517 | js-yaml: 4.1.0 518 | minimatch: 3.1.2 519 | strip-json-comments: 3.1.1 520 | transitivePeerDependencies: 521 | - supports-color 522 | dev: true 523 | 524 | /@humanwhocodes/config-array/0.11.8: 525 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 526 | engines: {node: '>=10.10.0'} 527 | dependencies: 528 | '@humanwhocodes/object-schema': 1.2.1 529 | debug: 4.3.4 530 | minimatch: 3.1.2 531 | transitivePeerDependencies: 532 | - supports-color 533 | dev: true 534 | 535 | /@humanwhocodes/module-importer/1.0.1: 536 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 537 | engines: {node: '>=12.22'} 538 | dev: true 539 | 540 | /@humanwhocodes/object-schema/1.2.1: 541 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 542 | dev: true 543 | 544 | /@next/eslint-plugin-next/13.1.3: 545 | resolution: {integrity: sha512-9IF2euUtOdXoQMHB9x1Afsw19si71oIj8Oqp40I7vcoG758LMZJZePG8sjhGh1dMJv+JtkIjiLu+ENVMGKAMJQ==} 546 | dependencies: 547 | glob: 7.1.7 548 | dev: true 549 | 550 | /@nodelib/fs.scandir/2.1.5: 551 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 552 | engines: {node: '>= 8'} 553 | dependencies: 554 | '@nodelib/fs.stat': 2.0.5 555 | run-parallel: 1.2.0 556 | dev: true 557 | 558 | /@nodelib/fs.stat/2.0.5: 559 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 560 | engines: {node: '>= 8'} 561 | dev: true 562 | 563 | /@nodelib/fs.walk/1.2.8: 564 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 565 | engines: {node: '>= 8'} 566 | dependencies: 567 | '@nodelib/fs.scandir': 2.1.5 568 | fastq: 1.15.0 569 | dev: true 570 | 571 | /@pkgr/utils/2.3.1: 572 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} 573 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 574 | dependencies: 575 | cross-spawn: 7.0.3 576 | is-glob: 4.0.3 577 | open: 8.4.1 578 | picocolors: 1.0.0 579 | tiny-glob: 0.2.9 580 | tslib: 2.5.0 581 | dev: true 582 | 583 | /@rushstack/eslint-patch/1.2.0: 584 | resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} 585 | dev: true 586 | 587 | /@types/acorn/4.0.6: 588 | resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} 589 | dependencies: 590 | '@types/estree': 1.0.0 591 | dev: false 592 | 593 | /@types/chai-subset/1.3.3: 594 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 595 | dependencies: 596 | '@types/chai': 4.3.4 597 | dev: true 598 | 599 | /@types/chai/4.3.4: 600 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 601 | dev: true 602 | 603 | /@types/debug/4.1.7: 604 | resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} 605 | dependencies: 606 | '@types/ms': 0.7.31 607 | dev: false 608 | 609 | /@types/estree-jsx/1.0.0: 610 | resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} 611 | dependencies: 612 | '@types/estree': 1.0.0 613 | dev: false 614 | 615 | /@types/estree/1.0.0: 616 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 617 | dev: false 618 | 619 | /@types/hast/2.3.4: 620 | resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} 621 | dependencies: 622 | '@types/unist': 2.0.6 623 | dev: false 624 | 625 | /@types/json-schema/7.0.11: 626 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 627 | dev: true 628 | 629 | /@types/json5/0.0.29: 630 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 631 | dev: true 632 | 633 | /@types/mdast/3.0.10: 634 | resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} 635 | dependencies: 636 | '@types/unist': 2.0.6 637 | 638 | /@types/ms/0.7.31: 639 | resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} 640 | dev: false 641 | 642 | /@types/nlcst/1.0.0: 643 | resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} 644 | dependencies: 645 | '@types/unist': 2.0.6 646 | dev: false 647 | 648 | /@types/node/18.13.0: 649 | resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} 650 | dev: true 651 | 652 | /@types/semver/7.3.13: 653 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 654 | dev: true 655 | 656 | /@types/unist/2.0.6: 657 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} 658 | 659 | /@typescript-eslint/eslint-plugin/5.52.0_t6n3qwylx2iw2ydsp4agb5ntlu: 660 | resolution: {integrity: sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==} 661 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 662 | peerDependencies: 663 | '@typescript-eslint/parser': ^5.0.0 664 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 665 | typescript: '*' 666 | peerDependenciesMeta: 667 | typescript: 668 | optional: true 669 | dependencies: 670 | '@typescript-eslint/parser': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 671 | '@typescript-eslint/scope-manager': 5.52.0 672 | '@typescript-eslint/type-utils': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 673 | '@typescript-eslint/utils': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 674 | debug: 4.3.4 675 | eslint: 8.34.0 676 | grapheme-splitter: 1.0.4 677 | ignore: 5.2.4 678 | natural-compare-lite: 1.4.0 679 | regexpp: 3.2.0 680 | semver: 7.3.8 681 | tsutils: 3.21.0_ioffpfjnyzwfwm6i4hqtqqtreq 682 | typescript: 5.0.0-dev.20230216 683 | transitivePeerDependencies: 684 | - supports-color 685 | dev: true 686 | 687 | /@typescript-eslint/parser/5.52.0_kj4pw4bbzer7vpyrczb5nqfemu: 688 | resolution: {integrity: sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==} 689 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 690 | peerDependencies: 691 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 692 | typescript: '*' 693 | peerDependenciesMeta: 694 | typescript: 695 | optional: true 696 | dependencies: 697 | '@typescript-eslint/scope-manager': 5.52.0 698 | '@typescript-eslint/types': 5.52.0 699 | '@typescript-eslint/typescript-estree': 5.52.0_ioffpfjnyzwfwm6i4hqtqqtreq 700 | debug: 4.3.4 701 | eslint: 8.34.0 702 | typescript: 5.0.0-dev.20230216 703 | transitivePeerDependencies: 704 | - supports-color 705 | dev: true 706 | 707 | /@typescript-eslint/scope-manager/5.52.0: 708 | resolution: {integrity: sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==} 709 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 710 | dependencies: 711 | '@typescript-eslint/types': 5.52.0 712 | '@typescript-eslint/visitor-keys': 5.52.0 713 | dev: true 714 | 715 | /@typescript-eslint/type-utils/5.52.0_kj4pw4bbzer7vpyrczb5nqfemu: 716 | resolution: {integrity: sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==} 717 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 718 | peerDependencies: 719 | eslint: '*' 720 | typescript: '*' 721 | peerDependenciesMeta: 722 | typescript: 723 | optional: true 724 | dependencies: 725 | '@typescript-eslint/typescript-estree': 5.52.0_ioffpfjnyzwfwm6i4hqtqqtreq 726 | '@typescript-eslint/utils': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 727 | debug: 4.3.4 728 | eslint: 8.34.0 729 | tsutils: 3.21.0_ioffpfjnyzwfwm6i4hqtqqtreq 730 | typescript: 5.0.0-dev.20230216 731 | transitivePeerDependencies: 732 | - supports-color 733 | dev: true 734 | 735 | /@typescript-eslint/types/5.52.0: 736 | resolution: {integrity: sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==} 737 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 738 | dev: true 739 | 740 | /@typescript-eslint/typescript-estree/5.52.0_ioffpfjnyzwfwm6i4hqtqqtreq: 741 | resolution: {integrity: sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==} 742 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 743 | peerDependencies: 744 | typescript: '*' 745 | peerDependenciesMeta: 746 | typescript: 747 | optional: true 748 | dependencies: 749 | '@typescript-eslint/types': 5.52.0 750 | '@typescript-eslint/visitor-keys': 5.52.0 751 | debug: 4.3.4 752 | globby: 11.1.0 753 | is-glob: 4.0.3 754 | semver: 7.3.8 755 | tsutils: 3.21.0_ioffpfjnyzwfwm6i4hqtqqtreq 756 | typescript: 5.0.0-dev.20230216 757 | transitivePeerDependencies: 758 | - supports-color 759 | dev: true 760 | 761 | /@typescript-eslint/utils/5.52.0_kj4pw4bbzer7vpyrczb5nqfemu: 762 | resolution: {integrity: sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==} 763 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 764 | peerDependencies: 765 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 766 | dependencies: 767 | '@types/json-schema': 7.0.11 768 | '@types/semver': 7.3.13 769 | '@typescript-eslint/scope-manager': 5.52.0 770 | '@typescript-eslint/types': 5.52.0 771 | '@typescript-eslint/typescript-estree': 5.52.0_ioffpfjnyzwfwm6i4hqtqqtreq 772 | eslint: 8.34.0 773 | eslint-scope: 5.1.1 774 | eslint-utils: 3.0.0_eslint@8.34.0 775 | semver: 7.3.8 776 | transitivePeerDependencies: 777 | - supports-color 778 | - typescript 779 | dev: true 780 | 781 | /@typescript-eslint/visitor-keys/5.52.0: 782 | resolution: {integrity: sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==} 783 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 784 | dependencies: 785 | '@typescript-eslint/types': 5.52.0 786 | eslint-visitor-keys: 3.3.0 787 | dev: true 788 | 789 | /@vitest/expect/0.28.5: 790 | resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} 791 | dependencies: 792 | '@vitest/spy': 0.28.5 793 | '@vitest/utils': 0.28.5 794 | chai: 4.3.7 795 | dev: true 796 | 797 | /@vitest/runner/0.28.5: 798 | resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} 799 | dependencies: 800 | '@vitest/utils': 0.28.5 801 | p-limit: 4.0.0 802 | pathe: 1.1.0 803 | dev: true 804 | 805 | /@vitest/spy/0.28.5: 806 | resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} 807 | dependencies: 808 | tinyspy: 1.1.1 809 | dev: true 810 | 811 | /@vitest/utils/0.28.5: 812 | resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==} 813 | dependencies: 814 | cli-truncate: 3.1.0 815 | diff: 5.1.0 816 | loupe: 2.3.6 817 | picocolors: 1.0.0 818 | pretty-format: 27.5.1 819 | dev: true 820 | 821 | /acorn-jsx/5.3.2_acorn@8.8.2: 822 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 823 | peerDependencies: 824 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 825 | dependencies: 826 | acorn: 8.8.2 827 | 828 | /acorn-walk/8.2.0: 829 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 830 | engines: {node: '>=0.4.0'} 831 | dev: true 832 | 833 | /acorn/8.8.2: 834 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 835 | engines: {node: '>=0.4.0'} 836 | hasBin: true 837 | 838 | /ajv/6.12.6: 839 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 840 | dependencies: 841 | fast-deep-equal: 3.1.3 842 | fast-json-stable-stringify: 2.1.0 843 | json-schema-traverse: 0.4.1 844 | uri-js: 4.4.1 845 | dev: true 846 | 847 | /ansi-regex/5.0.1: 848 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 849 | engines: {node: '>=8'} 850 | dev: true 851 | 852 | /ansi-regex/6.0.1: 853 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 854 | engines: {node: '>=12'} 855 | dev: true 856 | 857 | /ansi-styles/4.3.0: 858 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 859 | engines: {node: '>=8'} 860 | dependencies: 861 | color-convert: 2.0.1 862 | dev: true 863 | 864 | /ansi-styles/5.2.0: 865 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 866 | engines: {node: '>=10'} 867 | dev: true 868 | 869 | /ansi-styles/6.2.1: 870 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 871 | engines: {node: '>=12'} 872 | dev: true 873 | 874 | /any-promise/1.3.0: 875 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 876 | dev: true 877 | 878 | /anymatch/3.1.3: 879 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 880 | engines: {node: '>= 8'} 881 | dependencies: 882 | normalize-path: 3.0.0 883 | picomatch: 2.3.1 884 | dev: true 885 | 886 | /argparse/2.0.1: 887 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 888 | dev: true 889 | 890 | /aria-query/5.1.3: 891 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} 892 | dependencies: 893 | deep-equal: 2.2.0 894 | dev: true 895 | 896 | /array-includes/3.1.6: 897 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 898 | engines: {node: '>= 0.4'} 899 | dependencies: 900 | call-bind: 1.0.2 901 | define-properties: 1.2.0 902 | es-abstract: 1.21.1 903 | get-intrinsic: 1.2.0 904 | is-string: 1.0.7 905 | dev: true 906 | 907 | /array-iterate/2.0.1: 908 | resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} 909 | dev: false 910 | 911 | /array-keyed-map/2.1.3: 912 | resolution: {integrity: sha512-JIUwuFakO+jHjxyp4YgSiKXSZeC0U+R1jR94bXWBcVlFRBycqXlb+kH9JHxBGcxnVuSqx5bnn0Qz9xtSeKOjiA==} 913 | dev: false 914 | 915 | /array-union/2.1.0: 916 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 917 | engines: {node: '>=8'} 918 | dev: true 919 | 920 | /array.prototype.flat/1.3.1: 921 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 922 | engines: {node: '>= 0.4'} 923 | dependencies: 924 | call-bind: 1.0.2 925 | define-properties: 1.2.0 926 | es-abstract: 1.21.1 927 | es-shim-unscopables: 1.0.0 928 | dev: true 929 | 930 | /array.prototype.flatmap/1.3.1: 931 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 932 | engines: {node: '>= 0.4'} 933 | dependencies: 934 | call-bind: 1.0.2 935 | define-properties: 1.2.0 936 | es-abstract: 1.21.1 937 | es-shim-unscopables: 1.0.0 938 | dev: true 939 | 940 | /array.prototype.tosorted/1.1.1: 941 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} 942 | dependencies: 943 | call-bind: 1.0.2 944 | define-properties: 1.2.0 945 | es-abstract: 1.21.1 946 | es-shim-unscopables: 1.0.0 947 | get-intrinsic: 1.2.0 948 | dev: true 949 | 950 | /assertion-error/1.1.0: 951 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 952 | dev: true 953 | 954 | /ast-types-flow/0.0.7: 955 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 956 | dev: true 957 | 958 | /asynckit/0.4.0: 959 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 960 | dev: false 961 | 962 | /available-typed-arrays/1.0.5: 963 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 964 | engines: {node: '>= 0.4'} 965 | dev: true 966 | 967 | /axe-core/4.6.3: 968 | resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} 969 | engines: {node: '>=4'} 970 | dev: true 971 | 972 | /axios/0.26.1: 973 | resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} 974 | dependencies: 975 | follow-redirects: 1.15.2 976 | transitivePeerDependencies: 977 | - debug 978 | dev: false 979 | 980 | /axobject-query/3.1.1: 981 | resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} 982 | dependencies: 983 | deep-equal: 2.2.0 984 | dev: true 985 | 986 | /bail/2.0.2: 987 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 988 | dev: false 989 | 990 | /balanced-match/1.0.2: 991 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 992 | dev: true 993 | 994 | /binary-extensions/2.2.0: 995 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 996 | engines: {node: '>=8'} 997 | dev: true 998 | 999 | /brace-expansion/1.1.11: 1000 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1001 | dependencies: 1002 | balanced-match: 1.0.2 1003 | concat-map: 0.0.1 1004 | dev: true 1005 | 1006 | /braces/3.0.2: 1007 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1008 | engines: {node: '>=8'} 1009 | dependencies: 1010 | fill-range: 7.0.1 1011 | dev: true 1012 | 1013 | /buffer-from/1.1.2: 1014 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1015 | dev: true 1016 | 1017 | /bundle-require/4.0.1_esbuild@0.17.8: 1018 | resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} 1019 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1020 | peerDependencies: 1021 | esbuild: '>=0.17' 1022 | dependencies: 1023 | esbuild: 0.17.8 1024 | load-tsconfig: 0.2.3 1025 | dev: true 1026 | 1027 | /cac/6.7.14: 1028 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1029 | engines: {node: '>=8'} 1030 | 1031 | /call-bind/1.0.2: 1032 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 1033 | dependencies: 1034 | function-bind: 1.1.1 1035 | get-intrinsic: 1.2.0 1036 | dev: true 1037 | 1038 | /callsites/3.1.0: 1039 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1040 | engines: {node: '>=6'} 1041 | dev: true 1042 | 1043 | /ccount/2.0.1: 1044 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 1045 | dev: false 1046 | 1047 | /chai/4.3.7: 1048 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 1049 | engines: {node: '>=4'} 1050 | dependencies: 1051 | assertion-error: 1.1.0 1052 | check-error: 1.0.2 1053 | deep-eql: 4.1.3 1054 | get-func-name: 2.0.0 1055 | loupe: 2.3.6 1056 | pathval: 1.1.1 1057 | type-detect: 4.0.8 1058 | dev: true 1059 | 1060 | /chalk/4.1.2: 1061 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1062 | engines: {node: '>=10'} 1063 | dependencies: 1064 | ansi-styles: 4.3.0 1065 | supports-color: 7.2.0 1066 | dev: true 1067 | 1068 | /character-entities-html4/2.1.0: 1069 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 1070 | dev: false 1071 | 1072 | /character-entities-legacy/3.0.0: 1073 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 1074 | dev: false 1075 | 1076 | /character-entities/2.0.2: 1077 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 1078 | dev: false 1079 | 1080 | /character-reference-invalid/2.0.1: 1081 | resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} 1082 | dev: false 1083 | 1084 | /check-error/1.0.2: 1085 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 1086 | dev: true 1087 | 1088 | /chokidar/3.5.3: 1089 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1090 | engines: {node: '>= 8.10.0'} 1091 | dependencies: 1092 | anymatch: 3.1.3 1093 | braces: 3.0.2 1094 | glob-parent: 5.1.2 1095 | is-binary-path: 2.1.0 1096 | is-glob: 4.0.3 1097 | normalize-path: 3.0.0 1098 | readdirp: 3.6.0 1099 | optionalDependencies: 1100 | fsevents: 2.3.2 1101 | dev: true 1102 | 1103 | /cli-truncate/3.1.0: 1104 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 1105 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1106 | dependencies: 1107 | slice-ansi: 5.0.0 1108 | string-width: 5.1.2 1109 | dev: true 1110 | 1111 | /color-convert/2.0.1: 1112 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1113 | engines: {node: '>=7.0.0'} 1114 | dependencies: 1115 | color-name: 1.1.4 1116 | dev: true 1117 | 1118 | /color-name/1.1.4: 1119 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1120 | dev: true 1121 | 1122 | /combined-stream/1.0.8: 1123 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1124 | engines: {node: '>= 0.8'} 1125 | dependencies: 1126 | delayed-stream: 1.0.0 1127 | dev: false 1128 | 1129 | /commander/4.1.1: 1130 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1131 | engines: {node: '>= 6'} 1132 | dev: true 1133 | 1134 | /concat-map/0.0.1: 1135 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 1136 | dev: true 1137 | 1138 | /cross-spawn/7.0.3: 1139 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1140 | engines: {node: '>= 8'} 1141 | dependencies: 1142 | path-key: 3.1.1 1143 | shebang-command: 2.0.0 1144 | which: 2.0.2 1145 | dev: true 1146 | 1147 | /damerau-levenshtein/1.0.8: 1148 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 1149 | dev: true 1150 | 1151 | /debug/3.2.7: 1152 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1153 | peerDependencies: 1154 | supports-color: '*' 1155 | peerDependenciesMeta: 1156 | supports-color: 1157 | optional: true 1158 | dependencies: 1159 | ms: 2.1.2 1160 | dev: true 1161 | 1162 | /debug/4.3.4: 1163 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1164 | engines: {node: '>=6.0'} 1165 | peerDependencies: 1166 | supports-color: '*' 1167 | peerDependenciesMeta: 1168 | supports-color: 1169 | optional: true 1170 | dependencies: 1171 | ms: 2.1.2 1172 | 1173 | /decode-named-character-reference/1.0.2: 1174 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} 1175 | dependencies: 1176 | character-entities: 2.0.2 1177 | dev: false 1178 | 1179 | /deep-eql/4.1.3: 1180 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1181 | engines: {node: '>=6'} 1182 | dependencies: 1183 | type-detect: 4.0.8 1184 | dev: true 1185 | 1186 | /deep-equal/2.2.0: 1187 | resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} 1188 | dependencies: 1189 | call-bind: 1.0.2 1190 | es-get-iterator: 1.1.3 1191 | get-intrinsic: 1.2.0 1192 | is-arguments: 1.1.1 1193 | is-array-buffer: 3.0.1 1194 | is-date-object: 1.0.5 1195 | is-regex: 1.1.4 1196 | is-shared-array-buffer: 1.0.2 1197 | isarray: 2.0.5 1198 | object-is: 1.1.5 1199 | object-keys: 1.1.1 1200 | object.assign: 4.1.4 1201 | regexp.prototype.flags: 1.4.3 1202 | side-channel: 1.0.4 1203 | which-boxed-primitive: 1.0.2 1204 | which-collection: 1.0.1 1205 | which-typed-array: 1.1.9 1206 | dev: true 1207 | 1208 | /deep-is/0.1.4: 1209 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1210 | dev: true 1211 | 1212 | /define-lazy-prop/2.0.0: 1213 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 1214 | engines: {node: '>=8'} 1215 | dev: true 1216 | 1217 | /define-properties/1.2.0: 1218 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1219 | engines: {node: '>= 0.4'} 1220 | dependencies: 1221 | has-property-descriptors: 1.0.0 1222 | object-keys: 1.1.1 1223 | dev: true 1224 | 1225 | /delayed-stream/1.0.0: 1226 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1227 | engines: {node: '>=0.4.0'} 1228 | dev: false 1229 | 1230 | /dequal/2.0.3: 1231 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1232 | engines: {node: '>=6'} 1233 | dev: false 1234 | 1235 | /diff/5.1.0: 1236 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 1237 | engines: {node: '>=0.3.1'} 1238 | 1239 | /dir-glob/3.0.1: 1240 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1241 | engines: {node: '>=8'} 1242 | dependencies: 1243 | path-type: 4.0.0 1244 | dev: true 1245 | 1246 | /doctrine/2.1.0: 1247 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1248 | engines: {node: '>=0.10.0'} 1249 | dependencies: 1250 | esutils: 2.0.3 1251 | dev: true 1252 | 1253 | /doctrine/3.0.0: 1254 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1255 | engines: {node: '>=6.0.0'} 1256 | dependencies: 1257 | esutils: 2.0.3 1258 | dev: true 1259 | 1260 | /dotenv/16.0.3: 1261 | resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} 1262 | engines: {node: '>=12'} 1263 | dev: false 1264 | 1265 | /eastasianwidth/0.2.0: 1266 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1267 | dev: true 1268 | 1269 | /emoji-regex/9.2.2: 1270 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1271 | dev: true 1272 | 1273 | /enhanced-resolve/5.12.0: 1274 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} 1275 | engines: {node: '>=10.13.0'} 1276 | dependencies: 1277 | graceful-fs: 4.2.10 1278 | tapable: 2.2.1 1279 | dev: true 1280 | 1281 | /es-abstract/1.21.1: 1282 | resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} 1283 | engines: {node: '>= 0.4'} 1284 | dependencies: 1285 | available-typed-arrays: 1.0.5 1286 | call-bind: 1.0.2 1287 | es-set-tostringtag: 2.0.1 1288 | es-to-primitive: 1.2.1 1289 | function-bind: 1.1.1 1290 | function.prototype.name: 1.1.5 1291 | get-intrinsic: 1.2.0 1292 | get-symbol-description: 1.0.0 1293 | globalthis: 1.0.3 1294 | gopd: 1.0.1 1295 | has: 1.0.3 1296 | has-property-descriptors: 1.0.0 1297 | has-proto: 1.0.1 1298 | has-symbols: 1.0.3 1299 | internal-slot: 1.0.5 1300 | is-array-buffer: 3.0.1 1301 | is-callable: 1.2.7 1302 | is-negative-zero: 2.0.2 1303 | is-regex: 1.1.4 1304 | is-shared-array-buffer: 1.0.2 1305 | is-string: 1.0.7 1306 | is-typed-array: 1.1.10 1307 | is-weakref: 1.0.2 1308 | object-inspect: 1.12.3 1309 | object-keys: 1.1.1 1310 | object.assign: 4.1.4 1311 | regexp.prototype.flags: 1.4.3 1312 | safe-regex-test: 1.0.0 1313 | string.prototype.trimend: 1.0.6 1314 | string.prototype.trimstart: 1.0.6 1315 | typed-array-length: 1.0.4 1316 | unbox-primitive: 1.0.2 1317 | which-typed-array: 1.1.9 1318 | dev: true 1319 | 1320 | /es-get-iterator/1.1.3: 1321 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} 1322 | dependencies: 1323 | call-bind: 1.0.2 1324 | get-intrinsic: 1.2.0 1325 | has-symbols: 1.0.3 1326 | is-arguments: 1.1.1 1327 | is-map: 2.0.2 1328 | is-set: 2.0.2 1329 | is-string: 1.0.7 1330 | isarray: 2.0.5 1331 | stop-iteration-iterator: 1.0.0 1332 | dev: true 1333 | 1334 | /es-set-tostringtag/2.0.1: 1335 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 1336 | engines: {node: '>= 0.4'} 1337 | dependencies: 1338 | get-intrinsic: 1.2.0 1339 | has: 1.0.3 1340 | has-tostringtag: 1.0.0 1341 | dev: true 1342 | 1343 | /es-shim-unscopables/1.0.0: 1344 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1345 | dependencies: 1346 | has: 1.0.3 1347 | dev: true 1348 | 1349 | /es-to-primitive/1.2.1: 1350 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1351 | engines: {node: '>= 0.4'} 1352 | dependencies: 1353 | is-callable: 1.2.7 1354 | is-date-object: 1.0.5 1355 | is-symbol: 1.0.4 1356 | dev: true 1357 | 1358 | /esbuild/0.16.17: 1359 | resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} 1360 | engines: {node: '>=12'} 1361 | hasBin: true 1362 | requiresBuild: true 1363 | optionalDependencies: 1364 | '@esbuild/android-arm': 0.16.17 1365 | '@esbuild/android-arm64': 0.16.17 1366 | '@esbuild/android-x64': 0.16.17 1367 | '@esbuild/darwin-arm64': 0.16.17 1368 | '@esbuild/darwin-x64': 0.16.17 1369 | '@esbuild/freebsd-arm64': 0.16.17 1370 | '@esbuild/freebsd-x64': 0.16.17 1371 | '@esbuild/linux-arm': 0.16.17 1372 | '@esbuild/linux-arm64': 0.16.17 1373 | '@esbuild/linux-ia32': 0.16.17 1374 | '@esbuild/linux-loong64': 0.16.17 1375 | '@esbuild/linux-mips64el': 0.16.17 1376 | '@esbuild/linux-ppc64': 0.16.17 1377 | '@esbuild/linux-riscv64': 0.16.17 1378 | '@esbuild/linux-s390x': 0.16.17 1379 | '@esbuild/linux-x64': 0.16.17 1380 | '@esbuild/netbsd-x64': 0.16.17 1381 | '@esbuild/openbsd-x64': 0.16.17 1382 | '@esbuild/sunos-x64': 0.16.17 1383 | '@esbuild/win32-arm64': 0.16.17 1384 | '@esbuild/win32-ia32': 0.16.17 1385 | '@esbuild/win32-x64': 0.16.17 1386 | dev: true 1387 | 1388 | /esbuild/0.17.8: 1389 | resolution: {integrity: sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==} 1390 | engines: {node: '>=12'} 1391 | hasBin: true 1392 | requiresBuild: true 1393 | optionalDependencies: 1394 | '@esbuild/android-arm': 0.17.8 1395 | '@esbuild/android-arm64': 0.17.8 1396 | '@esbuild/android-x64': 0.17.8 1397 | '@esbuild/darwin-arm64': 0.17.8 1398 | '@esbuild/darwin-x64': 0.17.8 1399 | '@esbuild/freebsd-arm64': 0.17.8 1400 | '@esbuild/freebsd-x64': 0.17.8 1401 | '@esbuild/linux-arm': 0.17.8 1402 | '@esbuild/linux-arm64': 0.17.8 1403 | '@esbuild/linux-ia32': 0.17.8 1404 | '@esbuild/linux-loong64': 0.17.8 1405 | '@esbuild/linux-mips64el': 0.17.8 1406 | '@esbuild/linux-ppc64': 0.17.8 1407 | '@esbuild/linux-riscv64': 0.17.8 1408 | '@esbuild/linux-s390x': 0.17.8 1409 | '@esbuild/linux-x64': 0.17.8 1410 | '@esbuild/netbsd-x64': 0.17.8 1411 | '@esbuild/openbsd-x64': 0.17.8 1412 | '@esbuild/sunos-x64': 0.17.8 1413 | '@esbuild/win32-arm64': 0.17.8 1414 | '@esbuild/win32-ia32': 0.17.8 1415 | '@esbuild/win32-x64': 0.17.8 1416 | dev: true 1417 | 1418 | /escape-string-regexp/4.0.0: 1419 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1420 | engines: {node: '>=10'} 1421 | dev: true 1422 | 1423 | /escape-string-regexp/5.0.0: 1424 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1425 | engines: {node: '>=12'} 1426 | dev: false 1427 | 1428 | /eslint-import-resolver-node/0.3.7: 1429 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} 1430 | dependencies: 1431 | debug: 3.2.7 1432 | is-core-module: 2.11.0 1433 | resolve: 1.22.1 1434 | transitivePeerDependencies: 1435 | - supports-color 1436 | dev: true 1437 | 1438 | /eslint-import-resolver-typescript/3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm: 1439 | resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} 1440 | engines: {node: ^14.18.0 || >=16.0.0} 1441 | peerDependencies: 1442 | eslint: '*' 1443 | eslint-plugin-import: '*' 1444 | dependencies: 1445 | debug: 4.3.4 1446 | enhanced-resolve: 5.12.0 1447 | eslint: 8.34.0 1448 | eslint-plugin-import: 2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi 1449 | get-tsconfig: 4.4.0 1450 | globby: 13.1.3 1451 | is-core-module: 2.11.0 1452 | is-glob: 4.0.3 1453 | synckit: 0.8.5 1454 | transitivePeerDependencies: 1455 | - supports-color 1456 | dev: true 1457 | 1458 | /eslint-module-utils/2.7.4_cvrl34cvgpgac5pvqi7ag6zw7e: 1459 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 1460 | engines: {node: '>=4'} 1461 | peerDependencies: 1462 | '@typescript-eslint/parser': '*' 1463 | eslint: '*' 1464 | eslint-import-resolver-node: '*' 1465 | eslint-import-resolver-typescript: '*' 1466 | eslint-import-resolver-webpack: '*' 1467 | peerDependenciesMeta: 1468 | '@typescript-eslint/parser': 1469 | optional: true 1470 | eslint: 1471 | optional: true 1472 | eslint-import-resolver-node: 1473 | optional: true 1474 | eslint-import-resolver-typescript: 1475 | optional: true 1476 | eslint-import-resolver-webpack: 1477 | optional: true 1478 | dependencies: 1479 | '@typescript-eslint/parser': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 1480 | debug: 3.2.7 1481 | eslint: 8.34.0 1482 | eslint-import-resolver-node: 0.3.7 1483 | eslint-import-resolver-typescript: 3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm 1484 | transitivePeerDependencies: 1485 | - supports-color 1486 | dev: true 1487 | 1488 | /eslint-plugin-import/2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi: 1489 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 1490 | engines: {node: '>=4'} 1491 | peerDependencies: 1492 | '@typescript-eslint/parser': '*' 1493 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1494 | peerDependenciesMeta: 1495 | '@typescript-eslint/parser': 1496 | optional: true 1497 | dependencies: 1498 | '@typescript-eslint/parser': 5.52.0_kj4pw4bbzer7vpyrczb5nqfemu 1499 | array-includes: 3.1.6 1500 | array.prototype.flat: 1.3.1 1501 | array.prototype.flatmap: 1.3.1 1502 | debug: 3.2.7 1503 | doctrine: 2.1.0 1504 | eslint: 8.34.0 1505 | eslint-import-resolver-node: 0.3.7 1506 | eslint-module-utils: 2.7.4_cvrl34cvgpgac5pvqi7ag6zw7e 1507 | has: 1.0.3 1508 | is-core-module: 2.11.0 1509 | is-glob: 4.0.3 1510 | minimatch: 3.1.2 1511 | object.values: 1.1.6 1512 | resolve: 1.22.1 1513 | semver: 6.3.0 1514 | tsconfig-paths: 3.14.1 1515 | transitivePeerDependencies: 1516 | - eslint-import-resolver-typescript 1517 | - eslint-import-resolver-webpack 1518 | - supports-color 1519 | dev: true 1520 | 1521 | /eslint-plugin-jsx-a11y/6.7.1_eslint@8.34.0: 1522 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 1523 | engines: {node: '>=4.0'} 1524 | peerDependencies: 1525 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1526 | dependencies: 1527 | '@babel/runtime': 7.20.13 1528 | aria-query: 5.1.3 1529 | array-includes: 3.1.6 1530 | array.prototype.flatmap: 1.3.1 1531 | ast-types-flow: 0.0.7 1532 | axe-core: 4.6.3 1533 | axobject-query: 3.1.1 1534 | damerau-levenshtein: 1.0.8 1535 | emoji-regex: 9.2.2 1536 | eslint: 8.34.0 1537 | has: 1.0.3 1538 | jsx-ast-utils: 3.3.3 1539 | language-tags: 1.0.5 1540 | minimatch: 3.1.2 1541 | object.entries: 1.1.6 1542 | object.fromentries: 2.0.6 1543 | semver: 6.3.0 1544 | dev: true 1545 | 1546 | /eslint-plugin-react-hooks/4.6.0_eslint@8.34.0: 1547 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1548 | engines: {node: '>=10'} 1549 | peerDependencies: 1550 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1551 | dependencies: 1552 | eslint: 8.34.0 1553 | dev: true 1554 | 1555 | /eslint-plugin-react/7.32.2_eslint@8.34.0: 1556 | resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} 1557 | engines: {node: '>=4'} 1558 | peerDependencies: 1559 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1560 | dependencies: 1561 | array-includes: 3.1.6 1562 | array.prototype.flatmap: 1.3.1 1563 | array.prototype.tosorted: 1.1.1 1564 | doctrine: 2.1.0 1565 | eslint: 8.34.0 1566 | estraverse: 5.3.0 1567 | jsx-ast-utils: 3.3.3 1568 | minimatch: 3.1.2 1569 | object.entries: 1.1.6 1570 | object.fromentries: 2.0.6 1571 | object.hasown: 1.1.2 1572 | object.values: 1.1.6 1573 | prop-types: 15.8.1 1574 | resolve: 2.0.0-next.4 1575 | semver: 6.3.0 1576 | string.prototype.matchall: 4.0.8 1577 | dev: true 1578 | 1579 | /eslint-plugin-simple-import-sort/9.0.0_eslint@8.34.0: 1580 | resolution: {integrity: sha512-PtrLjyXP8kjRneWT1n0b99y/2Fyup37we7FVoWsI61/O7x4ztLohzhep/pxI/cYlECr/cQ2j6utckdvWpVwXNA==} 1581 | peerDependencies: 1582 | eslint: '>=5.0.0' 1583 | dependencies: 1584 | eslint: 8.34.0 1585 | dev: true 1586 | 1587 | /eslint-plugin-sonarjs/0.18.0_eslint@8.34.0: 1588 | resolution: {integrity: sha512-DJ3osLnt6KFdT5e9ZuIDOjT5A6wUGSLeiJJT03lPgpdD+7CVWlYAw9Goe3bt7SmbFO3Xh89NOCZAuB9XA7bAUQ==} 1589 | engines: {node: '>=14'} 1590 | peerDependencies: 1591 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 1592 | dependencies: 1593 | eslint: 8.34.0 1594 | dev: true 1595 | 1596 | /eslint-scope/5.1.1: 1597 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1598 | engines: {node: '>=8.0.0'} 1599 | dependencies: 1600 | esrecurse: 4.3.0 1601 | estraverse: 4.3.0 1602 | dev: true 1603 | 1604 | /eslint-scope/7.1.1: 1605 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1606 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1607 | dependencies: 1608 | esrecurse: 4.3.0 1609 | estraverse: 5.3.0 1610 | dev: true 1611 | 1612 | /eslint-utils/3.0.0_eslint@8.34.0: 1613 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1614 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1615 | peerDependencies: 1616 | eslint: '>=5' 1617 | dependencies: 1618 | eslint: 8.34.0 1619 | eslint-visitor-keys: 2.1.0 1620 | dev: true 1621 | 1622 | /eslint-visitor-keys/2.1.0: 1623 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1624 | engines: {node: '>=10'} 1625 | dev: true 1626 | 1627 | /eslint-visitor-keys/3.3.0: 1628 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1629 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1630 | dev: true 1631 | 1632 | /eslint/8.34.0: 1633 | resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==} 1634 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1635 | hasBin: true 1636 | dependencies: 1637 | '@eslint/eslintrc': 1.4.1 1638 | '@humanwhocodes/config-array': 0.11.8 1639 | '@humanwhocodes/module-importer': 1.0.1 1640 | '@nodelib/fs.walk': 1.2.8 1641 | ajv: 6.12.6 1642 | chalk: 4.1.2 1643 | cross-spawn: 7.0.3 1644 | debug: 4.3.4 1645 | doctrine: 3.0.0 1646 | escape-string-regexp: 4.0.0 1647 | eslint-scope: 7.1.1 1648 | eslint-utils: 3.0.0_eslint@8.34.0 1649 | eslint-visitor-keys: 3.3.0 1650 | espree: 9.4.1 1651 | esquery: 1.4.0 1652 | esutils: 2.0.3 1653 | fast-deep-equal: 3.1.3 1654 | file-entry-cache: 6.0.1 1655 | find-up: 5.0.0 1656 | glob-parent: 6.0.2 1657 | globals: 13.20.0 1658 | grapheme-splitter: 1.0.4 1659 | ignore: 5.2.4 1660 | import-fresh: 3.3.0 1661 | imurmurhash: 0.1.4 1662 | is-glob: 4.0.3 1663 | is-path-inside: 3.0.3 1664 | js-sdsl: 4.3.0 1665 | js-yaml: 4.1.0 1666 | json-stable-stringify-without-jsonify: 1.0.1 1667 | levn: 0.4.1 1668 | lodash.merge: 4.6.2 1669 | minimatch: 3.1.2 1670 | natural-compare: 1.4.0 1671 | optionator: 0.9.1 1672 | regexpp: 3.2.0 1673 | strip-ansi: 6.0.1 1674 | strip-json-comments: 3.1.1 1675 | text-table: 0.2.0 1676 | transitivePeerDependencies: 1677 | - supports-color 1678 | dev: true 1679 | 1680 | /espree/9.4.1: 1681 | resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} 1682 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1683 | dependencies: 1684 | acorn: 8.8.2 1685 | acorn-jsx: 5.3.2_acorn@8.8.2 1686 | eslint-visitor-keys: 3.3.0 1687 | dev: true 1688 | 1689 | /esquery/1.4.0: 1690 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1691 | engines: {node: '>=0.10'} 1692 | dependencies: 1693 | estraverse: 5.3.0 1694 | dev: true 1695 | 1696 | /esrecurse/4.3.0: 1697 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1698 | engines: {node: '>=4.0'} 1699 | dependencies: 1700 | estraverse: 5.3.0 1701 | dev: true 1702 | 1703 | /estraverse/4.3.0: 1704 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1705 | engines: {node: '>=4.0'} 1706 | dev: true 1707 | 1708 | /estraverse/5.3.0: 1709 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1710 | engines: {node: '>=4.0'} 1711 | dev: true 1712 | 1713 | /estree-util-is-identifier-name/2.1.0: 1714 | resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} 1715 | dev: false 1716 | 1717 | /estree-util-visit/1.2.1: 1718 | resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} 1719 | dependencies: 1720 | '@types/estree-jsx': 1.0.0 1721 | '@types/unist': 2.0.6 1722 | dev: false 1723 | 1724 | /esutils/2.0.3: 1725 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1726 | engines: {node: '>=0.10.0'} 1727 | dev: true 1728 | 1729 | /execa/5.1.1: 1730 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1731 | engines: {node: '>=10'} 1732 | dependencies: 1733 | cross-spawn: 7.0.3 1734 | get-stream: 6.0.1 1735 | human-signals: 2.1.0 1736 | is-stream: 2.0.1 1737 | merge-stream: 2.0.0 1738 | npm-run-path: 4.0.1 1739 | onetime: 5.1.2 1740 | signal-exit: 3.0.7 1741 | strip-final-newline: 2.0.0 1742 | dev: true 1743 | 1744 | /extend/3.0.2: 1745 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1746 | dev: false 1747 | 1748 | /fast-deep-equal/3.1.3: 1749 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1750 | dev: true 1751 | 1752 | /fast-glob/3.2.12: 1753 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1754 | engines: {node: '>=8.6.0'} 1755 | dependencies: 1756 | '@nodelib/fs.stat': 2.0.5 1757 | '@nodelib/fs.walk': 1.2.8 1758 | glob-parent: 5.1.2 1759 | merge2: 1.4.1 1760 | micromatch: 4.0.5 1761 | dev: true 1762 | 1763 | /fast-json-stable-stringify/2.1.0: 1764 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1765 | dev: true 1766 | 1767 | /fast-levenshtein/2.0.6: 1768 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1769 | dev: true 1770 | 1771 | /fastq/1.15.0: 1772 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1773 | dependencies: 1774 | reusify: 1.0.4 1775 | dev: true 1776 | 1777 | /fault/2.0.1: 1778 | resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} 1779 | dependencies: 1780 | format: 0.2.2 1781 | dev: false 1782 | 1783 | /file-entry-cache/6.0.1: 1784 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1785 | engines: {node: ^10.12.0 || >=12.0.0} 1786 | dependencies: 1787 | flat-cache: 3.0.4 1788 | dev: true 1789 | 1790 | /fill-range/7.0.1: 1791 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1792 | engines: {node: '>=8'} 1793 | dependencies: 1794 | to-regex-range: 5.0.1 1795 | dev: true 1796 | 1797 | /find-up/5.0.0: 1798 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1799 | engines: {node: '>=10'} 1800 | dependencies: 1801 | locate-path: 6.0.0 1802 | path-exists: 4.0.0 1803 | dev: true 1804 | 1805 | /flat-cache/3.0.4: 1806 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1807 | engines: {node: ^10.12.0 || >=12.0.0} 1808 | dependencies: 1809 | flatted: 3.2.7 1810 | rimraf: 3.0.2 1811 | dev: true 1812 | 1813 | /flatted/3.2.7: 1814 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1815 | dev: true 1816 | 1817 | /follow-redirects/1.15.2: 1818 | resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} 1819 | engines: {node: '>=4.0'} 1820 | peerDependencies: 1821 | debug: '*' 1822 | peerDependenciesMeta: 1823 | debug: 1824 | optional: true 1825 | dev: false 1826 | 1827 | /for-each/0.3.3: 1828 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1829 | dependencies: 1830 | is-callable: 1.2.7 1831 | dev: true 1832 | 1833 | /form-data/4.0.0: 1834 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1835 | engines: {node: '>= 6'} 1836 | dependencies: 1837 | asynckit: 0.4.0 1838 | combined-stream: 1.0.8 1839 | mime-types: 2.1.35 1840 | dev: false 1841 | 1842 | /format/0.2.2: 1843 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} 1844 | engines: {node: '>=0.4.x'} 1845 | dev: false 1846 | 1847 | /fs.realpath/1.0.0: 1848 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1849 | dev: true 1850 | 1851 | /fsevents/2.3.2: 1852 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1853 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1854 | os: [darwin] 1855 | requiresBuild: true 1856 | dev: true 1857 | optional: true 1858 | 1859 | /function-bind/1.1.1: 1860 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1861 | dev: true 1862 | 1863 | /function.prototype.name/1.1.5: 1864 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1865 | engines: {node: '>= 0.4'} 1866 | dependencies: 1867 | call-bind: 1.0.2 1868 | define-properties: 1.2.0 1869 | es-abstract: 1.21.1 1870 | functions-have-names: 1.2.3 1871 | dev: true 1872 | 1873 | /functions-have-names/1.2.3: 1874 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1875 | dev: true 1876 | 1877 | /get-func-name/2.0.0: 1878 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1879 | dev: true 1880 | 1881 | /get-intrinsic/1.2.0: 1882 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1883 | dependencies: 1884 | function-bind: 1.1.1 1885 | has: 1.0.3 1886 | has-symbols: 1.0.3 1887 | dev: true 1888 | 1889 | /get-stream/6.0.1: 1890 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1891 | engines: {node: '>=10'} 1892 | dev: true 1893 | 1894 | /get-symbol-description/1.0.0: 1895 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1896 | engines: {node: '>= 0.4'} 1897 | dependencies: 1898 | call-bind: 1.0.2 1899 | get-intrinsic: 1.2.0 1900 | dev: true 1901 | 1902 | /get-tsconfig/4.4.0: 1903 | resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} 1904 | dev: true 1905 | 1906 | /glob-parent/5.1.2: 1907 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1908 | engines: {node: '>= 6'} 1909 | dependencies: 1910 | is-glob: 4.0.3 1911 | dev: true 1912 | 1913 | /glob-parent/6.0.2: 1914 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1915 | engines: {node: '>=10.13.0'} 1916 | dependencies: 1917 | is-glob: 4.0.3 1918 | dev: true 1919 | 1920 | /glob/7.1.6: 1921 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1922 | dependencies: 1923 | fs.realpath: 1.0.0 1924 | inflight: 1.0.6 1925 | inherits: 2.0.4 1926 | minimatch: 3.1.2 1927 | once: 1.4.0 1928 | path-is-absolute: 1.0.1 1929 | dev: true 1930 | 1931 | /glob/7.1.7: 1932 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1933 | dependencies: 1934 | fs.realpath: 1.0.0 1935 | inflight: 1.0.6 1936 | inherits: 2.0.4 1937 | minimatch: 3.1.2 1938 | once: 1.4.0 1939 | path-is-absolute: 1.0.1 1940 | dev: true 1941 | 1942 | /globals/13.20.0: 1943 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1944 | engines: {node: '>=8'} 1945 | dependencies: 1946 | type-fest: 0.20.2 1947 | dev: true 1948 | 1949 | /globalthis/1.0.3: 1950 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1951 | engines: {node: '>= 0.4'} 1952 | dependencies: 1953 | define-properties: 1.2.0 1954 | dev: true 1955 | 1956 | /globalyzer/0.1.0: 1957 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1958 | 1959 | /globby/11.1.0: 1960 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1961 | engines: {node: '>=10'} 1962 | dependencies: 1963 | array-union: 2.1.0 1964 | dir-glob: 3.0.1 1965 | fast-glob: 3.2.12 1966 | ignore: 5.2.4 1967 | merge2: 1.4.1 1968 | slash: 3.0.0 1969 | dev: true 1970 | 1971 | /globby/13.1.3: 1972 | resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} 1973 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1974 | dependencies: 1975 | dir-glob: 3.0.1 1976 | fast-glob: 3.2.12 1977 | ignore: 5.2.4 1978 | merge2: 1.4.1 1979 | slash: 4.0.0 1980 | dev: true 1981 | 1982 | /globrex/0.1.2: 1983 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1984 | 1985 | /gopd/1.0.1: 1986 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1987 | dependencies: 1988 | get-intrinsic: 1.2.0 1989 | dev: true 1990 | 1991 | /gpt3-tokenizer/1.1.5: 1992 | resolution: {integrity: sha512-O9iCL8MqGR0Oe9wTh0YftzIbysypNQmS5a5JG3cB3M4LMYjlAVvNnf8LUzVY9MrI7tj+YLY356uHtO2lLX2HpA==} 1993 | engines: {node: '>=12'} 1994 | dependencies: 1995 | array-keyed-map: 2.1.3 1996 | dev: false 1997 | 1998 | /graceful-fs/4.2.10: 1999 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 2000 | dev: true 2001 | 2002 | /grapheme-splitter/1.0.4: 2003 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 2004 | dev: true 2005 | 2006 | /has-bigints/1.0.2: 2007 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2008 | dev: true 2009 | 2010 | /has-flag/4.0.0: 2011 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2012 | engines: {node: '>=8'} 2013 | dev: true 2014 | 2015 | /has-property-descriptors/1.0.0: 2016 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 2017 | dependencies: 2018 | get-intrinsic: 1.2.0 2019 | dev: true 2020 | 2021 | /has-proto/1.0.1: 2022 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 2023 | engines: {node: '>= 0.4'} 2024 | dev: true 2025 | 2026 | /has-symbols/1.0.3: 2027 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2028 | engines: {node: '>= 0.4'} 2029 | dev: true 2030 | 2031 | /has-tostringtag/1.0.0: 2032 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 2033 | engines: {node: '>= 0.4'} 2034 | dependencies: 2035 | has-symbols: 1.0.3 2036 | dev: true 2037 | 2038 | /has/1.0.3: 2039 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2040 | engines: {node: '>= 0.4.0'} 2041 | dependencies: 2042 | function-bind: 1.1.1 2043 | dev: true 2044 | 2045 | /human-signals/2.1.0: 2046 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2047 | engines: {node: '>=10.17.0'} 2048 | dev: true 2049 | 2050 | /ignore/5.2.4: 2051 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 2052 | engines: {node: '>= 4'} 2053 | dev: true 2054 | 2055 | /import-fresh/3.3.0: 2056 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2057 | engines: {node: '>=6'} 2058 | dependencies: 2059 | parent-module: 1.0.1 2060 | resolve-from: 4.0.0 2061 | dev: true 2062 | 2063 | /imurmurhash/0.1.4: 2064 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2065 | engines: {node: '>=0.8.19'} 2066 | dev: true 2067 | 2068 | /inflight/1.0.6: 2069 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2070 | dependencies: 2071 | once: 1.4.0 2072 | wrappy: 1.0.2 2073 | dev: true 2074 | 2075 | /inherits/2.0.4: 2076 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2077 | dev: true 2078 | 2079 | /internal-slot/1.0.5: 2080 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 2081 | engines: {node: '>= 0.4'} 2082 | dependencies: 2083 | get-intrinsic: 1.2.0 2084 | has: 1.0.3 2085 | side-channel: 1.0.4 2086 | dev: true 2087 | 2088 | /is-alphabetical/2.0.1: 2089 | resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} 2090 | dev: false 2091 | 2092 | /is-alphanumerical/2.0.1: 2093 | resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} 2094 | dependencies: 2095 | is-alphabetical: 2.0.1 2096 | is-decimal: 2.0.1 2097 | dev: false 2098 | 2099 | /is-arguments/1.1.1: 2100 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 2101 | engines: {node: '>= 0.4'} 2102 | dependencies: 2103 | call-bind: 1.0.2 2104 | has-tostringtag: 1.0.0 2105 | dev: true 2106 | 2107 | /is-array-buffer/3.0.1: 2108 | resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} 2109 | dependencies: 2110 | call-bind: 1.0.2 2111 | get-intrinsic: 1.2.0 2112 | is-typed-array: 1.1.10 2113 | dev: true 2114 | 2115 | /is-bigint/1.0.4: 2116 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2117 | dependencies: 2118 | has-bigints: 1.0.2 2119 | dev: true 2120 | 2121 | /is-binary-path/2.1.0: 2122 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2123 | engines: {node: '>=8'} 2124 | dependencies: 2125 | binary-extensions: 2.2.0 2126 | dev: true 2127 | 2128 | /is-boolean-object/1.1.2: 2129 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2130 | engines: {node: '>= 0.4'} 2131 | dependencies: 2132 | call-bind: 1.0.2 2133 | has-tostringtag: 1.0.0 2134 | dev: true 2135 | 2136 | /is-buffer/2.0.5: 2137 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 2138 | engines: {node: '>=4'} 2139 | dev: false 2140 | 2141 | /is-callable/1.2.7: 2142 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2143 | engines: {node: '>= 0.4'} 2144 | dev: true 2145 | 2146 | /is-core-module/2.11.0: 2147 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 2148 | dependencies: 2149 | has: 1.0.3 2150 | dev: true 2151 | 2152 | /is-date-object/1.0.5: 2153 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2154 | engines: {node: '>= 0.4'} 2155 | dependencies: 2156 | has-tostringtag: 1.0.0 2157 | dev: true 2158 | 2159 | /is-decimal/2.0.1: 2160 | resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} 2161 | dev: false 2162 | 2163 | /is-docker/2.2.1: 2164 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 2165 | engines: {node: '>=8'} 2166 | hasBin: true 2167 | dev: true 2168 | 2169 | /is-extglob/2.1.1: 2170 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2171 | engines: {node: '>=0.10.0'} 2172 | dev: true 2173 | 2174 | /is-fullwidth-code-point/4.0.0: 2175 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 2176 | engines: {node: '>=12'} 2177 | dev: true 2178 | 2179 | /is-glob/4.0.3: 2180 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2181 | engines: {node: '>=0.10.0'} 2182 | dependencies: 2183 | is-extglob: 2.1.1 2184 | dev: true 2185 | 2186 | /is-hexadecimal/2.0.1: 2187 | resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} 2188 | dev: false 2189 | 2190 | /is-map/2.0.2: 2191 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 2192 | dev: true 2193 | 2194 | /is-negative-zero/2.0.2: 2195 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2196 | engines: {node: '>= 0.4'} 2197 | dev: true 2198 | 2199 | /is-number-object/1.0.7: 2200 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2201 | engines: {node: '>= 0.4'} 2202 | dependencies: 2203 | has-tostringtag: 1.0.0 2204 | dev: true 2205 | 2206 | /is-number/7.0.0: 2207 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2208 | engines: {node: '>=0.12.0'} 2209 | dev: true 2210 | 2211 | /is-path-inside/3.0.3: 2212 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2213 | engines: {node: '>=8'} 2214 | dev: true 2215 | 2216 | /is-plain-obj/4.1.0: 2217 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 2218 | engines: {node: '>=12'} 2219 | dev: false 2220 | 2221 | /is-regex/1.1.4: 2222 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2223 | engines: {node: '>= 0.4'} 2224 | dependencies: 2225 | call-bind: 1.0.2 2226 | has-tostringtag: 1.0.0 2227 | dev: true 2228 | 2229 | /is-set/2.0.2: 2230 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 2231 | dev: true 2232 | 2233 | /is-shared-array-buffer/1.0.2: 2234 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2235 | dependencies: 2236 | call-bind: 1.0.2 2237 | dev: true 2238 | 2239 | /is-stream/2.0.1: 2240 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2241 | engines: {node: '>=8'} 2242 | dev: true 2243 | 2244 | /is-string/1.0.7: 2245 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2246 | engines: {node: '>= 0.4'} 2247 | dependencies: 2248 | has-tostringtag: 1.0.0 2249 | dev: true 2250 | 2251 | /is-symbol/1.0.4: 2252 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2253 | engines: {node: '>= 0.4'} 2254 | dependencies: 2255 | has-symbols: 1.0.3 2256 | dev: true 2257 | 2258 | /is-typed-array/1.1.10: 2259 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 2260 | engines: {node: '>= 0.4'} 2261 | dependencies: 2262 | available-typed-arrays: 1.0.5 2263 | call-bind: 1.0.2 2264 | for-each: 0.3.3 2265 | gopd: 1.0.1 2266 | has-tostringtag: 1.0.0 2267 | dev: true 2268 | 2269 | /is-weakmap/2.0.1: 2270 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 2271 | dev: true 2272 | 2273 | /is-weakref/1.0.2: 2274 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2275 | dependencies: 2276 | call-bind: 1.0.2 2277 | dev: true 2278 | 2279 | /is-weakset/2.0.2: 2280 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 2281 | dependencies: 2282 | call-bind: 1.0.2 2283 | get-intrinsic: 1.2.0 2284 | dev: true 2285 | 2286 | /is-wsl/2.2.0: 2287 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 2288 | engines: {node: '>=8'} 2289 | dependencies: 2290 | is-docker: 2.2.1 2291 | dev: true 2292 | 2293 | /isarray/2.0.5: 2294 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2295 | dev: true 2296 | 2297 | /isexe/2.0.0: 2298 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2299 | dev: true 2300 | 2301 | /joycon/3.1.1: 2302 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2303 | engines: {node: '>=10'} 2304 | dev: true 2305 | 2306 | /js-sdsl/4.3.0: 2307 | resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} 2308 | dev: true 2309 | 2310 | /js-tokens/4.0.0: 2311 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2312 | dev: true 2313 | 2314 | /js-yaml/4.1.0: 2315 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2316 | hasBin: true 2317 | dependencies: 2318 | argparse: 2.0.1 2319 | dev: true 2320 | 2321 | /json-schema-traverse/0.4.1: 2322 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2323 | dev: true 2324 | 2325 | /json-stable-stringify-without-jsonify/1.0.1: 2326 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2327 | dev: true 2328 | 2329 | /json5/1.0.2: 2330 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2331 | hasBin: true 2332 | dependencies: 2333 | minimist: 1.2.8 2334 | dev: true 2335 | 2336 | /jsonc-parser/3.2.0: 2337 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 2338 | dev: true 2339 | 2340 | /jsx-ast-utils/3.3.3: 2341 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} 2342 | engines: {node: '>=4.0'} 2343 | dependencies: 2344 | array-includes: 3.1.6 2345 | object.assign: 4.1.4 2346 | dev: true 2347 | 2348 | /kleur/4.1.5: 2349 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2350 | engines: {node: '>=6'} 2351 | dev: false 2352 | 2353 | /ky/0.33.2: 2354 | resolution: {integrity: sha512-f6oS2rKUcPu5FzdqCDbFpmzis/JlqFZw8uIHm/jf8Kc3vtnW+VDhuashOAKyBZv8bFiZFZUMNxTC0JtahEvujA==} 2355 | engines: {node: '>=14.16'} 2356 | dev: false 2357 | 2358 | /language-subtag-registry/0.3.22: 2359 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 2360 | dev: true 2361 | 2362 | /language-tags/1.0.5: 2363 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} 2364 | dependencies: 2365 | language-subtag-registry: 0.3.22 2366 | dev: true 2367 | 2368 | /levn/0.4.1: 2369 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2370 | engines: {node: '>= 0.8.0'} 2371 | dependencies: 2372 | prelude-ls: 1.2.1 2373 | type-check: 0.4.0 2374 | dev: true 2375 | 2376 | /lilconfig/2.0.6: 2377 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 2378 | engines: {node: '>=10'} 2379 | dev: true 2380 | 2381 | /lines-and-columns/1.2.4: 2382 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2383 | dev: true 2384 | 2385 | /load-tsconfig/0.2.3: 2386 | resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} 2387 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2388 | dev: true 2389 | 2390 | /local-pkg/0.4.3: 2391 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 2392 | engines: {node: '>=14'} 2393 | dev: true 2394 | 2395 | /locate-path/6.0.0: 2396 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2397 | engines: {node: '>=10'} 2398 | dependencies: 2399 | p-locate: 5.0.0 2400 | dev: true 2401 | 2402 | /lodash.merge/4.6.2: 2403 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2404 | dev: true 2405 | 2406 | /lodash.sortby/4.7.0: 2407 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2408 | dev: true 2409 | 2410 | /longest-streak/3.1.0: 2411 | resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 2412 | dev: false 2413 | 2414 | /loose-envify/1.4.0: 2415 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2416 | hasBin: true 2417 | dependencies: 2418 | js-tokens: 4.0.0 2419 | dev: true 2420 | 2421 | /loupe/2.3.6: 2422 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2423 | dependencies: 2424 | get-func-name: 2.0.0 2425 | dev: true 2426 | 2427 | /lru-cache/6.0.0: 2428 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2429 | engines: {node: '>=10'} 2430 | dependencies: 2431 | yallist: 4.0.0 2432 | dev: true 2433 | 2434 | /markdown-table/3.0.3: 2435 | resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} 2436 | dev: false 2437 | 2438 | /mdast-util-find-and-replace/2.2.2: 2439 | resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} 2440 | dependencies: 2441 | '@types/mdast': 3.0.10 2442 | escape-string-regexp: 5.0.0 2443 | unist-util-is: 5.2.0 2444 | unist-util-visit-parents: 5.1.3 2445 | dev: false 2446 | 2447 | /mdast-util-from-markdown/1.3.0: 2448 | resolution: {integrity: sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==} 2449 | dependencies: 2450 | '@types/mdast': 3.0.10 2451 | '@types/unist': 2.0.6 2452 | decode-named-character-reference: 1.0.2 2453 | mdast-util-to-string: 3.1.1 2454 | micromark: 3.1.0 2455 | micromark-util-decode-numeric-character-reference: 1.0.0 2456 | micromark-util-decode-string: 1.0.2 2457 | micromark-util-normalize-identifier: 1.0.0 2458 | micromark-util-symbol: 1.0.1 2459 | micromark-util-types: 1.0.2 2460 | unist-util-stringify-position: 3.0.3 2461 | uvu: 0.5.6 2462 | transitivePeerDependencies: 2463 | - supports-color 2464 | dev: false 2465 | 2466 | /mdast-util-frontmatter/1.0.1: 2467 | resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} 2468 | dependencies: 2469 | '@types/mdast': 3.0.10 2470 | mdast-util-to-markdown: 1.5.0 2471 | micromark-extension-frontmatter: 1.0.0 2472 | dev: false 2473 | 2474 | /mdast-util-gfm-autolink-literal/1.0.3: 2475 | resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} 2476 | dependencies: 2477 | '@types/mdast': 3.0.10 2478 | ccount: 2.0.1 2479 | mdast-util-find-and-replace: 2.2.2 2480 | micromark-util-character: 1.1.0 2481 | dev: false 2482 | 2483 | /mdast-util-gfm-footnote/1.0.2: 2484 | resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} 2485 | dependencies: 2486 | '@types/mdast': 3.0.10 2487 | mdast-util-to-markdown: 1.5.0 2488 | micromark-util-normalize-identifier: 1.0.0 2489 | dev: false 2490 | 2491 | /mdast-util-gfm-strikethrough/1.0.3: 2492 | resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} 2493 | dependencies: 2494 | '@types/mdast': 3.0.10 2495 | mdast-util-to-markdown: 1.5.0 2496 | dev: false 2497 | 2498 | /mdast-util-gfm-table/1.0.7: 2499 | resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} 2500 | dependencies: 2501 | '@types/mdast': 3.0.10 2502 | markdown-table: 3.0.3 2503 | mdast-util-from-markdown: 1.3.0 2504 | mdast-util-to-markdown: 1.5.0 2505 | transitivePeerDependencies: 2506 | - supports-color 2507 | dev: false 2508 | 2509 | /mdast-util-gfm-task-list-item/1.0.2: 2510 | resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} 2511 | dependencies: 2512 | '@types/mdast': 3.0.10 2513 | mdast-util-to-markdown: 1.5.0 2514 | dev: false 2515 | 2516 | /mdast-util-gfm/2.0.2: 2517 | resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} 2518 | dependencies: 2519 | mdast-util-from-markdown: 1.3.0 2520 | mdast-util-gfm-autolink-literal: 1.0.3 2521 | mdast-util-gfm-footnote: 1.0.2 2522 | mdast-util-gfm-strikethrough: 1.0.3 2523 | mdast-util-gfm-table: 1.0.7 2524 | mdast-util-gfm-task-list-item: 1.0.2 2525 | mdast-util-to-markdown: 1.5.0 2526 | transitivePeerDependencies: 2527 | - supports-color 2528 | dev: false 2529 | 2530 | /mdast-util-mdx-expression/1.3.2: 2531 | resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} 2532 | dependencies: 2533 | '@types/estree-jsx': 1.0.0 2534 | '@types/hast': 2.3.4 2535 | '@types/mdast': 3.0.10 2536 | mdast-util-from-markdown: 1.3.0 2537 | mdast-util-to-markdown: 1.5.0 2538 | transitivePeerDependencies: 2539 | - supports-color 2540 | dev: false 2541 | 2542 | /mdast-util-mdx-jsx/2.1.2: 2543 | resolution: {integrity: sha512-o9vBCYQK5ZLGEj3tCGISJGjvafyHRVJlZmfJzSE7xjiogSzIeph/Z4zMY65q4WGRMezQBeAwPlrdymDYYYx0tA==} 2544 | dependencies: 2545 | '@types/estree-jsx': 1.0.0 2546 | '@types/hast': 2.3.4 2547 | '@types/mdast': 3.0.10 2548 | '@types/unist': 2.0.6 2549 | ccount: 2.0.1 2550 | mdast-util-from-markdown: 1.3.0 2551 | mdast-util-to-markdown: 1.5.0 2552 | parse-entities: 4.0.1 2553 | stringify-entities: 4.0.3 2554 | unist-util-remove-position: 4.0.2 2555 | unist-util-stringify-position: 3.0.3 2556 | vfile-message: 3.1.4 2557 | transitivePeerDependencies: 2558 | - supports-color 2559 | dev: false 2560 | 2561 | /mdast-util-mdx/2.0.1: 2562 | resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} 2563 | dependencies: 2564 | mdast-util-from-markdown: 1.3.0 2565 | mdast-util-mdx-expression: 1.3.2 2566 | mdast-util-mdx-jsx: 2.1.2 2567 | mdast-util-mdxjs-esm: 1.3.1 2568 | mdast-util-to-markdown: 1.5.0 2569 | transitivePeerDependencies: 2570 | - supports-color 2571 | dev: false 2572 | 2573 | /mdast-util-mdxjs-esm/1.3.1: 2574 | resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} 2575 | dependencies: 2576 | '@types/estree-jsx': 1.0.0 2577 | '@types/hast': 2.3.4 2578 | '@types/mdast': 3.0.10 2579 | mdast-util-from-markdown: 1.3.0 2580 | mdast-util-to-markdown: 1.5.0 2581 | transitivePeerDependencies: 2582 | - supports-color 2583 | dev: false 2584 | 2585 | /mdast-util-phrasing/3.0.1: 2586 | resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} 2587 | dependencies: 2588 | '@types/mdast': 3.0.10 2589 | unist-util-is: 5.2.0 2590 | dev: false 2591 | 2592 | /mdast-util-to-markdown/1.5.0: 2593 | resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} 2594 | dependencies: 2595 | '@types/mdast': 3.0.10 2596 | '@types/unist': 2.0.6 2597 | longest-streak: 3.1.0 2598 | mdast-util-phrasing: 3.0.1 2599 | mdast-util-to-string: 3.1.1 2600 | micromark-util-decode-string: 1.0.2 2601 | unist-util-visit: 4.1.2 2602 | zwitch: 2.0.4 2603 | dev: false 2604 | 2605 | /mdast-util-to-string/3.1.1: 2606 | resolution: {integrity: sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==} 2607 | dependencies: 2608 | '@types/mdast': 3.0.10 2609 | dev: false 2610 | 2611 | /merge-stream/2.0.0: 2612 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2613 | dev: true 2614 | 2615 | /merge2/1.4.1: 2616 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2617 | engines: {node: '>= 8'} 2618 | dev: true 2619 | 2620 | /micromark-core-commonmark/1.0.6: 2621 | resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} 2622 | dependencies: 2623 | decode-named-character-reference: 1.0.2 2624 | micromark-factory-destination: 1.0.0 2625 | micromark-factory-label: 1.0.2 2626 | micromark-factory-space: 1.0.0 2627 | micromark-factory-title: 1.0.2 2628 | micromark-factory-whitespace: 1.0.0 2629 | micromark-util-character: 1.1.0 2630 | micromark-util-chunked: 1.0.0 2631 | micromark-util-classify-character: 1.0.0 2632 | micromark-util-html-tag-name: 1.1.0 2633 | micromark-util-normalize-identifier: 1.0.0 2634 | micromark-util-resolve-all: 1.0.0 2635 | micromark-util-subtokenize: 1.0.2 2636 | micromark-util-symbol: 1.0.1 2637 | micromark-util-types: 1.0.2 2638 | uvu: 0.5.6 2639 | dev: false 2640 | 2641 | /micromark-extension-frontmatter/1.0.0: 2642 | resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} 2643 | dependencies: 2644 | fault: 2.0.1 2645 | micromark-util-character: 1.1.0 2646 | micromark-util-symbol: 1.0.1 2647 | dev: false 2648 | 2649 | /micromark-extension-gfm-autolink-literal/1.0.3: 2650 | resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} 2651 | dependencies: 2652 | micromark-util-character: 1.1.0 2653 | micromark-util-sanitize-uri: 1.1.0 2654 | micromark-util-symbol: 1.0.1 2655 | micromark-util-types: 1.0.2 2656 | uvu: 0.5.6 2657 | dev: false 2658 | 2659 | /micromark-extension-gfm-footnote/1.0.4: 2660 | resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} 2661 | dependencies: 2662 | micromark-core-commonmark: 1.0.6 2663 | micromark-factory-space: 1.0.0 2664 | micromark-util-character: 1.1.0 2665 | micromark-util-normalize-identifier: 1.0.0 2666 | micromark-util-sanitize-uri: 1.1.0 2667 | micromark-util-symbol: 1.0.1 2668 | micromark-util-types: 1.0.2 2669 | uvu: 0.5.6 2670 | dev: false 2671 | 2672 | /micromark-extension-gfm-strikethrough/1.0.4: 2673 | resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==} 2674 | dependencies: 2675 | micromark-util-chunked: 1.0.0 2676 | micromark-util-classify-character: 1.0.0 2677 | micromark-util-resolve-all: 1.0.0 2678 | micromark-util-symbol: 1.0.1 2679 | micromark-util-types: 1.0.2 2680 | uvu: 0.5.6 2681 | dev: false 2682 | 2683 | /micromark-extension-gfm-table/1.0.5: 2684 | resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} 2685 | dependencies: 2686 | micromark-factory-space: 1.0.0 2687 | micromark-util-character: 1.1.0 2688 | micromark-util-symbol: 1.0.1 2689 | micromark-util-types: 1.0.2 2690 | uvu: 0.5.6 2691 | dev: false 2692 | 2693 | /micromark-extension-gfm-tagfilter/1.0.1: 2694 | resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} 2695 | dependencies: 2696 | micromark-util-types: 1.0.2 2697 | dev: false 2698 | 2699 | /micromark-extension-gfm-task-list-item/1.0.3: 2700 | resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} 2701 | dependencies: 2702 | micromark-factory-space: 1.0.0 2703 | micromark-util-character: 1.1.0 2704 | micromark-util-symbol: 1.0.1 2705 | micromark-util-types: 1.0.2 2706 | uvu: 0.5.6 2707 | dev: false 2708 | 2709 | /micromark-extension-gfm/2.0.1: 2710 | resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} 2711 | dependencies: 2712 | micromark-extension-gfm-autolink-literal: 1.0.3 2713 | micromark-extension-gfm-footnote: 1.0.4 2714 | micromark-extension-gfm-strikethrough: 1.0.4 2715 | micromark-extension-gfm-table: 1.0.5 2716 | micromark-extension-gfm-tagfilter: 1.0.1 2717 | micromark-extension-gfm-task-list-item: 1.0.3 2718 | micromark-util-combine-extensions: 1.0.0 2719 | micromark-util-types: 1.0.2 2720 | dev: false 2721 | 2722 | /micromark-extension-mdx-expression/1.0.4: 2723 | resolution: {integrity: sha512-TCgLxqW6ReQ3AJgtj1P0P+8ZThBTloLbeb7jNaqr6mCOLDpxUiBFE/9STgooMZttEwOQu5iEcCCa3ZSDhY9FGw==} 2724 | dependencies: 2725 | micromark-factory-mdx-expression: 1.0.7 2726 | micromark-factory-space: 1.0.0 2727 | micromark-util-character: 1.1.0 2728 | micromark-util-events-to-acorn: 1.2.1 2729 | micromark-util-symbol: 1.0.1 2730 | micromark-util-types: 1.0.2 2731 | uvu: 0.5.6 2732 | dev: false 2733 | 2734 | /micromark-extension-mdx-jsx/1.0.3: 2735 | resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} 2736 | dependencies: 2737 | '@types/acorn': 4.0.6 2738 | estree-util-is-identifier-name: 2.1.0 2739 | micromark-factory-mdx-expression: 1.0.7 2740 | micromark-factory-space: 1.0.0 2741 | micromark-util-character: 1.1.0 2742 | micromark-util-symbol: 1.0.1 2743 | micromark-util-types: 1.0.2 2744 | uvu: 0.5.6 2745 | vfile-message: 3.1.4 2746 | dev: false 2747 | 2748 | /micromark-extension-mdx-md/1.0.0: 2749 | resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} 2750 | dependencies: 2751 | micromark-util-types: 1.0.2 2752 | dev: false 2753 | 2754 | /micromark-extension-mdxjs-esm/1.0.3: 2755 | resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} 2756 | dependencies: 2757 | micromark-core-commonmark: 1.0.6 2758 | micromark-util-character: 1.1.0 2759 | micromark-util-events-to-acorn: 1.2.1 2760 | micromark-util-symbol: 1.0.1 2761 | micromark-util-types: 1.0.2 2762 | unist-util-position-from-estree: 1.1.2 2763 | uvu: 0.5.6 2764 | vfile-message: 3.1.4 2765 | dev: false 2766 | 2767 | /micromark-extension-mdxjs/1.0.0: 2768 | resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} 2769 | dependencies: 2770 | acorn: 8.8.2 2771 | acorn-jsx: 5.3.2_acorn@8.8.2 2772 | micromark-extension-mdx-expression: 1.0.4 2773 | micromark-extension-mdx-jsx: 1.0.3 2774 | micromark-extension-mdx-md: 1.0.0 2775 | micromark-extension-mdxjs-esm: 1.0.3 2776 | micromark-util-combine-extensions: 1.0.0 2777 | micromark-util-types: 1.0.2 2778 | dev: false 2779 | 2780 | /micromark-factory-destination/1.0.0: 2781 | resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} 2782 | dependencies: 2783 | micromark-util-character: 1.1.0 2784 | micromark-util-symbol: 1.0.1 2785 | micromark-util-types: 1.0.2 2786 | dev: false 2787 | 2788 | /micromark-factory-label/1.0.2: 2789 | resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} 2790 | dependencies: 2791 | micromark-util-character: 1.1.0 2792 | micromark-util-symbol: 1.0.1 2793 | micromark-util-types: 1.0.2 2794 | uvu: 0.5.6 2795 | dev: false 2796 | 2797 | /micromark-factory-mdx-expression/1.0.7: 2798 | resolution: {integrity: sha512-QAdFbkQagTZ/eKb8zDGqmjvgevgJH3+aQpvvKrXWxNJp3o8/l2cAbbrBd0E04r0Gx6nssPpqWIjnbHFvZu5qsQ==} 2799 | dependencies: 2800 | micromark-factory-space: 1.0.0 2801 | micromark-util-character: 1.1.0 2802 | micromark-util-events-to-acorn: 1.2.1 2803 | micromark-util-symbol: 1.0.1 2804 | micromark-util-types: 1.0.2 2805 | unist-util-position-from-estree: 1.1.2 2806 | uvu: 0.5.6 2807 | vfile-message: 3.1.4 2808 | dev: false 2809 | 2810 | /micromark-factory-space/1.0.0: 2811 | resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} 2812 | dependencies: 2813 | micromark-util-character: 1.1.0 2814 | micromark-util-types: 1.0.2 2815 | dev: false 2816 | 2817 | /micromark-factory-title/1.0.2: 2818 | resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} 2819 | dependencies: 2820 | micromark-factory-space: 1.0.0 2821 | micromark-util-character: 1.1.0 2822 | micromark-util-symbol: 1.0.1 2823 | micromark-util-types: 1.0.2 2824 | uvu: 0.5.6 2825 | dev: false 2826 | 2827 | /micromark-factory-whitespace/1.0.0: 2828 | resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} 2829 | dependencies: 2830 | micromark-factory-space: 1.0.0 2831 | micromark-util-character: 1.1.0 2832 | micromark-util-symbol: 1.0.1 2833 | micromark-util-types: 1.0.2 2834 | dev: false 2835 | 2836 | /micromark-util-character/1.1.0: 2837 | resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} 2838 | dependencies: 2839 | micromark-util-symbol: 1.0.1 2840 | micromark-util-types: 1.0.2 2841 | dev: false 2842 | 2843 | /micromark-util-chunked/1.0.0: 2844 | resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} 2845 | dependencies: 2846 | micromark-util-symbol: 1.0.1 2847 | dev: false 2848 | 2849 | /micromark-util-classify-character/1.0.0: 2850 | resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} 2851 | dependencies: 2852 | micromark-util-character: 1.1.0 2853 | micromark-util-symbol: 1.0.1 2854 | micromark-util-types: 1.0.2 2855 | dev: false 2856 | 2857 | /micromark-util-combine-extensions/1.0.0: 2858 | resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} 2859 | dependencies: 2860 | micromark-util-chunked: 1.0.0 2861 | micromark-util-types: 1.0.2 2862 | dev: false 2863 | 2864 | /micromark-util-decode-numeric-character-reference/1.0.0: 2865 | resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} 2866 | dependencies: 2867 | micromark-util-symbol: 1.0.1 2868 | dev: false 2869 | 2870 | /micromark-util-decode-string/1.0.2: 2871 | resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} 2872 | dependencies: 2873 | decode-named-character-reference: 1.0.2 2874 | micromark-util-character: 1.1.0 2875 | micromark-util-decode-numeric-character-reference: 1.0.0 2876 | micromark-util-symbol: 1.0.1 2877 | dev: false 2878 | 2879 | /micromark-util-encode/1.0.1: 2880 | resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} 2881 | dev: false 2882 | 2883 | /micromark-util-events-to-acorn/1.2.1: 2884 | resolution: {integrity: sha512-mkg3BaWlw6ZTkQORrKVBW4o9ICXPxLtGz51vml5mQpKFdo9vqIX68CAx5JhTOdjQyAHH7JFmm4rh8toSPQZUmg==} 2885 | dependencies: 2886 | '@types/acorn': 4.0.6 2887 | '@types/estree': 1.0.0 2888 | estree-util-visit: 1.2.1 2889 | micromark-util-types: 1.0.2 2890 | uvu: 0.5.6 2891 | vfile-location: 4.1.0 2892 | vfile-message: 3.1.4 2893 | dev: false 2894 | 2895 | /micromark-util-html-tag-name/1.1.0: 2896 | resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} 2897 | dev: false 2898 | 2899 | /micromark-util-normalize-identifier/1.0.0: 2900 | resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} 2901 | dependencies: 2902 | micromark-util-symbol: 1.0.1 2903 | dev: false 2904 | 2905 | /micromark-util-resolve-all/1.0.0: 2906 | resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} 2907 | dependencies: 2908 | micromark-util-types: 1.0.2 2909 | dev: false 2910 | 2911 | /micromark-util-sanitize-uri/1.1.0: 2912 | resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==} 2913 | dependencies: 2914 | micromark-util-character: 1.1.0 2915 | micromark-util-encode: 1.0.1 2916 | micromark-util-symbol: 1.0.1 2917 | dev: false 2918 | 2919 | /micromark-util-subtokenize/1.0.2: 2920 | resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} 2921 | dependencies: 2922 | micromark-util-chunked: 1.0.0 2923 | micromark-util-symbol: 1.0.1 2924 | micromark-util-types: 1.0.2 2925 | uvu: 0.5.6 2926 | dev: false 2927 | 2928 | /micromark-util-symbol/1.0.1: 2929 | resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} 2930 | dev: false 2931 | 2932 | /micromark-util-types/1.0.2: 2933 | resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} 2934 | dev: false 2935 | 2936 | /micromark/3.1.0: 2937 | resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} 2938 | dependencies: 2939 | '@types/debug': 4.1.7 2940 | debug: 4.3.4 2941 | decode-named-character-reference: 1.0.2 2942 | micromark-core-commonmark: 1.0.6 2943 | micromark-factory-space: 1.0.0 2944 | micromark-util-character: 1.1.0 2945 | micromark-util-chunked: 1.0.0 2946 | micromark-util-combine-extensions: 1.0.0 2947 | micromark-util-decode-numeric-character-reference: 1.0.0 2948 | micromark-util-encode: 1.0.1 2949 | micromark-util-normalize-identifier: 1.0.0 2950 | micromark-util-resolve-all: 1.0.0 2951 | micromark-util-sanitize-uri: 1.1.0 2952 | micromark-util-subtokenize: 1.0.2 2953 | micromark-util-symbol: 1.0.1 2954 | micromark-util-types: 1.0.2 2955 | uvu: 0.5.6 2956 | transitivePeerDependencies: 2957 | - supports-color 2958 | dev: false 2959 | 2960 | /micromatch/4.0.5: 2961 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2962 | engines: {node: '>=8.6'} 2963 | dependencies: 2964 | braces: 3.0.2 2965 | picomatch: 2.3.1 2966 | dev: true 2967 | 2968 | /mime-db/1.52.0: 2969 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2970 | engines: {node: '>= 0.6'} 2971 | dev: false 2972 | 2973 | /mime-types/2.1.35: 2974 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2975 | engines: {node: '>= 0.6'} 2976 | dependencies: 2977 | mime-db: 1.52.0 2978 | dev: false 2979 | 2980 | /mimic-fn/2.1.0: 2981 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2982 | engines: {node: '>=6'} 2983 | dev: true 2984 | 2985 | /minimatch/3.1.2: 2986 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2987 | dependencies: 2988 | brace-expansion: 1.1.11 2989 | dev: true 2990 | 2991 | /minimist/1.2.8: 2992 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2993 | dev: true 2994 | 2995 | /mlly/1.1.0: 2996 | resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} 2997 | dependencies: 2998 | acorn: 8.8.2 2999 | pathe: 1.1.0 3000 | pkg-types: 1.0.1 3001 | ufo: 1.0.1 3002 | dev: true 3003 | 3004 | /mri/1.2.0: 3005 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 3006 | engines: {node: '>=4'} 3007 | dev: false 3008 | 3009 | /ms/2.1.2: 3010 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 3011 | 3012 | /mz/2.7.0: 3013 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 3014 | dependencies: 3015 | any-promise: 1.3.0 3016 | object-assign: 4.1.1 3017 | thenify-all: 1.6.0 3018 | dev: true 3019 | 3020 | /nanoid/3.3.4: 3021 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 3022 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 3023 | hasBin: true 3024 | dev: true 3025 | 3026 | /natural-compare-lite/1.4.0: 3027 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 3028 | dev: true 3029 | 3030 | /natural-compare/1.4.0: 3031 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 3032 | dev: true 3033 | 3034 | /nlcst-to-string/3.1.1: 3035 | resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} 3036 | dependencies: 3037 | '@types/nlcst': 1.0.0 3038 | dev: false 3039 | 3040 | /normalize-path/3.0.0: 3041 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 3042 | engines: {node: '>=0.10.0'} 3043 | dev: true 3044 | 3045 | /npm-run-path/4.0.1: 3046 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 3047 | engines: {node: '>=8'} 3048 | dependencies: 3049 | path-key: 3.1.1 3050 | dev: true 3051 | 3052 | /object-assign/4.1.1: 3053 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 3054 | engines: {node: '>=0.10.0'} 3055 | dev: true 3056 | 3057 | /object-inspect/1.12.3: 3058 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 3059 | dev: true 3060 | 3061 | /object-is/1.1.5: 3062 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 3063 | engines: {node: '>= 0.4'} 3064 | dependencies: 3065 | call-bind: 1.0.2 3066 | define-properties: 1.2.0 3067 | dev: true 3068 | 3069 | /object-keys/1.1.1: 3070 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 3071 | engines: {node: '>= 0.4'} 3072 | dev: true 3073 | 3074 | /object.assign/4.1.4: 3075 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 3076 | engines: {node: '>= 0.4'} 3077 | dependencies: 3078 | call-bind: 1.0.2 3079 | define-properties: 1.2.0 3080 | has-symbols: 1.0.3 3081 | object-keys: 1.1.1 3082 | dev: true 3083 | 3084 | /object.entries/1.1.6: 3085 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} 3086 | engines: {node: '>= 0.4'} 3087 | dependencies: 3088 | call-bind: 1.0.2 3089 | define-properties: 1.2.0 3090 | es-abstract: 1.21.1 3091 | dev: true 3092 | 3093 | /object.fromentries/2.0.6: 3094 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} 3095 | engines: {node: '>= 0.4'} 3096 | dependencies: 3097 | call-bind: 1.0.2 3098 | define-properties: 1.2.0 3099 | es-abstract: 1.21.1 3100 | dev: true 3101 | 3102 | /object.hasown/1.1.2: 3103 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} 3104 | dependencies: 3105 | define-properties: 1.2.0 3106 | es-abstract: 1.21.1 3107 | dev: true 3108 | 3109 | /object.values/1.1.6: 3110 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} 3111 | engines: {node: '>= 0.4'} 3112 | dependencies: 3113 | call-bind: 1.0.2 3114 | define-properties: 1.2.0 3115 | es-abstract: 1.21.1 3116 | dev: true 3117 | 3118 | /once/1.4.0: 3119 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 3120 | dependencies: 3121 | wrappy: 1.0.2 3122 | dev: true 3123 | 3124 | /onetime/5.1.2: 3125 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 3126 | engines: {node: '>=6'} 3127 | dependencies: 3128 | mimic-fn: 2.1.0 3129 | dev: true 3130 | 3131 | /open/8.4.1: 3132 | resolution: {integrity: sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==} 3133 | engines: {node: '>=12'} 3134 | dependencies: 3135 | define-lazy-prop: 2.0.0 3136 | is-docker: 2.2.1 3137 | is-wsl: 2.2.0 3138 | dev: true 3139 | 3140 | /openai/3.1.0: 3141 | resolution: {integrity: sha512-v5kKFH5o+8ld+t0arudj833Mgm3GcgBnbyN9946bj6u7bvel4Yg6YFz2A4HLIYDzmMjIo0s6vSG9x73kOwvdCg==} 3142 | dependencies: 3143 | axios: 0.26.1 3144 | form-data: 4.0.0 3145 | transitivePeerDependencies: 3146 | - debug 3147 | dev: false 3148 | 3149 | /optionator/0.9.1: 3150 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 3151 | engines: {node: '>= 0.8.0'} 3152 | dependencies: 3153 | deep-is: 0.1.4 3154 | fast-levenshtein: 2.0.6 3155 | levn: 0.4.1 3156 | prelude-ls: 1.2.1 3157 | type-check: 0.4.0 3158 | word-wrap: 1.2.3 3159 | dev: true 3160 | 3161 | /p-limit/3.1.0: 3162 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 3163 | engines: {node: '>=10'} 3164 | dependencies: 3165 | yocto-queue: 0.1.0 3166 | dev: true 3167 | 3168 | /p-limit/4.0.0: 3169 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 3170 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3171 | dependencies: 3172 | yocto-queue: 1.0.0 3173 | dev: true 3174 | 3175 | /p-locate/5.0.0: 3176 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 3177 | engines: {node: '>=10'} 3178 | dependencies: 3179 | p-limit: 3.1.0 3180 | dev: true 3181 | 3182 | /parent-module/1.0.1: 3183 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3184 | engines: {node: '>=6'} 3185 | dependencies: 3186 | callsites: 3.1.0 3187 | dev: true 3188 | 3189 | /parse-entities/4.0.1: 3190 | resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} 3191 | dependencies: 3192 | '@types/unist': 2.0.6 3193 | character-entities: 2.0.2 3194 | character-entities-legacy: 3.0.0 3195 | character-reference-invalid: 2.0.1 3196 | decode-named-character-reference: 1.0.2 3197 | is-alphanumerical: 2.0.1 3198 | is-decimal: 2.0.1 3199 | is-hexadecimal: 2.0.1 3200 | dev: false 3201 | 3202 | /parse-latin/5.0.1: 3203 | resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} 3204 | dependencies: 3205 | nlcst-to-string: 3.1.1 3206 | unist-util-modify-children: 3.1.1 3207 | unist-util-visit-children: 2.0.2 3208 | dev: false 3209 | 3210 | /path-exists/4.0.0: 3211 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 3212 | engines: {node: '>=8'} 3213 | dev: true 3214 | 3215 | /path-is-absolute/1.0.1: 3216 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 3217 | engines: {node: '>=0.10.0'} 3218 | dev: true 3219 | 3220 | /path-key/3.1.1: 3221 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3222 | engines: {node: '>=8'} 3223 | dev: true 3224 | 3225 | /path-parse/1.0.7: 3226 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3227 | dev: true 3228 | 3229 | /path-type/4.0.0: 3230 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3231 | engines: {node: '>=8'} 3232 | dev: true 3233 | 3234 | /pathe/1.1.0: 3235 | resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} 3236 | dev: true 3237 | 3238 | /pathval/1.1.1: 3239 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 3240 | dev: true 3241 | 3242 | /picocolors/1.0.0: 3243 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 3244 | 3245 | /picomatch/2.3.1: 3246 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3247 | engines: {node: '>=8.6'} 3248 | dev: true 3249 | 3250 | /pinecone-client/1.0.1: 3251 | resolution: {integrity: sha512-Cgv9vtW8yU7DQwK57CsBgBFNliItkBKBvCq7HRt0I84Apa0MJg/WgE5LEe7SmGVKMVrbHX7GqrZH3IKE0UvrGA==} 3252 | dependencies: 3253 | ky: 0.33.2 3254 | dev: false 3255 | 3256 | /pirates/4.0.5: 3257 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 3258 | engines: {node: '>= 6'} 3259 | dev: true 3260 | 3261 | /pkg-types/1.0.1: 3262 | resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} 3263 | dependencies: 3264 | jsonc-parser: 3.2.0 3265 | mlly: 1.1.0 3266 | pathe: 1.1.0 3267 | dev: true 3268 | 3269 | /postcss-load-config/3.1.4: 3270 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 3271 | engines: {node: '>= 10'} 3272 | peerDependencies: 3273 | postcss: '>=8.0.9' 3274 | ts-node: '>=9.0.0' 3275 | peerDependenciesMeta: 3276 | postcss: 3277 | optional: true 3278 | ts-node: 3279 | optional: true 3280 | dependencies: 3281 | lilconfig: 2.0.6 3282 | yaml: 1.10.2 3283 | dev: true 3284 | 3285 | /postcss/8.4.21: 3286 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 3287 | engines: {node: ^10 || ^12 || >=14} 3288 | dependencies: 3289 | nanoid: 3.3.4 3290 | picocolors: 1.0.0 3291 | source-map-js: 1.0.2 3292 | dev: true 3293 | 3294 | /prelude-ls/1.2.1: 3295 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3296 | engines: {node: '>= 0.8.0'} 3297 | dev: true 3298 | 3299 | /prettier/2.8.4: 3300 | resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} 3301 | engines: {node: '>=10.13.0'} 3302 | hasBin: true 3303 | dev: true 3304 | 3305 | /pretty-format/27.5.1: 3306 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 3307 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 3308 | dependencies: 3309 | ansi-regex: 5.0.1 3310 | ansi-styles: 5.2.0 3311 | react-is: 17.0.2 3312 | dev: true 3313 | 3314 | /prop-types/15.8.1: 3315 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 3316 | dependencies: 3317 | loose-envify: 1.4.0 3318 | object-assign: 4.1.1 3319 | react-is: 16.13.1 3320 | dev: true 3321 | 3322 | /punycode/2.3.0: 3323 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 3324 | engines: {node: '>=6'} 3325 | dev: true 3326 | 3327 | /queue-microtask/1.2.3: 3328 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3329 | dev: true 3330 | 3331 | /react-is/16.13.1: 3332 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 3333 | dev: true 3334 | 3335 | /react-is/17.0.2: 3336 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 3337 | dev: true 3338 | 3339 | /readdirp/3.6.0: 3340 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3341 | engines: {node: '>=8.10.0'} 3342 | dependencies: 3343 | picomatch: 2.3.1 3344 | dev: true 3345 | 3346 | /regenerator-runtime/0.13.11: 3347 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 3348 | dev: true 3349 | 3350 | /regexp.prototype.flags/1.4.3: 3351 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 3352 | engines: {node: '>= 0.4'} 3353 | dependencies: 3354 | call-bind: 1.0.2 3355 | define-properties: 1.2.0 3356 | functions-have-names: 1.2.3 3357 | dev: true 3358 | 3359 | /regexpp/3.2.0: 3360 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 3361 | engines: {node: '>=8'} 3362 | dev: true 3363 | 3364 | /remark-frontmatter/4.0.1: 3365 | resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} 3366 | dependencies: 3367 | '@types/mdast': 3.0.10 3368 | mdast-util-frontmatter: 1.0.1 3369 | micromark-extension-frontmatter: 1.0.0 3370 | unified: 10.1.2 3371 | dev: false 3372 | 3373 | /remark-gfm/3.0.1: 3374 | resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} 3375 | dependencies: 3376 | '@types/mdast': 3.0.10 3377 | mdast-util-gfm: 2.0.2 3378 | micromark-extension-gfm: 2.0.1 3379 | unified: 10.1.2 3380 | transitivePeerDependencies: 3381 | - supports-color 3382 | dev: false 3383 | 3384 | /remark-mdx/2.3.0: 3385 | resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} 3386 | dependencies: 3387 | mdast-util-mdx: 2.0.1 3388 | micromark-extension-mdxjs: 1.0.0 3389 | transitivePeerDependencies: 3390 | - supports-color 3391 | dev: false 3392 | 3393 | /remark-parse/10.0.1: 3394 | resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} 3395 | dependencies: 3396 | '@types/mdast': 3.0.10 3397 | mdast-util-from-markdown: 1.3.0 3398 | unified: 10.1.2 3399 | transitivePeerDependencies: 3400 | - supports-color 3401 | dev: false 3402 | 3403 | /remark-smartypants/2.0.0: 3404 | resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} 3405 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3406 | dependencies: 3407 | retext: 8.1.0 3408 | retext-smartypants: 5.2.0 3409 | unist-util-visit: 4.1.2 3410 | dev: false 3411 | 3412 | /remark-stringify/10.0.2: 3413 | resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} 3414 | dependencies: 3415 | '@types/mdast': 3.0.10 3416 | mdast-util-to-markdown: 1.5.0 3417 | unified: 10.1.2 3418 | dev: false 3419 | 3420 | /remark/14.0.2: 3421 | resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==} 3422 | dependencies: 3423 | '@types/mdast': 3.0.10 3424 | remark-parse: 10.0.1 3425 | remark-stringify: 10.0.2 3426 | unified: 10.1.2 3427 | transitivePeerDependencies: 3428 | - supports-color 3429 | dev: false 3430 | 3431 | /resolve-from/4.0.0: 3432 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3433 | engines: {node: '>=4'} 3434 | dev: true 3435 | 3436 | /resolve-from/5.0.0: 3437 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 3438 | engines: {node: '>=8'} 3439 | dev: true 3440 | 3441 | /resolve/1.22.1: 3442 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 3443 | hasBin: true 3444 | dependencies: 3445 | is-core-module: 2.11.0 3446 | path-parse: 1.0.7 3447 | supports-preserve-symlinks-flag: 1.0.0 3448 | dev: true 3449 | 3450 | /resolve/2.0.0-next.4: 3451 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} 3452 | hasBin: true 3453 | dependencies: 3454 | is-core-module: 2.11.0 3455 | path-parse: 1.0.7 3456 | supports-preserve-symlinks-flag: 1.0.0 3457 | dev: true 3458 | 3459 | /retext-latin/3.1.0: 3460 | resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} 3461 | dependencies: 3462 | '@types/nlcst': 1.0.0 3463 | parse-latin: 5.0.1 3464 | unherit: 3.0.1 3465 | unified: 10.1.2 3466 | dev: false 3467 | 3468 | /retext-smartypants/5.2.0: 3469 | resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} 3470 | dependencies: 3471 | '@types/nlcst': 1.0.0 3472 | nlcst-to-string: 3.1.1 3473 | unified: 10.1.2 3474 | unist-util-visit: 4.1.2 3475 | dev: false 3476 | 3477 | /retext-stringify/3.1.0: 3478 | resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} 3479 | dependencies: 3480 | '@types/nlcst': 1.0.0 3481 | nlcst-to-string: 3.1.1 3482 | unified: 10.1.2 3483 | dev: false 3484 | 3485 | /retext/8.1.0: 3486 | resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} 3487 | dependencies: 3488 | '@types/nlcst': 1.0.0 3489 | retext-latin: 3.1.0 3490 | retext-stringify: 3.1.0 3491 | unified: 10.1.2 3492 | dev: false 3493 | 3494 | /reusify/1.0.4: 3495 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3496 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3497 | dev: true 3498 | 3499 | /rimraf/3.0.2: 3500 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3501 | hasBin: true 3502 | dependencies: 3503 | glob: 7.1.7 3504 | dev: true 3505 | 3506 | /rollup/3.15.0: 3507 | resolution: {integrity: sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==} 3508 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 3509 | hasBin: true 3510 | optionalDependencies: 3511 | fsevents: 2.3.2 3512 | dev: true 3513 | 3514 | /run-parallel/1.2.0: 3515 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3516 | dependencies: 3517 | queue-microtask: 1.2.3 3518 | dev: true 3519 | 3520 | /sade/1.8.1: 3521 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 3522 | engines: {node: '>=6'} 3523 | dependencies: 3524 | mri: 1.2.0 3525 | dev: false 3526 | 3527 | /safe-regex-test/1.0.0: 3528 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 3529 | dependencies: 3530 | call-bind: 1.0.2 3531 | get-intrinsic: 1.2.0 3532 | is-regex: 1.1.4 3533 | dev: true 3534 | 3535 | /semver/6.3.0: 3536 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3537 | hasBin: true 3538 | dev: true 3539 | 3540 | /semver/7.3.8: 3541 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 3542 | engines: {node: '>=10'} 3543 | hasBin: true 3544 | dependencies: 3545 | lru-cache: 6.0.0 3546 | dev: true 3547 | 3548 | /shebang-command/2.0.0: 3549 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3550 | engines: {node: '>=8'} 3551 | dependencies: 3552 | shebang-regex: 3.0.0 3553 | dev: true 3554 | 3555 | /shebang-regex/3.0.0: 3556 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3557 | engines: {node: '>=8'} 3558 | dev: true 3559 | 3560 | /side-channel/1.0.4: 3561 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 3562 | dependencies: 3563 | call-bind: 1.0.2 3564 | get-intrinsic: 1.2.0 3565 | object-inspect: 1.12.3 3566 | dev: true 3567 | 3568 | /siginfo/2.0.0: 3569 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3570 | dev: true 3571 | 3572 | /signal-exit/3.0.7: 3573 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3574 | dev: true 3575 | 3576 | /sisteransi/1.0.5: 3577 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3578 | dev: false 3579 | 3580 | /slash/3.0.0: 3581 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3582 | engines: {node: '>=8'} 3583 | dev: true 3584 | 3585 | /slash/4.0.0: 3586 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 3587 | engines: {node: '>=12'} 3588 | dev: true 3589 | 3590 | /slice-ansi/5.0.0: 3591 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3592 | engines: {node: '>=12'} 3593 | dependencies: 3594 | ansi-styles: 6.2.1 3595 | is-fullwidth-code-point: 4.0.0 3596 | dev: true 3597 | 3598 | /source-map-js/1.0.2: 3599 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3600 | engines: {node: '>=0.10.0'} 3601 | dev: true 3602 | 3603 | /source-map-support/0.5.21: 3604 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3605 | dependencies: 3606 | buffer-from: 1.1.2 3607 | source-map: 0.6.1 3608 | dev: true 3609 | 3610 | /source-map/0.6.1: 3611 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3612 | engines: {node: '>=0.10.0'} 3613 | dev: true 3614 | 3615 | /source-map/0.8.0-beta.0: 3616 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 3617 | engines: {node: '>= 8'} 3618 | dependencies: 3619 | whatwg-url: 7.1.0 3620 | dev: true 3621 | 3622 | /stackback/0.0.2: 3623 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3624 | dev: true 3625 | 3626 | /std-env/3.3.2: 3627 | resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} 3628 | dev: true 3629 | 3630 | /stop-iteration-iterator/1.0.0: 3631 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} 3632 | engines: {node: '>= 0.4'} 3633 | dependencies: 3634 | internal-slot: 1.0.5 3635 | dev: true 3636 | 3637 | /string-width/5.1.2: 3638 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3639 | engines: {node: '>=12'} 3640 | dependencies: 3641 | eastasianwidth: 0.2.0 3642 | emoji-regex: 9.2.2 3643 | strip-ansi: 7.0.1 3644 | dev: true 3645 | 3646 | /string.prototype.matchall/4.0.8: 3647 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} 3648 | dependencies: 3649 | call-bind: 1.0.2 3650 | define-properties: 1.2.0 3651 | es-abstract: 1.21.1 3652 | get-intrinsic: 1.2.0 3653 | has-symbols: 1.0.3 3654 | internal-slot: 1.0.5 3655 | regexp.prototype.flags: 1.4.3 3656 | side-channel: 1.0.4 3657 | dev: true 3658 | 3659 | /string.prototype.trimend/1.0.6: 3660 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 3661 | dependencies: 3662 | call-bind: 1.0.2 3663 | define-properties: 1.2.0 3664 | es-abstract: 1.21.1 3665 | dev: true 3666 | 3667 | /string.prototype.trimstart/1.0.6: 3668 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 3669 | dependencies: 3670 | call-bind: 1.0.2 3671 | define-properties: 1.2.0 3672 | es-abstract: 1.21.1 3673 | dev: true 3674 | 3675 | /stringify-entities/4.0.3: 3676 | resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} 3677 | dependencies: 3678 | character-entities-html4: 2.1.0 3679 | character-entities-legacy: 3.0.0 3680 | dev: false 3681 | 3682 | /strip-ansi/6.0.1: 3683 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3684 | engines: {node: '>=8'} 3685 | dependencies: 3686 | ansi-regex: 5.0.1 3687 | dev: true 3688 | 3689 | /strip-ansi/7.0.1: 3690 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 3691 | engines: {node: '>=12'} 3692 | dependencies: 3693 | ansi-regex: 6.0.1 3694 | dev: true 3695 | 3696 | /strip-bom/3.0.0: 3697 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3698 | engines: {node: '>=4'} 3699 | dev: true 3700 | 3701 | /strip-final-newline/2.0.0: 3702 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 3703 | engines: {node: '>=6'} 3704 | dev: true 3705 | 3706 | /strip-json-comments/3.1.1: 3707 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3708 | engines: {node: '>=8'} 3709 | dev: true 3710 | 3711 | /strip-literal/1.0.1: 3712 | resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} 3713 | dependencies: 3714 | acorn: 8.8.2 3715 | dev: true 3716 | 3717 | /sucrase/3.29.0: 3718 | resolution: {integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==} 3719 | engines: {node: '>=8'} 3720 | hasBin: true 3721 | dependencies: 3722 | commander: 4.1.1 3723 | glob: 7.1.6 3724 | lines-and-columns: 1.2.4 3725 | mz: 2.7.0 3726 | pirates: 4.0.5 3727 | ts-interface-checker: 0.1.13 3728 | dev: true 3729 | 3730 | /supports-color/7.2.0: 3731 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3732 | engines: {node: '>=8'} 3733 | dependencies: 3734 | has-flag: 4.0.0 3735 | dev: true 3736 | 3737 | /supports-preserve-symlinks-flag/1.0.0: 3738 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3739 | engines: {node: '>= 0.4'} 3740 | dev: true 3741 | 3742 | /synckit/0.8.5: 3743 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} 3744 | engines: {node: ^14.18.0 || >=16.0.0} 3745 | dependencies: 3746 | '@pkgr/utils': 2.3.1 3747 | tslib: 2.5.0 3748 | dev: true 3749 | 3750 | /tapable/2.2.1: 3751 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 3752 | engines: {node: '>=6'} 3753 | dev: true 3754 | 3755 | /text-table/0.2.0: 3756 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3757 | dev: true 3758 | 3759 | /thenify-all/1.6.0: 3760 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3761 | engines: {node: '>=0.8'} 3762 | dependencies: 3763 | thenify: 3.3.1 3764 | dev: true 3765 | 3766 | /thenify/3.3.1: 3767 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3768 | dependencies: 3769 | any-promise: 1.3.0 3770 | dev: true 3771 | 3772 | /tiny-glob/0.2.9: 3773 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 3774 | dependencies: 3775 | globalyzer: 0.1.0 3776 | globrex: 0.1.2 3777 | 3778 | /tinybench/2.3.1: 3779 | resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} 3780 | dev: true 3781 | 3782 | /tinypool/0.3.1: 3783 | resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} 3784 | engines: {node: '>=14.0.0'} 3785 | dev: true 3786 | 3787 | /tinyspy/1.1.1: 3788 | resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} 3789 | engines: {node: '>=14.0.0'} 3790 | dev: true 3791 | 3792 | /to-regex-range/5.0.1: 3793 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3794 | engines: {node: '>=8.0'} 3795 | dependencies: 3796 | is-number: 7.0.0 3797 | dev: true 3798 | 3799 | /tr46/1.0.1: 3800 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 3801 | dependencies: 3802 | punycode: 2.3.0 3803 | dev: true 3804 | 3805 | /tree-kill/1.2.2: 3806 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3807 | hasBin: true 3808 | dev: true 3809 | 3810 | /trough/2.1.0: 3811 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} 3812 | dev: false 3813 | 3814 | /ts-interface-checker/0.1.13: 3815 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3816 | dev: true 3817 | 3818 | /tsconfig-paths/3.14.1: 3819 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} 3820 | dependencies: 3821 | '@types/json5': 0.0.29 3822 | json5: 1.0.2 3823 | minimist: 1.2.8 3824 | strip-bom: 3.0.0 3825 | dev: true 3826 | 3827 | /tslib/1.14.1: 3828 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3829 | dev: true 3830 | 3831 | /tslib/2.5.0: 3832 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 3833 | dev: true 3834 | 3835 | /tsup/6.6.3_ioffpfjnyzwfwm6i4hqtqqtreq: 3836 | resolution: {integrity: sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==} 3837 | engines: {node: '>=14.18'} 3838 | hasBin: true 3839 | peerDependencies: 3840 | '@swc/core': ^1 3841 | postcss: ^8.4.12 3842 | typescript: ^4.1.0 3843 | peerDependenciesMeta: 3844 | '@swc/core': 3845 | optional: true 3846 | postcss: 3847 | optional: true 3848 | typescript: 3849 | optional: true 3850 | dependencies: 3851 | bundle-require: 4.0.1_esbuild@0.17.8 3852 | cac: 6.7.14 3853 | chokidar: 3.5.3 3854 | debug: 4.3.4 3855 | esbuild: 0.17.8 3856 | execa: 5.1.1 3857 | globby: 11.1.0 3858 | joycon: 3.1.1 3859 | postcss-load-config: 3.1.4 3860 | resolve-from: 5.0.0 3861 | rollup: 3.15.0 3862 | source-map: 0.8.0-beta.0 3863 | sucrase: 3.29.0 3864 | tree-kill: 1.2.2 3865 | typescript: 5.0.0-dev.20230216 3866 | transitivePeerDependencies: 3867 | - supports-color 3868 | - ts-node 3869 | dev: true 3870 | 3871 | /tsutils/3.21.0_ioffpfjnyzwfwm6i4hqtqqtreq: 3872 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 3873 | engines: {node: '>= 6'} 3874 | peerDependencies: 3875 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 3876 | dependencies: 3877 | tslib: 1.14.1 3878 | typescript: 5.0.0-dev.20230216 3879 | dev: true 3880 | 3881 | /type-check/0.4.0: 3882 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3883 | engines: {node: '>= 0.8.0'} 3884 | dependencies: 3885 | prelude-ls: 1.2.1 3886 | dev: true 3887 | 3888 | /type-detect/4.0.8: 3889 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3890 | engines: {node: '>=4'} 3891 | dev: true 3892 | 3893 | /type-fest/0.20.2: 3894 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3895 | engines: {node: '>=10'} 3896 | dev: true 3897 | 3898 | /typed-array-length/1.0.4: 3899 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 3900 | dependencies: 3901 | call-bind: 1.0.2 3902 | for-each: 0.3.3 3903 | is-typed-array: 1.1.10 3904 | dev: true 3905 | 3906 | /typescript/5.0.0-dev.20230216: 3907 | resolution: {integrity: sha512-yeZZGWiNc5pbGg4J/bgN7vq2Lrs4YTNzhG5dv8owIe1PyYX4tMDla8NnXipy9h4Cmw6+DQA8FG9XZbymgmzSbA==} 3908 | engines: {node: '>=4.2.0'} 3909 | hasBin: true 3910 | dev: true 3911 | 3912 | /ufo/1.0.1: 3913 | resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} 3914 | dev: true 3915 | 3916 | /unbox-primitive/1.0.2: 3917 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3918 | dependencies: 3919 | call-bind: 1.0.2 3920 | has-bigints: 1.0.2 3921 | has-symbols: 1.0.3 3922 | which-boxed-primitive: 1.0.2 3923 | dev: true 3924 | 3925 | /unherit/3.0.1: 3926 | resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} 3927 | dev: false 3928 | 3929 | /unified/10.1.2: 3930 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} 3931 | dependencies: 3932 | '@types/unist': 2.0.6 3933 | bail: 2.0.2 3934 | extend: 3.0.2 3935 | is-buffer: 2.0.5 3936 | is-plain-obj: 4.1.0 3937 | trough: 2.1.0 3938 | vfile: 5.3.7 3939 | dev: false 3940 | 3941 | /unist-util-is/5.2.0: 3942 | resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==} 3943 | dev: false 3944 | 3945 | /unist-util-modify-children/3.1.1: 3946 | resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} 3947 | dependencies: 3948 | '@types/unist': 2.0.6 3949 | array-iterate: 2.0.1 3950 | dev: false 3951 | 3952 | /unist-util-position-from-estree/1.1.2: 3953 | resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} 3954 | dependencies: 3955 | '@types/unist': 2.0.6 3956 | dev: false 3957 | 3958 | /unist-util-remove-position/4.0.2: 3959 | resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} 3960 | dependencies: 3961 | '@types/unist': 2.0.6 3962 | unist-util-visit: 4.1.2 3963 | dev: false 3964 | 3965 | /unist-util-stringify-position/3.0.3: 3966 | resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} 3967 | dependencies: 3968 | '@types/unist': 2.0.6 3969 | dev: false 3970 | 3971 | /unist-util-visit-children/2.0.2: 3972 | resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} 3973 | dependencies: 3974 | '@types/unist': 2.0.6 3975 | dev: false 3976 | 3977 | /unist-util-visit-parents/5.1.3: 3978 | resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} 3979 | dependencies: 3980 | '@types/unist': 2.0.6 3981 | unist-util-is: 5.2.0 3982 | dev: false 3983 | 3984 | /unist-util-visit/4.1.2: 3985 | resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} 3986 | dependencies: 3987 | '@types/unist': 2.0.6 3988 | unist-util-is: 5.2.0 3989 | unist-util-visit-parents: 5.1.3 3990 | dev: false 3991 | 3992 | /uri-js/4.4.1: 3993 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3994 | dependencies: 3995 | punycode: 2.3.0 3996 | dev: true 3997 | 3998 | /uvu/0.5.6: 3999 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} 4000 | engines: {node: '>=8'} 4001 | hasBin: true 4002 | dependencies: 4003 | dequal: 2.0.3 4004 | diff: 5.1.0 4005 | kleur: 4.1.5 4006 | sade: 1.8.1 4007 | dev: false 4008 | 4009 | /vfile-location/4.1.0: 4010 | resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} 4011 | dependencies: 4012 | '@types/unist': 2.0.6 4013 | vfile: 5.3.7 4014 | dev: false 4015 | 4016 | /vfile-message/3.1.4: 4017 | resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} 4018 | dependencies: 4019 | '@types/unist': 2.0.6 4020 | unist-util-stringify-position: 3.0.3 4021 | dev: false 4022 | 4023 | /vfile/5.3.7: 4024 | resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} 4025 | dependencies: 4026 | '@types/unist': 2.0.6 4027 | is-buffer: 2.0.5 4028 | unist-util-stringify-position: 3.0.3 4029 | vfile-message: 3.1.4 4030 | dev: false 4031 | 4032 | /vite-node/0.28.5_@types+node@18.13.0: 4033 | resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} 4034 | engines: {node: '>=v14.16.0'} 4035 | hasBin: true 4036 | dependencies: 4037 | cac: 6.7.14 4038 | debug: 4.3.4 4039 | mlly: 1.1.0 4040 | pathe: 1.1.0 4041 | picocolors: 1.0.0 4042 | source-map: 0.6.1 4043 | source-map-support: 0.5.21 4044 | vite: 4.1.1_@types+node@18.13.0 4045 | transitivePeerDependencies: 4046 | - '@types/node' 4047 | - less 4048 | - sass 4049 | - stylus 4050 | - sugarss 4051 | - supports-color 4052 | - terser 4053 | dev: true 4054 | 4055 | /vite/4.1.1_@types+node@18.13.0: 4056 | resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} 4057 | engines: {node: ^14.18.0 || >=16.0.0} 4058 | hasBin: true 4059 | peerDependencies: 4060 | '@types/node': '>= 14' 4061 | less: '*' 4062 | sass: '*' 4063 | stylus: '*' 4064 | sugarss: '*' 4065 | terser: ^5.4.0 4066 | peerDependenciesMeta: 4067 | '@types/node': 4068 | optional: true 4069 | less: 4070 | optional: true 4071 | sass: 4072 | optional: true 4073 | stylus: 4074 | optional: true 4075 | sugarss: 4076 | optional: true 4077 | terser: 4078 | optional: true 4079 | dependencies: 4080 | '@types/node': 18.13.0 4081 | esbuild: 0.16.17 4082 | postcss: 8.4.21 4083 | resolve: 1.22.1 4084 | rollup: 3.15.0 4085 | optionalDependencies: 4086 | fsevents: 2.3.2 4087 | dev: true 4088 | 4089 | /vitest/0.28.5: 4090 | resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} 4091 | engines: {node: '>=v14.16.0'} 4092 | hasBin: true 4093 | peerDependencies: 4094 | '@edge-runtime/vm': '*' 4095 | '@vitest/browser': '*' 4096 | '@vitest/ui': '*' 4097 | happy-dom: '*' 4098 | jsdom: '*' 4099 | peerDependenciesMeta: 4100 | '@edge-runtime/vm': 4101 | optional: true 4102 | '@vitest/browser': 4103 | optional: true 4104 | '@vitest/ui': 4105 | optional: true 4106 | happy-dom: 4107 | optional: true 4108 | jsdom: 4109 | optional: true 4110 | dependencies: 4111 | '@types/chai': 4.3.4 4112 | '@types/chai-subset': 1.3.3 4113 | '@types/node': 18.13.0 4114 | '@vitest/expect': 0.28.5 4115 | '@vitest/runner': 0.28.5 4116 | '@vitest/spy': 0.28.5 4117 | '@vitest/utils': 0.28.5 4118 | acorn: 8.8.2 4119 | acorn-walk: 8.2.0 4120 | cac: 6.7.14 4121 | chai: 4.3.7 4122 | debug: 4.3.4 4123 | local-pkg: 0.4.3 4124 | pathe: 1.1.0 4125 | picocolors: 1.0.0 4126 | source-map: 0.6.1 4127 | std-env: 3.3.2 4128 | strip-literal: 1.0.1 4129 | tinybench: 2.3.1 4130 | tinypool: 0.3.1 4131 | tinyspy: 1.1.1 4132 | vite: 4.1.1_@types+node@18.13.0 4133 | vite-node: 0.28.5_@types+node@18.13.0 4134 | why-is-node-running: 2.2.2 4135 | transitivePeerDependencies: 4136 | - less 4137 | - sass 4138 | - stylus 4139 | - sugarss 4140 | - supports-color 4141 | - terser 4142 | dev: true 4143 | 4144 | /webidl-conversions/4.0.2: 4145 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 4146 | dev: true 4147 | 4148 | /whatwg-url/7.1.0: 4149 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 4150 | dependencies: 4151 | lodash.sortby: 4.7.0 4152 | tr46: 1.0.1 4153 | webidl-conversions: 4.0.2 4154 | dev: true 4155 | 4156 | /which-boxed-primitive/1.0.2: 4157 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 4158 | dependencies: 4159 | is-bigint: 1.0.4 4160 | is-boolean-object: 1.1.2 4161 | is-number-object: 1.0.7 4162 | is-string: 1.0.7 4163 | is-symbol: 1.0.4 4164 | dev: true 4165 | 4166 | /which-collection/1.0.1: 4167 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 4168 | dependencies: 4169 | is-map: 2.0.2 4170 | is-set: 2.0.2 4171 | is-weakmap: 2.0.1 4172 | is-weakset: 2.0.2 4173 | dev: true 4174 | 4175 | /which-typed-array/1.1.9: 4176 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 4177 | engines: {node: '>= 0.4'} 4178 | dependencies: 4179 | available-typed-arrays: 1.0.5 4180 | call-bind: 1.0.2 4181 | for-each: 0.3.3 4182 | gopd: 1.0.1 4183 | has-tostringtag: 1.0.0 4184 | is-typed-array: 1.1.10 4185 | dev: true 4186 | 4187 | /which/2.0.2: 4188 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 4189 | engines: {node: '>= 8'} 4190 | hasBin: true 4191 | dependencies: 4192 | isexe: 2.0.0 4193 | dev: true 4194 | 4195 | /why-is-node-running/2.2.2: 4196 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 4197 | engines: {node: '>=8'} 4198 | hasBin: true 4199 | dependencies: 4200 | siginfo: 2.0.0 4201 | stackback: 0.0.2 4202 | dev: true 4203 | 4204 | /word-wrap/1.2.3: 4205 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 4206 | engines: {node: '>=0.10.0'} 4207 | dev: true 4208 | 4209 | /wrappy/1.0.2: 4210 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 4211 | dev: true 4212 | 4213 | /yallist/4.0.0: 4214 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4215 | dev: true 4216 | 4217 | /yaml/1.10.2: 4218 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 4219 | engines: {node: '>= 6'} 4220 | dev: true 4221 | 4222 | /yocto-queue/0.1.0: 4223 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4224 | engines: {node: '>=10'} 4225 | dev: true 4226 | 4227 | /yocto-queue/1.0.0: 4228 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 4229 | engines: {node: '>=12.20'} 4230 | dev: true 4231 | 4232 | /zwitch/2.0.4: 4233 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 4234 | dev: false 4235 | --------------------------------------------------------------------------------