├── api ├── .gitignore ├── src │ ├── index.ts │ └── client.ts ├── tsup.config.js ├── package.json ├── biome.json ├── LICENSE ├── readme.md ├── tsconfig.json └── pnpm-lock.yaml ├── examples ├── streaming-server │ ├── app │ │ ├── ___init___.py │ │ ├── __pycache__ │ │ │ └── main.cpython-310.pyc │ │ └── main.py │ ├── start.sh │ ├── requirements.txt │ ├── docker-compose.yml │ ├── Dockerfile │ └── README.md ├── vite+react │ ├── src │ │ ├── vite-env.d.ts │ │ ├── main.tsx │ │ ├── App.css │ │ ├── index.css │ │ ├── App.tsx │ │ └── assets │ │ │ └── react.svg │ ├── vite.config.ts │ ├── tsconfig.node.json │ ├── .gitignore │ ├── index.html │ ├── .eslintrc.cjs │ ├── tsconfig.json │ ├── package.json │ ├── README.md │ ├── public │ │ └── vite.svg │ └── pnpm-lock.yaml └── next-js-example │ ├── .eslintrc.json │ ├── src │ ├── app │ │ ├── favicon.ico │ │ ├── layout.tsx │ │ ├── globals.css │ │ └── page.tsx │ └── components │ │ └── client.tsx │ ├── next.config.mjs │ ├── postcss.config.js │ ├── .gitignore │ ├── tailwind.config.ts │ ├── public │ ├── vercel.svg │ └── next.svg │ ├── tsconfig.json │ ├── package.json │ └── README.md ├── changelog.md └── readme.md /api/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /examples/streaming-server/app/___init___.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./client"; 2 | -------------------------------------------------------------------------------- /examples/vite+react/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/next-js-example/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /examples/streaming-server/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose.yml up 4 | -------------------------------------------------------------------------------- /examples/streaming-server/requirements.txt: -------------------------------------------------------------------------------- 1 | fastapi>=0.68.0,<0.69.0 2 | pydantic>=1.8.0,<2.0.0 3 | uvicorn>=0.15.0,<0.16.0 4 | -------------------------------------------------------------------------------- /examples/next-js-example/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glamboyosa/ore/HEAD/examples/next-js-example/src/app/favicon.ico -------------------------------------------------------------------------------- /examples/next-js-example/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /examples/next-js-example/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /examples/streaming-server/app/__pycache__/main.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glamboyosa/ore/HEAD/examples/streaming-server/app/__pycache__/main.cpython-310.pyc -------------------------------------------------------------------------------- /examples/vite+react/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /api/tsup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: ["src/index.ts"], 5 | format: ["cjs", "esm"], 6 | splitting: false, 7 | sourcemap: true, 8 | clean: true, 9 | bundle: true, 10 | dts: true, 11 | }); 12 | -------------------------------------------------------------------------------- /examples/streaming-server/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | 3 | services: 4 | app: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | ports: 9 | - "4000:4000" 10 | volumes: 11 | - ./app:/code/app 12 | environment: 13 | - ENV=development 14 | -------------------------------------------------------------------------------- /examples/vite+react/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.tsx' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /examples/vite+react/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /examples/vite+react/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/vite+react/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/streaming-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10 2 | 3 | WORKDIR /code 4 | 5 | # Copy the requirements file 6 | COPY ./requirements.txt /code/requirements.txt 7 | 8 | # Install the requirements 9 | RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt 10 | 11 | # Copy the application code 12 | COPY ./app /code/app 13 | 14 | # Specify the command to run the application 15 | CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "4000", "--reload"] 16 | -------------------------------------------------------------------------------- /examples/vite+react/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /examples/next-js-example/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /examples/next-js-example/src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { Inter } from "next/font/google"; 3 | import "./globals.css"; 4 | 5 | const inter = Inter({ subsets: ["latin"] }); 6 | 7 | export const metadata: Metadata = { 8 | title: "Create Next App", 9 | description: "Generated by create next app", 10 | }; 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: Readonly<{ 15 | children: React.ReactNode; 16 | }>) { 17 | return ( 18 | 19 | {children} 20 | 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /examples/next-js-example/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 13 | "gradient-conic": 14 | "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 15 | }, 16 | }, 17 | }, 18 | plugins: [], 19 | }; 20 | export default config; 21 | -------------------------------------------------------------------------------- /examples/next-js-example/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@glamboyosa/ore", 3 | "version": "0.0.4", 4 | "main": "./dist/index.js", 5 | "module": "./dist/index.mjs", 6 | "types": "./dist/index.d.ts", 7 | "license": "MIT", 8 | "private": false, 9 | "publishConfig": { 10 | "access": "public" 11 | }, 12 | "keywords": ["@glamboyosa/ore", "server-sent events", "SSE", "api"], 13 | "scripts": { 14 | "build": "tsup", 15 | "fmt": "pnpm biome format . --write && pnpm biome check . --apply-unsafe " 16 | }, 17 | "files": ["./dist/**"], 18 | "devDependencies": { 19 | "@biomejs/biome": "^1.6.3", 20 | "@types/node": "^20.11.30", 21 | "tsup": "^8.0.2", 22 | "typescript": "^5.4.3" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/next-js-example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /examples/vite+react/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true 22 | }, 23 | "include": ["src"], 24 | "references": [{ "path": "./tsconfig.node.json" }] 25 | } 26 | -------------------------------------------------------------------------------- /examples/next-js-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next-js-example", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@glamboyosa/ore": "^0.0.4", 13 | "next": "14.2.4", 14 | "react": "^18.3.1", 15 | "react-dom": "^18.3.1" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "^20", 19 | "@types/react": "^18", 20 | "@types/react-dom": "^18", 21 | "autoprefixer": "^10.0.1", 22 | "eslint": "^8", 23 | "eslint-config-next": "14.2.4", 24 | "postcss": "^8", 25 | "tailwindcss": "^3.3.0", 26 | "typescript": "^5" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/next-js-example/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --foreground-rgb: 0, 0, 0; 7 | --background-start-rgb: 214, 219, 220; 8 | --background-end-rgb: 255, 255, 255; 9 | } 10 | 11 | @media (prefers-color-scheme: dark) { 12 | :root { 13 | --foreground-rgb: 255, 255, 255; 14 | --background-start-rgb: 0, 0, 0; 15 | --background-end-rgb: 0, 0, 0; 16 | } 17 | } 18 | 19 | body { 20 | color: rgb(var(--foreground-rgb)); 21 | background: linear-gradient( 22 | to bottom, 23 | transparent, 24 | rgb(var(--background-end-rgb)) 25 | ) 26 | rgb(var(--background-start-rgb)); 27 | } 28 | 29 | @layer utilities { 30 | .text-balance { 31 | text-wrap: balance; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /examples/vite+react/src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | transition: filter 300ms; 13 | } 14 | .logo:hover { 15 | filter: drop-shadow(0 0 2em #646cffaa); 16 | } 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | to { 26 | transform: rotate(360deg); 27 | } 28 | } 29 | 30 | @media (prefers-reduced-motion: no-preference) { 31 | a:nth-of-type(2) .logo { 32 | animation: logo-spin infinite 20s linear; 33 | } 34 | } 35 | 36 | .card { 37 | padding: 2em; 38 | } 39 | 40 | .read-the-docs { 41 | color: #888; 42 | } 43 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.1 24-03-26 2 | 3 | - Initial release of @glamboyosa/ore package. 4 | - Implemented `Ore` class for simplified consumption of Server-Sent Events (SSE) in web applications. 5 | - Implemented handling of incoming SSE events and processing them accordingly. 6 | - Added support for implementing retry strategies for reconnecting to the SSE endpoint in case of connection failures. 7 | - Introduced customizable headers for SSE requests. 8 | - Added option to set maximum retries for connection attempts. 9 | 10 | This changelog reflects the initial release of the package and outlines its key features and functionalities. As updates and improvements are made to the package in future releases, the changelog will be updated accordingly to reflect the changes. 11 | 12 | # Version 0.0.2 24-04-01 13 | 14 | - Add README to package for NPM and co. 15 | -------------------------------------------------------------------------------- /examples/vite+react/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vitereact", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@glamboyosa/ore": "^0.0.1", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0" 16 | }, 17 | "devDependencies": { 18 | "@types/react": "^18.2.66", 19 | "@types/react-dom": "^18.2.22", 20 | "@typescript-eslint/eslint-plugin": "^7.2.0", 21 | "@typescript-eslint/parser": "^7.2.0", 22 | "@vitejs/plugin-react": "^4.2.1", 23 | "eslint": "^8.57.0", 24 | "eslint-plugin-react-hooks": "^4.6.0", 25 | "eslint-plugin-react-refresh": "^0.4.6", 26 | "typescript": "^5.2.2", 27 | "vite": "^5.2.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /api/biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.0.0/schema.json", 3 | "linter": { 4 | "enabled": true, 5 | "rules": { 6 | "recommended": true, 7 | "a11y": { 8 | "noSvgWithoutTitle": "off" 9 | }, 10 | "correctness": { 11 | "noUnusedVariables": "warn" 12 | }, 13 | "security": { 14 | "noDangerouslySetInnerHtml": "off" 15 | }, 16 | "style": { 17 | "useBlockStatements": "error", 18 | "noNonNullAssertion": "off" 19 | }, 20 | "performance": { 21 | "noDelete": "off" 22 | }, 23 | "suspicious": { 24 | "noExplicitAny": "off" 25 | } 26 | }, 27 | "ignore": ["node_modules", "dist"] 28 | }, 29 | "formatter": { 30 | "indentStyle": "space", 31 | "indentWidth": 2, 32 | "enabled": true, 33 | "lineWidth": 100, 34 | "ignore": ["node_modules", "dist"] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /api/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Timothy Ogbemudia 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 | -------------------------------------------------------------------------------- /examples/streaming-server/README.md: -------------------------------------------------------------------------------- 1 | # FastAPI Streaming Server 2 | 3 | Python example FastAPI SSE server 4 | 5 | ## Prerequisites 6 | 7 | Before running the FastAPI server, ensure that you have the following installed: 8 | 9 | - Docker 10 | - Docker Compose 11 | 12 | I would recommend [Orbstack](https://orbstack.dev), it's lightweight and requires only installation. 13 | 14 | ## Getting Started 15 | 16 | Clone the repository via: 17 | 18 | ```bash 19 | git clone https://github.com/glamboysa/ore.git 20 | ``` 21 | 22 | ### Development Environment 23 | 24 | To start the FastAPI server in the development environment, first go to the streaming server folder 25 | 26 | ```bash 27 | cd examples/streaming-server 28 | ``` 29 | 30 | Then run the following command: 31 | 32 | ```bash 33 | ./start.sh 34 | ``` 35 | 36 | This command will use Docker Compose to build the development Docker image and start the server. The server will be accessible at http://localhost:8000. 37 | 38 | ## Note for macOS Users 39 | 40 | If you encounter permission issues while running the bash scripts on macOS, you may need to give executable permissions to the scripts. You can do this by running the following commands: 41 | 42 | ```bash 43 | chmod +x start.sh 44 | ``` 45 | -------------------------------------------------------------------------------- /examples/next-js-example/public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/next-js-example/src/components/client.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { useEffect, useState, useRef } from "react"; 3 | import { Ore } from "@glamboyosa/ore"; 4 | type ClientProps = {}; 5 | const ore = new Ore({ 6 | url: "http://localhost:4000/", 7 | headers: { 8 | "Cache-Control": "no-cache", 9 | }, 10 | }); 11 | 12 | const Client: React.FC = () => { 13 | const [chat, setCurrentChat] = useState(""); 14 | const isFirstRun = useRef(true); 15 | useEffect(() => { 16 | if (isFirstRun.current) { 17 | isFirstRun.current = false; 18 | console.log("console:"); 19 | ore.fetchSSE( 20 | (buffer, parts) => { 21 | // console.log("Received buffer:", buffer); 22 | setCurrentChat(buffer); 23 | // Process the received buffer 24 | 25 | const b = parts[parts.length - 1]; 26 | //console.log("Received parts i.e. events", parts); 27 | // console.log("Buffer per event", b); 28 | }, 29 | (streamEnded) => { 30 | console.log("Stream ended", streamEnded); 31 | } 32 | ); 33 | } 34 | }, []); 35 | return ( 36 |
40 |

Client Component:

41 |

{chat}

42 |
43 | ); 44 | }; 45 | 46 | export default Client; 47 | -------------------------------------------------------------------------------- /examples/vite+react/README.md: -------------------------------------------------------------------------------- 1 | # React + TypeScript + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | 10 | ## Expanding the ESLint configuration 11 | 12 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: 13 | 14 | - Configure the top-level `parserOptions` property like this: 15 | 16 | ```js 17 | export default { 18 | // other rules... 19 | parserOptions: { 20 | ecmaVersion: 'latest', 21 | sourceType: 'module', 22 | project: ['./tsconfig.json', './tsconfig.node.json'], 23 | tsconfigRootDir: __dirname, 24 | }, 25 | } 26 | ``` 27 | 28 | - Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` 29 | - Optionally add `plugin:@typescript-eslint/stylistic-type-checked` 30 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list 31 | -------------------------------------------------------------------------------- /examples/vite+react/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/vite+react/src/index.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | a { 17 | font-weight: 500; 18 | color: #646cff; 19 | text-decoration: inherit; 20 | } 21 | a:hover { 22 | color: #535bf2; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | display: flex; 28 | place-items: center; 29 | min-width: 320px; 30 | min-height: 100vh; 31 | } 32 | 33 | h1 { 34 | font-size: 3.2em; 35 | line-height: 1.1; 36 | } 37 | 38 | button { 39 | border-radius: 8px; 40 | border: 1px solid transparent; 41 | padding: 0.6em 1.2em; 42 | font-size: 1em; 43 | font-weight: 500; 44 | font-family: inherit; 45 | background-color: #1a1a1a; 46 | cursor: pointer; 47 | transition: border-color 0.25s; 48 | } 49 | button:hover { 50 | border-color: #646cff; 51 | } 52 | button:focus, 53 | button:focus-visible { 54 | outline: 4px auto -webkit-focus-ring-color; 55 | } 56 | 57 | @media (prefers-color-scheme: light) { 58 | :root { 59 | color: #213547; 60 | background-color: #ffffff; 61 | } 62 | a:hover { 63 | color: #747bff; 64 | } 65 | button { 66 | background-color: #f9f9f9; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /examples/next-js-example/README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | # or 14 | bun dev 15 | ``` 16 | 17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 | 19 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 37 | -------------------------------------------------------------------------------- /examples/vite+react/src/App.tsx: -------------------------------------------------------------------------------- 1 | import reactLogo from "./assets/react.svg"; 2 | import viteLogo from "/vite.svg"; 3 | import "./App.css"; 4 | import { Ore } from "@glamboyosa/ore"; 5 | import { useEffect, useRef, useState } from "react"; 6 | const ore = new Ore({ 7 | url: "http://localhost:4000/", 8 | headers: { 9 | "Cache-Control": "no-cache", 10 | }, 11 | }); 12 | 13 | function App() { 14 | const [chat, setCurrentChat] = useState(""); 15 | const isFirstRun = useRef(true); 16 | useEffect(() => { 17 | if (isFirstRun.current) { 18 | isFirstRun.current = false; 19 | console.log("console:"); 20 | ore.fetchSSE( 21 | (buffer, parts) => { 22 | console.log("Received buffer:", buffer); 23 | setCurrentChat(buffer); 24 | // Process the received buffer 25 | 26 | const b = parts[parts.length - 1]; 27 | console.log("Received parts i.e. events", parts); 28 | console.log("Buffer per event", b); 29 | }, 30 | (streamEnded) => { 31 | console.log("Stream ended", streamEnded); 32 | } 33 | ); 34 | } 35 | }, []); 36 | return ( 37 | <> 38 |
39 | 40 | Vite logo 41 | 42 | 43 | React logo 44 | 45 |
46 |

Vite + React

47 |
48 |

Stream:

49 |

{chat}

50 |
51 | 52 | ); 53 | } 54 | 55 | export default App; 56 | -------------------------------------------------------------------------------- /examples/streaming-server/app/main.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from fastapi import FastAPI 3 | from fastapi.middleware.cors import CORSMiddleware 4 | from fastapi.responses import StreamingResponse 5 | import time 6 | app = FastAPI() 7 | 8 | 9 | origins = [ 10 | "*" 11 | ] 12 | 13 | 14 | 15 | app.add_middleware( 16 | CORSMiddleware, 17 | allow_origins=origins, 18 | allow_methods=["*"], 19 | allow_headers=["*"], 20 | ) 21 | 22 | def chunk_text(text: str, chunk_size=50): 23 | """Generator function to chunk text into smaller parts.""" 24 | for i in range(0, len(text), chunk_size): 25 | yield text[i:i + chunk_size] 26 | time.sleep(0.2) 27 | 28 | @app.get("/") 29 | async def root(): 30 | celsius_temp = 20 31 | fahrenheit_temp = (celsius_temp * 9/5) + 32 32 | description = f"The {celsius_temp} degrees Celsius may seem cool, but it's equivalent to a toasty {fahrenheit_temp} degrees Fahrenheit! Whether you're enjoying a brisk autumn day or cozying up by the fireplace in winter, this temperature conversion highlights the versatility of weather measurement systems. Understanding both Celsius and Fahrenheit allows for seamless communication across international borders and scientific disciplines. So whether you're planning a trip abroad or simply checking the weather forecast, knowing how to convert between Celsius and Fahrenheit is an invaluable skill in today's interconnected world." 33 | print(description) 34 | return StreamingResponse(chunk_text(description, 2), headers={ "Content-Type": "text/event-stream" }) 35 | 36 | @app.get("/server-component") 37 | async def root(): 38 | server_name = "DataCenter_Server" 39 | cpu_cores = 32 40 | ram_gb = 128 41 | description = f"Server components are cool and The {server_name} is a powerhouse in terms of performance and reliability. With a staggering {cpu_cores} CPU cores and {ram_gb}GB of RAM, it is capable of handling even the most demanding workloads with ease. Whether you're running complex simulations, hosting virtual machines, or managing large-scale databases, this server delivers unmatched speed and efficiency. Its robust design ensures maximum uptime, keeping your operations running smoothly around the clock. Invest in the {server_name} today and experience unparalleled computing power for your business." 42 | 43 | return StreamingResponse(chunk_text(description, 5), headers={ "Content-Type": "text/event-stream" }) -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Ore 2 | 3 | Ore is a JavaScript / TypeScript package that simplifies the consumption of Server-Sent Events (SSE) in web applications. It provides an easy-to-use interface for establishing SSE connections, handling incoming events, and implementing retry strategies in case of connection failures. 4 | 5 | ## Motivation 6 | 7 | Consuming Server-Sent Events (SSE) or streaming data in web applications isn't always well-documented and can be complex or just plain unreliable to implement. Ore aims to simplify this process by providing a straightforward and reliable way to consume SSE streams. 8 | 9 | ## Features 10 | 11 | - Establish SSE connections with ease. 12 | - Handle incoming SSE events and process them accordingly. 13 | - Implement retry strategies for reconnecting to the SSE endpoint in case of connection failures. 14 | - Customizable headers for SSE requests. 15 | - Set maximum retries for connection attempts. 16 | 17 | ## Install 18 | 19 | ```bash 20 | npm install @glamboyosa/ore 21 | ``` 22 | 23 | ## Usage 24 | 25 | ```typescript 26 | import Ore from "@glamboyosa/ore"; 27 | 28 | // Initialize Ore with URL and optional headers 29 | const ore = new Ore({ 30 | url: "http://example.com/sse-endpoint", 31 | headers: { 32 | "Cache-Control": "no-cache", 33 | }, 34 | }); 35 | 36 | // Start SSE connection 37 | ore.fetchSSE( 38 | (buffer, parts) => { 39 | console.log("Received buffer:", buffer); 40 | // Process the received buffer 41 | 42 | const b = parts[parts.length - 1]; 43 | console.log("Received parts i.e. events", parts); 44 | console.log("Buffer per event", b); 45 | // process the buffer per event 46 | }, 47 | () => { 48 | console.log("Stream ended"); 49 | // Handle stream end 50 | } 51 | ); 52 | ``` 53 | 54 | ## Class Parameters 55 | 56 | - `url`: `string` - The URL of the SSE endpoint. 57 | - `headers`: `HeadersInit` (optional) - Optional headers to include in the SSE request. Must be an object where keys are header names and values are header values. 58 | 59 | ## `fetchSSE` Function Parameters 60 | 61 | - `onBufferReceived`: `function` - Callback function to handle received SSE buffers. Receives the buffer and the optionally the parts i.e. new events as a parameter. 62 | - `onStreamEnded`: `function` - Callback function to handle stream end events. Receives the internal state of if the buffer stream is ended. 63 | - `retries`: `number` (optional) - Optional parameter to specify the maximum number of retry attempts. Default is 3. 64 | 65 | ## Working with React Server Components 66 | 67 | While Ore is intended to work with client components, it is possible to use it in server components using the `fetchSSEForRSC` function. The function takes optional `retries`: `number` (optional) - Optional parameter to specify the maximum number of retry attempts. Default is 3. and `customHeaders`: `HeadersInit` (optional) - Optional headers to include in the SSE request. Must be an object where keys are header names and values are header values. 68 | 69 | ### Usage with RSCs 70 | 71 | Checkout the `next-js-example` directory for a full example on how to use it with Server Components [here](https://github.com/glamboyosa/ore/blob/main/examples/next-js-example/src/app/page.tsx) 72 | 73 | ## Contributing 74 | 75 | Contributions to @glamboyosa/ore are welcome! If you have suggestions for improvements or encounter any issues, feel free to open an issue or submit a pull request on GitHub. 76 | 77 | ## License 78 | 79 | This project is licensed under the MIT License. 80 | -------------------------------------------------------------------------------- /api/readme.md: -------------------------------------------------------------------------------- 1 | # Ore 2 | 3 | Ore is a JavaScript / TypeScript package that simplifies the consumption of Server-Sent Events (SSE) in web applications. It provides an easy-to-use interface for establishing SSE connections, handling incoming events, and implementing retry strategies in case of connection failures. 4 | 5 | ## Motivation 6 | 7 | Consuming Server-Sent Events (SSE) or streaming data in web applications isn't always well-documented and can be complex or just plain unreliable to implement. Ore aims to simplify this process by providing a straightforward and reliable way to consume SSE streams. 8 | 9 | ## Features 10 | 11 | - Establish SSE connections with ease. 12 | - Handle incoming SSE events and process them accordingly. 13 | - Implement retry strategies for reconnecting to the SSE endpoint in case of connection failures. 14 | - Customizable headers for SSE requests. 15 | - Set maximum retries for connection attempts. 16 | 17 | ## Install 18 | 19 | ```bash 20 | npm install @glamboyosa/ore 21 | ``` 22 | 23 | ## Usage 24 | 25 | ```typescript 26 | import Ore from "@glamboyosa/ore"; 27 | 28 | // Initialize Ore with URL and optional headers 29 | const ore = new Ore({ 30 | url: "http://example.com/sse-endpoint", 31 | headers: { 32 | "Cache-Control": "no-cache", 33 | }, 34 | }); 35 | 36 | // Start SSE connection 37 | ore.fetchSSE( 38 | (buffer, parts) => { 39 | console.log("Received buffer:", buffer); 40 | // Process the received buffer 41 | 42 | const b = parts[parts.length - 1]; 43 | console.log("Received parts i.e. events", parts); 44 | console.log("Buffer per event", b); 45 | // process the buffer per event 46 | }, 47 | () => { 48 | console.log("Stream ended"); 49 | // Handle stream end 50 | } 51 | ); 52 | ``` 53 | 54 | ## Class Parameters 55 | 56 | - `url`: `string` - The URL of the SSE endpoint. 57 | - `headers`: `HeadersInit` (optional) - Optional headers to include in the SSE request. Must be an object where keys are header names and values are header values. 58 | 59 | ## `fetchSSE` Function Parameters 60 | 61 | - `onBufferReceived`: `function` - Callback function to handle received SSE buffers. Receives the buffer and the optionally the parts i.e. new events as a parameter. 62 | - `onStreamEnded`: `function` - Callback function to handle stream end events. Receives the internal state of if the buffer stream is ended. 63 | - `retries`: `number` (optional) - Optional parameter to specify the maximum number of retry attempts. Default is 3. 64 | 65 | ## Working with React Server Components 66 | 67 | While Ore is intended to work with client components, it is possible to use it in server components using the `fetchSSEForRSC` function. The function takes optional `retries`: `number` (optional) - Optional parameter to specify the maximum number of retry attempts. Default is 3. and `customHeaders`: `HeadersInit` (optional) - Optional headers to include in the SSE request. Must be an object where keys are header names and values are header values. 68 | 69 | ### Usage with RSCs 70 | 71 | Checkout the `next-js-example` directory for a full example on how to use it with Server Components [here](https://github.com/glamboyosa/ore/blob/main/examples/next-js-example/src/app/page.tsx) 72 | 73 | ## Contributing 74 | 75 | Contributions to @glamboyosa/ore are welcome! If you have suggestions for improvements or encounter any issues, feel free to open an issue or submit a pull request on GitHub. 76 | 77 | ## License 78 | 79 | This project is licensed under the MIT License. 80 | -------------------------------------------------------------------------------- /examples/next-js-example/src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import Image from "next/image"; 2 | import Client from "@/components/client"; 3 | import { Ore } from "@glamboyosa/ore"; 4 | import { Suspense } from "react"; 5 | 6 | const ore = new Ore({ 7 | url: "http://localhost:4000/server-component/", 8 | headers: { 9 | "Cache-Control": "no-cache", 10 | }, 11 | }); 12 | async function RecursiveText({ buffer }: { buffer: any }) { 13 | const { done, value } = await buffer.read(); 14 | console.log(value, done); 15 | if (done) return null; 16 | const text = new TextDecoder().decode(value); 17 | console.log(text); 18 | return ( 19 | 20 | {text} 21 | 22 | 23 | 24 | 25 | ); 26 | } 27 | export default async function Home() { 28 | const stream = await ore.fetchSSEForRSC(); 29 | console.log(stream); 30 | return ( 31 |
32 |
33 | 34 |
35 |

Server Component stream:

36 |

37 | 38 | 39 | 40 |

41 |
42 |
43 | 44 |
45 |
46 |
47 | 53 | By{" "} 54 | Vercel Logo 62 | 63 |
64 |
65 | 66 |
67 | Next.js Logo 75 |
76 |
77 | ); 78 | } 79 | 80 | export const dynamic = "force-dynamic"; 81 | -------------------------------------------------------------------------------- /examples/vite+react/src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/src/client.ts: -------------------------------------------------------------------------------- 1 | interface OreOptions { 2 | url: string; 3 | headers?: HeadersInit; 4 | } 5 | 6 | class Ore { 7 | private url: string; 8 | private headers?: HeadersInit; 9 | private streamEnded = false; 10 | private retryCount = 0; 11 | private maxRetries = 3; 12 | 13 | constructor(options: OreOptions) { 14 | this.url = options.url; 15 | this.headers = options.headers 16 | ? { 17 | "Content-Type": "text/event-stream", 18 | "Cache-Control": "no-cache", 19 | Connection: "keep-alive", 20 | ...options.headers, 21 | } 22 | : { 23 | "Content-Type": "text/event-stream", 24 | "Cache-Control": "no-cache", 25 | Connection: "keep-alive", 26 | }; 27 | } 28 | 29 | public fetchSSE( 30 | onBufferReceived: (buffer: string, parts: Array) => void, 31 | onStreamEnded?: (streamEnded: boolean) => void, 32 | customHeaders?: HeadersInit, 33 | retries: number = this.maxRetries, 34 | ): void { 35 | const headers = { ...this.headers, ...customHeaders }; 36 | 37 | const fetchWithRetry = async (): Promise => { 38 | try { 39 | const response = await fetch(this.url, { 40 | method: "GET", 41 | headers: headers, 42 | }); 43 | 44 | if (!response.ok) { 45 | throw new Error("Failed to connect to SSE endpoint"); 46 | } 47 | 48 | this.retryCount = 0; 49 | 50 | const reader = response.body?.getReader(); 51 | const decoder = new TextDecoder("utf-8"); 52 | let buffer = ""; 53 | const processText = ({ done, value }: ReadableStreamReadResult): any => { 54 | if (done) { 55 | this.streamEnded = true; 56 | if (onStreamEnded) { 57 | onStreamEnded(this.streamEnded); 58 | } 59 | return; 60 | } 61 | 62 | buffer += decoder.decode(value, { stream: true }); 63 | 64 | const parts = buffer.split("\n\n"); 65 | 66 | onBufferReceived(buffer, parts); 67 | 68 | return reader!.read().then(processText); 69 | }; 70 | reader 71 | ?.read() 72 | .then(processText) 73 | .catch((error) => { 74 | if (this.retryCount < retries) { 75 | console.error("Error:", error); 76 | console.log("Retrying..."); 77 | this.retryCount++; 78 | setTimeout(fetchWithRetry, 1000); 79 | } else { 80 | console.error("Max retries exceeded. Cannot establish SSE connection."); 81 | this.streamEnded = true; 82 | if (onStreamEnded) { 83 | onStreamEnded(this.streamEnded); 84 | } 85 | } 86 | }); 87 | } catch (error) { 88 | if (this.retryCount < retries) { 89 | console.error("Error:", error); 90 | console.log("Retrying..."); 91 | this.retryCount++; 92 | setTimeout(fetchWithRetry, 1000); 93 | } else { 94 | console.error("Max retries exceeded. Cannot establish SSE connection."); 95 | this.streamEnded = true; 96 | if (onStreamEnded) { 97 | onStreamEnded(this.streamEnded); 98 | } 99 | } 100 | } 101 | }; 102 | 103 | fetchWithRetry(); 104 | } 105 | public async fetchSSEForRSC(customHeaders?: HeadersInit, retries: number = this.maxRetries) { 106 | const headers = { ...this.headers, ...customHeaders }; 107 | 108 | try { 109 | const { signal } = new AbortController(); 110 | const response = await fetch(this.url, { 111 | method: "GET", 112 | headers: headers, 113 | cache: "no-store", 114 | signal, 115 | }); 116 | 117 | if (!response.ok) { 118 | throw new Error("Failed to connect to SSE endpoint"); 119 | } 120 | 121 | this.retryCount = 0; 122 | 123 | return response.body; 124 | } catch (error) { 125 | if (this.retryCount < retries) { 126 | console.error("Error:", error); 127 | console.log("Retrying..."); 128 | this.retryCount++; 129 | setTimeout(() => this.fetchSSEForRSC(customHeaders, retries), 1000); 130 | } else { 131 | console.error("Max retries exceeded. Cannot establish SSE connection."); 132 | } 133 | } 134 | } 135 | } 136 | 137 | export { Ore, type OreOptions }; 138 | -------------------------------------------------------------------------------- /api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | /* Projects */ 5 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 6 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 7 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 8 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 9 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 10 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 11 | /* Language and Environment */ 12 | "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 13 | "lib": [ 14 | "ESNext", 15 | "DOM" 16 | ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, 17 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 18 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 19 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 20 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 21 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 22 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 23 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 24 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 25 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 26 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 27 | /* Modules */ 28 | // "module": "CommonJS", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | "resolveJsonModule": true /* Enable importing .json files. */, 39 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 40 | /* JavaScript Support */ 41 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 42 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 43 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 44 | /* Emit */ 45 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 46 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 47 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 48 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 49 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 50 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 51 | // "removeComments": true, /* Disable emitting comments. */ 52 | // "noEmit": true, /* Disable emitting files from a compilation. */ 53 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 54 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 55 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 56 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 57 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 60 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 61 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 62 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 63 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 64 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 65 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 66 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 67 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 68 | /* Interop Constraints */ 69 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 70 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 71 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 72 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 73 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 74 | /* Type Checking */ 75 | "strict": true /* Enable all strict type-checking options. */, 76 | "noImplicitAny": true /* Enable error reporting for expressions and declarations with an implied 'any' type. */, 77 | "strictNullChecks": true /* When type checking, take into account 'null' and 'undefined'. */, 78 | "strictFunctionTypes": true /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */, 79 | "strictBindCallApply": true /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */, 80 | "strictPropertyInitialization": true /* Check for class properties that are declared but not set in the constructor. */, 81 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 82 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 83 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 84 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 85 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 86 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 87 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 88 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 89 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 90 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 91 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 92 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 93 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 94 | /* Completeness */ 95 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 96 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /api/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | '@biomejs/biome': 9 | specifier: ^1.6.3 10 | version: 1.6.3 11 | '@types/node': 12 | specifier: ^20.11.30 13 | version: 20.11.30 14 | tsup: 15 | specifier: ^8.0.2 16 | version: 8.0.2(typescript@5.4.3) 17 | typescript: 18 | specifier: ^5.4.3 19 | version: 5.4.3 20 | 21 | packages: 22 | 23 | /@biomejs/biome@1.6.3: 24 | resolution: {integrity: sha512-Xnp/TIpIcTnRA4LwerJuoGYQJEqwXtn5AL0U0OPXll/QGbAKmcUAfizU880xTwZRD4f53iceqODLDaD3wxYlIw==} 25 | engines: {node: '>=14.*'} 26 | hasBin: true 27 | requiresBuild: true 28 | optionalDependencies: 29 | '@biomejs/cli-darwin-arm64': 1.6.3 30 | '@biomejs/cli-darwin-x64': 1.6.3 31 | '@biomejs/cli-linux-arm64': 1.6.3 32 | '@biomejs/cli-linux-arm64-musl': 1.6.3 33 | '@biomejs/cli-linux-x64': 1.6.3 34 | '@biomejs/cli-linux-x64-musl': 1.6.3 35 | '@biomejs/cli-win32-arm64': 1.6.3 36 | '@biomejs/cli-win32-x64': 1.6.3 37 | dev: true 38 | 39 | /@biomejs/cli-darwin-arm64@1.6.3: 40 | resolution: {integrity: sha512-0E8PGu3/8HSkBJdtjno+niJE1ANS/12D7sPK65vw5lTBYmmaYwJdfclDp6XO0IAX7uVd3/YtXlsEua0SVrNt3Q==} 41 | engines: {node: '>=14.*'} 42 | cpu: [arm64] 43 | os: [darwin] 44 | requiresBuild: true 45 | dev: true 46 | optional: true 47 | 48 | /@biomejs/cli-darwin-x64@1.6.3: 49 | resolution: {integrity: sha512-UWu0We/aIRtWXgJKe6ygWt2xR0yXs64BwWqtZbfxBojRn3jgW8UdFAkV5yiUOX3TQlsV6BZH1EQaUAVsccUeeA==} 50 | engines: {node: '>=14.*'} 51 | cpu: [x64] 52 | os: [darwin] 53 | requiresBuild: true 54 | dev: true 55 | optional: true 56 | 57 | /@biomejs/cli-linux-arm64-musl@1.6.3: 58 | resolution: {integrity: sha512-AntGCSfLN1nPcQj4VOk3X2JgnDw07DaPC8BuBmRcsRmn+7GPSWLllVN5awIKlRPZEbGJtSnLkTiDc5Bxw8OiuA==} 59 | engines: {node: '>=14.*'} 60 | cpu: [arm64] 61 | os: [linux] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@biomejs/cli-linux-arm64@1.6.3: 67 | resolution: {integrity: sha512-wFVkQw38kOssfnkbpSh6ums5TaElw3RAt5i/VZwHmgR2nQgE0fHXLO7HwIE9VBkOEdbiIFq+2PxvFIHuJF3z3Q==} 68 | engines: {node: '>=14.*'} 69 | cpu: [arm64] 70 | os: [linux] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@biomejs/cli-linux-x64-musl@1.6.3: 76 | resolution: {integrity: sha512-GelAvGsUwbxfFpKLG+7+dvDmbrfkGqn08sL8CMQrGnhjE1krAqHWiXQsjfmi0UMFdMsk7hbc4oSAP+1+mrXcHQ==} 77 | engines: {node: '>=14.*'} 78 | cpu: [x64] 79 | os: [linux] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@biomejs/cli-linux-x64@1.6.3: 85 | resolution: {integrity: sha512-vyn8TQaTZg617hjqFitwGmb1St5XXvq6I3vmxU/QFalM74BryMSvYCrYWb2Yw/TkykdEwZTMGYp+SWHRb04fTg==} 86 | engines: {node: '>=14.*'} 87 | cpu: [x64] 88 | os: [linux] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@biomejs/cli-win32-arm64@1.6.3: 94 | resolution: {integrity: sha512-Gx8N2Tixke6pAI1BniteCVZgUUmaFEDYosdWxoaCus15BZI/7RcBxhsRM0ZL/lC66StSQ8vHl8JBrrld1k570Q==} 95 | engines: {node: '>=14.*'} 96 | cpu: [arm64] 97 | os: [win32] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@biomejs/cli-win32-x64@1.6.3: 103 | resolution: {integrity: sha512-meungPJw64SqoR7LXY1wG7GC4+4wgpyThdFUMGXa6PCe0BLFOIOcZ9VMj9PstuczMPdgmt/BUMPsj25dK1VO8A==} 104 | engines: {node: '>=14.*'} 105 | cpu: [x64] 106 | os: [win32] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/aix-ppc64@0.19.12: 112 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 113 | engines: {node: '>=12'} 114 | cpu: [ppc64] 115 | os: [aix] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/android-arm64@0.19.12: 121 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 122 | engines: {node: '>=12'} 123 | cpu: [arm64] 124 | os: [android] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/android-arm@0.19.12: 130 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 131 | engines: {node: '>=12'} 132 | cpu: [arm] 133 | os: [android] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/android-x64@0.19.12: 139 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 140 | engines: {node: '>=12'} 141 | cpu: [x64] 142 | os: [android] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/darwin-arm64@0.19.12: 148 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 149 | engines: {node: '>=12'} 150 | cpu: [arm64] 151 | os: [darwin] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/darwin-x64@0.19.12: 157 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 158 | engines: {node: '>=12'} 159 | cpu: [x64] 160 | os: [darwin] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/freebsd-arm64@0.19.12: 166 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 167 | engines: {node: '>=12'} 168 | cpu: [arm64] 169 | os: [freebsd] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/freebsd-x64@0.19.12: 175 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 176 | engines: {node: '>=12'} 177 | cpu: [x64] 178 | os: [freebsd] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-arm64@0.19.12: 184 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 185 | engines: {node: '>=12'} 186 | cpu: [arm64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/linux-arm@0.19.12: 193 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 194 | engines: {node: '>=12'} 195 | cpu: [arm] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/linux-ia32@0.19.12: 202 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 203 | engines: {node: '>=12'} 204 | cpu: [ia32] 205 | os: [linux] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/linux-loong64@0.19.12: 211 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 212 | engines: {node: '>=12'} 213 | cpu: [loong64] 214 | os: [linux] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/linux-mips64el@0.19.12: 220 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 221 | engines: {node: '>=12'} 222 | cpu: [mips64el] 223 | os: [linux] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/linux-ppc64@0.19.12: 229 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 230 | engines: {node: '>=12'} 231 | cpu: [ppc64] 232 | os: [linux] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/linux-riscv64@0.19.12: 238 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 239 | engines: {node: '>=12'} 240 | cpu: [riscv64] 241 | os: [linux] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/linux-s390x@0.19.12: 247 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 248 | engines: {node: '>=12'} 249 | cpu: [s390x] 250 | os: [linux] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/linux-x64@0.19.12: 256 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 257 | engines: {node: '>=12'} 258 | cpu: [x64] 259 | os: [linux] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/netbsd-x64@0.19.12: 265 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 266 | engines: {node: '>=12'} 267 | cpu: [x64] 268 | os: [netbsd] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@esbuild/openbsd-x64@0.19.12: 274 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 275 | engines: {node: '>=12'} 276 | cpu: [x64] 277 | os: [openbsd] 278 | requiresBuild: true 279 | dev: true 280 | optional: true 281 | 282 | /@esbuild/sunos-x64@0.19.12: 283 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 284 | engines: {node: '>=12'} 285 | cpu: [x64] 286 | os: [sunos] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/win32-arm64@0.19.12: 292 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 293 | engines: {node: '>=12'} 294 | cpu: [arm64] 295 | os: [win32] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/win32-ia32@0.19.12: 301 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 302 | engines: {node: '>=12'} 303 | cpu: [ia32] 304 | os: [win32] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/win32-x64@0.19.12: 310 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 311 | engines: {node: '>=12'} 312 | cpu: [x64] 313 | os: [win32] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@isaacs/cliui@8.0.2: 319 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 320 | engines: {node: '>=12'} 321 | dependencies: 322 | string-width: 5.1.2 323 | string-width-cjs: /string-width@4.2.3 324 | strip-ansi: 7.1.0 325 | strip-ansi-cjs: /strip-ansi@6.0.1 326 | wrap-ansi: 8.1.0 327 | wrap-ansi-cjs: /wrap-ansi@7.0.0 328 | dev: true 329 | 330 | /@jridgewell/gen-mapping@0.3.5: 331 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 332 | engines: {node: '>=6.0.0'} 333 | dependencies: 334 | '@jridgewell/set-array': 1.2.1 335 | '@jridgewell/sourcemap-codec': 1.4.15 336 | '@jridgewell/trace-mapping': 0.3.25 337 | dev: true 338 | 339 | /@jridgewell/resolve-uri@3.1.2: 340 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 341 | engines: {node: '>=6.0.0'} 342 | dev: true 343 | 344 | /@jridgewell/set-array@1.2.1: 345 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 346 | engines: {node: '>=6.0.0'} 347 | dev: true 348 | 349 | /@jridgewell/sourcemap-codec@1.4.15: 350 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 351 | dev: true 352 | 353 | /@jridgewell/trace-mapping@0.3.25: 354 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 355 | dependencies: 356 | '@jridgewell/resolve-uri': 3.1.2 357 | '@jridgewell/sourcemap-codec': 1.4.15 358 | dev: true 359 | 360 | /@nodelib/fs.scandir@2.1.5: 361 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 362 | engines: {node: '>= 8'} 363 | dependencies: 364 | '@nodelib/fs.stat': 2.0.5 365 | run-parallel: 1.2.0 366 | dev: true 367 | 368 | /@nodelib/fs.stat@2.0.5: 369 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 370 | engines: {node: '>= 8'} 371 | dev: true 372 | 373 | /@nodelib/fs.walk@1.2.8: 374 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 375 | engines: {node: '>= 8'} 376 | dependencies: 377 | '@nodelib/fs.scandir': 2.1.5 378 | fastq: 1.17.1 379 | dev: true 380 | 381 | /@pkgjs/parseargs@0.11.0: 382 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 383 | engines: {node: '>=14'} 384 | requiresBuild: true 385 | dev: true 386 | optional: true 387 | 388 | /@rollup/rollup-android-arm-eabi@4.13.0: 389 | resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} 390 | cpu: [arm] 391 | os: [android] 392 | requiresBuild: true 393 | dev: true 394 | optional: true 395 | 396 | /@rollup/rollup-android-arm64@4.13.0: 397 | resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} 398 | cpu: [arm64] 399 | os: [android] 400 | requiresBuild: true 401 | dev: true 402 | optional: true 403 | 404 | /@rollup/rollup-darwin-arm64@4.13.0: 405 | resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} 406 | cpu: [arm64] 407 | os: [darwin] 408 | requiresBuild: true 409 | dev: true 410 | optional: true 411 | 412 | /@rollup/rollup-darwin-x64@4.13.0: 413 | resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} 414 | cpu: [x64] 415 | os: [darwin] 416 | requiresBuild: true 417 | dev: true 418 | optional: true 419 | 420 | /@rollup/rollup-linux-arm-gnueabihf@4.13.0: 421 | resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} 422 | cpu: [arm] 423 | os: [linux] 424 | requiresBuild: true 425 | dev: true 426 | optional: true 427 | 428 | /@rollup/rollup-linux-arm64-gnu@4.13.0: 429 | resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} 430 | cpu: [arm64] 431 | os: [linux] 432 | requiresBuild: true 433 | dev: true 434 | optional: true 435 | 436 | /@rollup/rollup-linux-arm64-musl@4.13.0: 437 | resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} 438 | cpu: [arm64] 439 | os: [linux] 440 | requiresBuild: true 441 | dev: true 442 | optional: true 443 | 444 | /@rollup/rollup-linux-riscv64-gnu@4.13.0: 445 | resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} 446 | cpu: [riscv64] 447 | os: [linux] 448 | requiresBuild: true 449 | dev: true 450 | optional: true 451 | 452 | /@rollup/rollup-linux-x64-gnu@4.13.0: 453 | resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} 454 | cpu: [x64] 455 | os: [linux] 456 | requiresBuild: true 457 | dev: true 458 | optional: true 459 | 460 | /@rollup/rollup-linux-x64-musl@4.13.0: 461 | resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} 462 | cpu: [x64] 463 | os: [linux] 464 | requiresBuild: true 465 | dev: true 466 | optional: true 467 | 468 | /@rollup/rollup-win32-arm64-msvc@4.13.0: 469 | resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} 470 | cpu: [arm64] 471 | os: [win32] 472 | requiresBuild: true 473 | dev: true 474 | optional: true 475 | 476 | /@rollup/rollup-win32-ia32-msvc@4.13.0: 477 | resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} 478 | cpu: [ia32] 479 | os: [win32] 480 | requiresBuild: true 481 | dev: true 482 | optional: true 483 | 484 | /@rollup/rollup-win32-x64-msvc@4.13.0: 485 | resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} 486 | cpu: [x64] 487 | os: [win32] 488 | requiresBuild: true 489 | dev: true 490 | optional: true 491 | 492 | /@types/estree@1.0.5: 493 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 494 | dev: true 495 | 496 | /@types/node@20.11.30: 497 | resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} 498 | dependencies: 499 | undici-types: 5.26.5 500 | dev: true 501 | 502 | /ansi-regex@5.0.1: 503 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 504 | engines: {node: '>=8'} 505 | dev: true 506 | 507 | /ansi-regex@6.0.1: 508 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 509 | engines: {node: '>=12'} 510 | dev: true 511 | 512 | /ansi-styles@4.3.0: 513 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 514 | engines: {node: '>=8'} 515 | dependencies: 516 | color-convert: 2.0.1 517 | dev: true 518 | 519 | /ansi-styles@6.2.1: 520 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 521 | engines: {node: '>=12'} 522 | dev: true 523 | 524 | /any-promise@1.3.0: 525 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 526 | dev: true 527 | 528 | /anymatch@3.1.3: 529 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 530 | engines: {node: '>= 8'} 531 | dependencies: 532 | normalize-path: 3.0.0 533 | picomatch: 2.3.1 534 | dev: true 535 | 536 | /array-union@2.1.0: 537 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 538 | engines: {node: '>=8'} 539 | dev: true 540 | 541 | /balanced-match@1.0.2: 542 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 543 | dev: true 544 | 545 | /binary-extensions@2.3.0: 546 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 547 | engines: {node: '>=8'} 548 | dev: true 549 | 550 | /brace-expansion@2.0.1: 551 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 552 | dependencies: 553 | balanced-match: 1.0.2 554 | dev: true 555 | 556 | /braces@3.0.2: 557 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 558 | engines: {node: '>=8'} 559 | dependencies: 560 | fill-range: 7.0.1 561 | dev: true 562 | 563 | /bundle-require@4.0.2(esbuild@0.19.12): 564 | resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} 565 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 566 | peerDependencies: 567 | esbuild: '>=0.17' 568 | dependencies: 569 | esbuild: 0.19.12 570 | load-tsconfig: 0.2.5 571 | dev: true 572 | 573 | /cac@6.7.14: 574 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 575 | engines: {node: '>=8'} 576 | dev: true 577 | 578 | /chokidar@3.6.0: 579 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 580 | engines: {node: '>= 8.10.0'} 581 | dependencies: 582 | anymatch: 3.1.3 583 | braces: 3.0.2 584 | glob-parent: 5.1.2 585 | is-binary-path: 2.1.0 586 | is-glob: 4.0.3 587 | normalize-path: 3.0.0 588 | readdirp: 3.6.0 589 | optionalDependencies: 590 | fsevents: 2.3.3 591 | dev: true 592 | 593 | /color-convert@2.0.1: 594 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 595 | engines: {node: '>=7.0.0'} 596 | dependencies: 597 | color-name: 1.1.4 598 | dev: true 599 | 600 | /color-name@1.1.4: 601 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 602 | dev: true 603 | 604 | /commander@4.1.1: 605 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 606 | engines: {node: '>= 6'} 607 | dev: true 608 | 609 | /cross-spawn@7.0.3: 610 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 611 | engines: {node: '>= 8'} 612 | dependencies: 613 | path-key: 3.1.1 614 | shebang-command: 2.0.0 615 | which: 2.0.2 616 | dev: true 617 | 618 | /debug@4.3.4: 619 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 620 | engines: {node: '>=6.0'} 621 | peerDependencies: 622 | supports-color: '*' 623 | peerDependenciesMeta: 624 | supports-color: 625 | optional: true 626 | dependencies: 627 | ms: 2.1.2 628 | dev: true 629 | 630 | /dir-glob@3.0.1: 631 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 632 | engines: {node: '>=8'} 633 | dependencies: 634 | path-type: 4.0.0 635 | dev: true 636 | 637 | /eastasianwidth@0.2.0: 638 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 639 | dev: true 640 | 641 | /emoji-regex@8.0.0: 642 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 643 | dev: true 644 | 645 | /emoji-regex@9.2.2: 646 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 647 | dev: true 648 | 649 | /esbuild@0.19.12: 650 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 651 | engines: {node: '>=12'} 652 | hasBin: true 653 | requiresBuild: true 654 | optionalDependencies: 655 | '@esbuild/aix-ppc64': 0.19.12 656 | '@esbuild/android-arm': 0.19.12 657 | '@esbuild/android-arm64': 0.19.12 658 | '@esbuild/android-x64': 0.19.12 659 | '@esbuild/darwin-arm64': 0.19.12 660 | '@esbuild/darwin-x64': 0.19.12 661 | '@esbuild/freebsd-arm64': 0.19.12 662 | '@esbuild/freebsd-x64': 0.19.12 663 | '@esbuild/linux-arm': 0.19.12 664 | '@esbuild/linux-arm64': 0.19.12 665 | '@esbuild/linux-ia32': 0.19.12 666 | '@esbuild/linux-loong64': 0.19.12 667 | '@esbuild/linux-mips64el': 0.19.12 668 | '@esbuild/linux-ppc64': 0.19.12 669 | '@esbuild/linux-riscv64': 0.19.12 670 | '@esbuild/linux-s390x': 0.19.12 671 | '@esbuild/linux-x64': 0.19.12 672 | '@esbuild/netbsd-x64': 0.19.12 673 | '@esbuild/openbsd-x64': 0.19.12 674 | '@esbuild/sunos-x64': 0.19.12 675 | '@esbuild/win32-arm64': 0.19.12 676 | '@esbuild/win32-ia32': 0.19.12 677 | '@esbuild/win32-x64': 0.19.12 678 | dev: true 679 | 680 | /execa@5.1.1: 681 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 682 | engines: {node: '>=10'} 683 | dependencies: 684 | cross-spawn: 7.0.3 685 | get-stream: 6.0.1 686 | human-signals: 2.1.0 687 | is-stream: 2.0.1 688 | merge-stream: 2.0.0 689 | npm-run-path: 4.0.1 690 | onetime: 5.1.2 691 | signal-exit: 3.0.7 692 | strip-final-newline: 2.0.0 693 | dev: true 694 | 695 | /fast-glob@3.3.2: 696 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 697 | engines: {node: '>=8.6.0'} 698 | dependencies: 699 | '@nodelib/fs.stat': 2.0.5 700 | '@nodelib/fs.walk': 1.2.8 701 | glob-parent: 5.1.2 702 | merge2: 1.4.1 703 | micromatch: 4.0.5 704 | dev: true 705 | 706 | /fastq@1.17.1: 707 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 708 | dependencies: 709 | reusify: 1.0.4 710 | dev: true 711 | 712 | /fill-range@7.0.1: 713 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 714 | engines: {node: '>=8'} 715 | dependencies: 716 | to-regex-range: 5.0.1 717 | dev: true 718 | 719 | /foreground-child@3.1.1: 720 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 721 | engines: {node: '>=14'} 722 | dependencies: 723 | cross-spawn: 7.0.3 724 | signal-exit: 4.1.0 725 | dev: true 726 | 727 | /fsevents@2.3.3: 728 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 729 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 730 | os: [darwin] 731 | requiresBuild: true 732 | dev: true 733 | optional: true 734 | 735 | /get-stream@6.0.1: 736 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 737 | engines: {node: '>=10'} 738 | dev: true 739 | 740 | /glob-parent@5.1.2: 741 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 742 | engines: {node: '>= 6'} 743 | dependencies: 744 | is-glob: 4.0.3 745 | dev: true 746 | 747 | /glob@10.3.10: 748 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 749 | engines: {node: '>=16 || 14 >=14.17'} 750 | hasBin: true 751 | dependencies: 752 | foreground-child: 3.1.1 753 | jackspeak: 2.3.6 754 | minimatch: 9.0.3 755 | minipass: 7.0.4 756 | path-scurry: 1.10.1 757 | dev: true 758 | 759 | /globby@11.1.0: 760 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 761 | engines: {node: '>=10'} 762 | dependencies: 763 | array-union: 2.1.0 764 | dir-glob: 3.0.1 765 | fast-glob: 3.3.2 766 | ignore: 5.3.1 767 | merge2: 1.4.1 768 | slash: 3.0.0 769 | dev: true 770 | 771 | /human-signals@2.1.0: 772 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 773 | engines: {node: '>=10.17.0'} 774 | dev: true 775 | 776 | /ignore@5.3.1: 777 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 778 | engines: {node: '>= 4'} 779 | dev: true 780 | 781 | /is-binary-path@2.1.0: 782 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 783 | engines: {node: '>=8'} 784 | dependencies: 785 | binary-extensions: 2.3.0 786 | dev: true 787 | 788 | /is-extglob@2.1.1: 789 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 790 | engines: {node: '>=0.10.0'} 791 | dev: true 792 | 793 | /is-fullwidth-code-point@3.0.0: 794 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 795 | engines: {node: '>=8'} 796 | dev: true 797 | 798 | /is-glob@4.0.3: 799 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 800 | engines: {node: '>=0.10.0'} 801 | dependencies: 802 | is-extglob: 2.1.1 803 | dev: true 804 | 805 | /is-number@7.0.0: 806 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 807 | engines: {node: '>=0.12.0'} 808 | dev: true 809 | 810 | /is-stream@2.0.1: 811 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 812 | engines: {node: '>=8'} 813 | dev: true 814 | 815 | /isexe@2.0.0: 816 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 817 | dev: true 818 | 819 | /jackspeak@2.3.6: 820 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 821 | engines: {node: '>=14'} 822 | dependencies: 823 | '@isaacs/cliui': 8.0.2 824 | optionalDependencies: 825 | '@pkgjs/parseargs': 0.11.0 826 | dev: true 827 | 828 | /joycon@3.1.1: 829 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 830 | engines: {node: '>=10'} 831 | dev: true 832 | 833 | /lilconfig@3.1.1: 834 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 835 | engines: {node: '>=14'} 836 | dev: true 837 | 838 | /lines-and-columns@1.2.4: 839 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 840 | dev: true 841 | 842 | /load-tsconfig@0.2.5: 843 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 844 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 845 | dev: true 846 | 847 | /lodash.sortby@4.7.0: 848 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 849 | dev: true 850 | 851 | /lru-cache@10.2.0: 852 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 853 | engines: {node: 14 || >=16.14} 854 | dev: true 855 | 856 | /merge-stream@2.0.0: 857 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 858 | dev: true 859 | 860 | /merge2@1.4.1: 861 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 862 | engines: {node: '>= 8'} 863 | dev: true 864 | 865 | /micromatch@4.0.5: 866 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 867 | engines: {node: '>=8.6'} 868 | dependencies: 869 | braces: 3.0.2 870 | picomatch: 2.3.1 871 | dev: true 872 | 873 | /mimic-fn@2.1.0: 874 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 875 | engines: {node: '>=6'} 876 | dev: true 877 | 878 | /minimatch@9.0.3: 879 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 880 | engines: {node: '>=16 || 14 >=14.17'} 881 | dependencies: 882 | brace-expansion: 2.0.1 883 | dev: true 884 | 885 | /minipass@7.0.4: 886 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 887 | engines: {node: '>=16 || 14 >=14.17'} 888 | dev: true 889 | 890 | /ms@2.1.2: 891 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 892 | dev: true 893 | 894 | /mz@2.7.0: 895 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 896 | dependencies: 897 | any-promise: 1.3.0 898 | object-assign: 4.1.1 899 | thenify-all: 1.6.0 900 | dev: true 901 | 902 | /normalize-path@3.0.0: 903 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 904 | engines: {node: '>=0.10.0'} 905 | dev: true 906 | 907 | /npm-run-path@4.0.1: 908 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 909 | engines: {node: '>=8'} 910 | dependencies: 911 | path-key: 3.1.1 912 | dev: true 913 | 914 | /object-assign@4.1.1: 915 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 916 | engines: {node: '>=0.10.0'} 917 | dev: true 918 | 919 | /onetime@5.1.2: 920 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 921 | engines: {node: '>=6'} 922 | dependencies: 923 | mimic-fn: 2.1.0 924 | dev: true 925 | 926 | /path-key@3.1.1: 927 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 928 | engines: {node: '>=8'} 929 | dev: true 930 | 931 | /path-scurry@1.10.1: 932 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} 933 | engines: {node: '>=16 || 14 >=14.17'} 934 | dependencies: 935 | lru-cache: 10.2.0 936 | minipass: 7.0.4 937 | dev: true 938 | 939 | /path-type@4.0.0: 940 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 941 | engines: {node: '>=8'} 942 | dev: true 943 | 944 | /picomatch@2.3.1: 945 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 946 | engines: {node: '>=8.6'} 947 | dev: true 948 | 949 | /pirates@4.0.6: 950 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 951 | engines: {node: '>= 6'} 952 | dev: true 953 | 954 | /postcss-load-config@4.0.2: 955 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 956 | engines: {node: '>= 14'} 957 | peerDependencies: 958 | postcss: '>=8.0.9' 959 | ts-node: '>=9.0.0' 960 | peerDependenciesMeta: 961 | postcss: 962 | optional: true 963 | ts-node: 964 | optional: true 965 | dependencies: 966 | lilconfig: 3.1.1 967 | yaml: 2.4.1 968 | dev: true 969 | 970 | /punycode@2.3.1: 971 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 972 | engines: {node: '>=6'} 973 | dev: true 974 | 975 | /queue-microtask@1.2.3: 976 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 977 | dev: true 978 | 979 | /readdirp@3.6.0: 980 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 981 | engines: {node: '>=8.10.0'} 982 | dependencies: 983 | picomatch: 2.3.1 984 | dev: true 985 | 986 | /resolve-from@5.0.0: 987 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 988 | engines: {node: '>=8'} 989 | dev: true 990 | 991 | /reusify@1.0.4: 992 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 993 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 994 | dev: true 995 | 996 | /rollup@4.13.0: 997 | resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} 998 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 999 | hasBin: true 1000 | dependencies: 1001 | '@types/estree': 1.0.5 1002 | optionalDependencies: 1003 | '@rollup/rollup-android-arm-eabi': 4.13.0 1004 | '@rollup/rollup-android-arm64': 4.13.0 1005 | '@rollup/rollup-darwin-arm64': 4.13.0 1006 | '@rollup/rollup-darwin-x64': 4.13.0 1007 | '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 1008 | '@rollup/rollup-linux-arm64-gnu': 4.13.0 1009 | '@rollup/rollup-linux-arm64-musl': 4.13.0 1010 | '@rollup/rollup-linux-riscv64-gnu': 4.13.0 1011 | '@rollup/rollup-linux-x64-gnu': 4.13.0 1012 | '@rollup/rollup-linux-x64-musl': 4.13.0 1013 | '@rollup/rollup-win32-arm64-msvc': 4.13.0 1014 | '@rollup/rollup-win32-ia32-msvc': 4.13.0 1015 | '@rollup/rollup-win32-x64-msvc': 4.13.0 1016 | fsevents: 2.3.3 1017 | dev: true 1018 | 1019 | /run-parallel@1.2.0: 1020 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1021 | dependencies: 1022 | queue-microtask: 1.2.3 1023 | dev: true 1024 | 1025 | /shebang-command@2.0.0: 1026 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1027 | engines: {node: '>=8'} 1028 | dependencies: 1029 | shebang-regex: 3.0.0 1030 | dev: true 1031 | 1032 | /shebang-regex@3.0.0: 1033 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1034 | engines: {node: '>=8'} 1035 | dev: true 1036 | 1037 | /signal-exit@3.0.7: 1038 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1039 | dev: true 1040 | 1041 | /signal-exit@4.1.0: 1042 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1043 | engines: {node: '>=14'} 1044 | dev: true 1045 | 1046 | /slash@3.0.0: 1047 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1048 | engines: {node: '>=8'} 1049 | dev: true 1050 | 1051 | /source-map@0.8.0-beta.0: 1052 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1053 | engines: {node: '>= 8'} 1054 | dependencies: 1055 | whatwg-url: 7.1.0 1056 | dev: true 1057 | 1058 | /string-width@4.2.3: 1059 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1060 | engines: {node: '>=8'} 1061 | dependencies: 1062 | emoji-regex: 8.0.0 1063 | is-fullwidth-code-point: 3.0.0 1064 | strip-ansi: 6.0.1 1065 | dev: true 1066 | 1067 | /string-width@5.1.2: 1068 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1069 | engines: {node: '>=12'} 1070 | dependencies: 1071 | eastasianwidth: 0.2.0 1072 | emoji-regex: 9.2.2 1073 | strip-ansi: 7.1.0 1074 | dev: true 1075 | 1076 | /strip-ansi@6.0.1: 1077 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1078 | engines: {node: '>=8'} 1079 | dependencies: 1080 | ansi-regex: 5.0.1 1081 | dev: true 1082 | 1083 | /strip-ansi@7.1.0: 1084 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1085 | engines: {node: '>=12'} 1086 | dependencies: 1087 | ansi-regex: 6.0.1 1088 | dev: true 1089 | 1090 | /strip-final-newline@2.0.0: 1091 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1092 | engines: {node: '>=6'} 1093 | dev: true 1094 | 1095 | /sucrase@3.35.0: 1096 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1097 | engines: {node: '>=16 || 14 >=14.17'} 1098 | hasBin: true 1099 | dependencies: 1100 | '@jridgewell/gen-mapping': 0.3.5 1101 | commander: 4.1.1 1102 | glob: 10.3.10 1103 | lines-and-columns: 1.2.4 1104 | mz: 2.7.0 1105 | pirates: 4.0.6 1106 | ts-interface-checker: 0.1.13 1107 | dev: true 1108 | 1109 | /thenify-all@1.6.0: 1110 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1111 | engines: {node: '>=0.8'} 1112 | dependencies: 1113 | thenify: 3.3.1 1114 | dev: true 1115 | 1116 | /thenify@3.3.1: 1117 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1118 | dependencies: 1119 | any-promise: 1.3.0 1120 | dev: true 1121 | 1122 | /to-regex-range@5.0.1: 1123 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1124 | engines: {node: '>=8.0'} 1125 | dependencies: 1126 | is-number: 7.0.0 1127 | dev: true 1128 | 1129 | /tr46@1.0.1: 1130 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1131 | dependencies: 1132 | punycode: 2.3.1 1133 | dev: true 1134 | 1135 | /tree-kill@1.2.2: 1136 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1137 | hasBin: true 1138 | dev: true 1139 | 1140 | /ts-interface-checker@0.1.13: 1141 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1142 | dev: true 1143 | 1144 | /tsup@8.0.2(typescript@5.4.3): 1145 | resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} 1146 | engines: {node: '>=18'} 1147 | hasBin: true 1148 | peerDependencies: 1149 | '@microsoft/api-extractor': ^7.36.0 1150 | '@swc/core': ^1 1151 | postcss: ^8.4.12 1152 | typescript: '>=4.5.0' 1153 | peerDependenciesMeta: 1154 | '@microsoft/api-extractor': 1155 | optional: true 1156 | '@swc/core': 1157 | optional: true 1158 | postcss: 1159 | optional: true 1160 | typescript: 1161 | optional: true 1162 | dependencies: 1163 | bundle-require: 4.0.2(esbuild@0.19.12) 1164 | cac: 6.7.14 1165 | chokidar: 3.6.0 1166 | debug: 4.3.4 1167 | esbuild: 0.19.12 1168 | execa: 5.1.1 1169 | globby: 11.1.0 1170 | joycon: 3.1.1 1171 | postcss-load-config: 4.0.2 1172 | resolve-from: 5.0.0 1173 | rollup: 4.13.0 1174 | source-map: 0.8.0-beta.0 1175 | sucrase: 3.35.0 1176 | tree-kill: 1.2.2 1177 | typescript: 5.4.3 1178 | transitivePeerDependencies: 1179 | - supports-color 1180 | - ts-node 1181 | dev: true 1182 | 1183 | /typescript@5.4.3: 1184 | resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} 1185 | engines: {node: '>=14.17'} 1186 | hasBin: true 1187 | dev: true 1188 | 1189 | /undici-types@5.26.5: 1190 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 1191 | dev: true 1192 | 1193 | /webidl-conversions@4.0.2: 1194 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1195 | dev: true 1196 | 1197 | /whatwg-url@7.1.0: 1198 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1199 | dependencies: 1200 | lodash.sortby: 4.7.0 1201 | tr46: 1.0.1 1202 | webidl-conversions: 4.0.2 1203 | dev: true 1204 | 1205 | /which@2.0.2: 1206 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1207 | engines: {node: '>= 8'} 1208 | hasBin: true 1209 | dependencies: 1210 | isexe: 2.0.0 1211 | dev: true 1212 | 1213 | /wrap-ansi@7.0.0: 1214 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1215 | engines: {node: '>=10'} 1216 | dependencies: 1217 | ansi-styles: 4.3.0 1218 | string-width: 4.2.3 1219 | strip-ansi: 6.0.1 1220 | dev: true 1221 | 1222 | /wrap-ansi@8.1.0: 1223 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1224 | engines: {node: '>=12'} 1225 | dependencies: 1226 | ansi-styles: 6.2.1 1227 | string-width: 5.1.2 1228 | strip-ansi: 7.1.0 1229 | dev: true 1230 | 1231 | /yaml@2.4.1: 1232 | resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 1233 | engines: {node: '>= 14'} 1234 | hasBin: true 1235 | dev: true 1236 | -------------------------------------------------------------------------------- /examples/vite+react/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@glamboyosa/ore': 9 | specifier: ^0.0.1 10 | version: 0.0.1 11 | react: 12 | specifier: ^18.2.0 13 | version: 18.2.0 14 | react-dom: 15 | specifier: ^18.2.0 16 | version: 18.2.0(react@18.2.0) 17 | 18 | devDependencies: 19 | '@types/react': 20 | specifier: ^18.2.66 21 | version: 18.2.72 22 | '@types/react-dom': 23 | specifier: ^18.2.22 24 | version: 18.2.22 25 | '@typescript-eslint/eslint-plugin': 26 | specifier: ^7.2.0 27 | version: 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) 28 | '@typescript-eslint/parser': 29 | specifier: ^7.2.0 30 | version: 7.4.0(eslint@8.57.0)(typescript@5.4.3) 31 | '@vitejs/plugin-react': 32 | specifier: ^4.2.1 33 | version: 4.2.1(vite@5.2.6) 34 | eslint: 35 | specifier: ^8.57.0 36 | version: 8.57.0 37 | eslint-plugin-react-hooks: 38 | specifier: ^4.6.0 39 | version: 4.6.0(eslint@8.57.0) 40 | eslint-plugin-react-refresh: 41 | specifier: ^0.4.6 42 | version: 0.4.6(eslint@8.57.0) 43 | typescript: 44 | specifier: ^5.2.2 45 | version: 5.4.3 46 | vite: 47 | specifier: ^5.2.0 48 | version: 5.2.6 49 | 50 | packages: 51 | 52 | /@aashutoshrathi/word-wrap@1.2.6: 53 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 54 | engines: {node: '>=0.10.0'} 55 | dev: true 56 | 57 | /@ampproject/remapping@2.3.0: 58 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 59 | engines: {node: '>=6.0.0'} 60 | dependencies: 61 | '@jridgewell/gen-mapping': 0.3.5 62 | '@jridgewell/trace-mapping': 0.3.25 63 | dev: true 64 | 65 | /@babel/code-frame@7.24.2: 66 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 67 | engines: {node: '>=6.9.0'} 68 | dependencies: 69 | '@babel/highlight': 7.24.2 70 | picocolors: 1.0.0 71 | dev: true 72 | 73 | /@babel/compat-data@7.24.1: 74 | resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} 75 | engines: {node: '>=6.9.0'} 76 | dev: true 77 | 78 | /@babel/core@7.24.3: 79 | resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} 80 | engines: {node: '>=6.9.0'} 81 | dependencies: 82 | '@ampproject/remapping': 2.3.0 83 | '@babel/code-frame': 7.24.2 84 | '@babel/generator': 7.24.1 85 | '@babel/helper-compilation-targets': 7.23.6 86 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 87 | '@babel/helpers': 7.24.1 88 | '@babel/parser': 7.24.1 89 | '@babel/template': 7.24.0 90 | '@babel/traverse': 7.24.1 91 | '@babel/types': 7.24.0 92 | convert-source-map: 2.0.0 93 | debug: 4.3.4 94 | gensync: 1.0.0-beta.2 95 | json5: 2.2.3 96 | semver: 6.3.1 97 | transitivePeerDependencies: 98 | - supports-color 99 | dev: true 100 | 101 | /@babel/generator@7.24.1: 102 | resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} 103 | engines: {node: '>=6.9.0'} 104 | dependencies: 105 | '@babel/types': 7.24.0 106 | '@jridgewell/gen-mapping': 0.3.5 107 | '@jridgewell/trace-mapping': 0.3.25 108 | jsesc: 2.5.2 109 | dev: true 110 | 111 | /@babel/helper-compilation-targets@7.23.6: 112 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 113 | engines: {node: '>=6.9.0'} 114 | dependencies: 115 | '@babel/compat-data': 7.24.1 116 | '@babel/helper-validator-option': 7.23.5 117 | browserslist: 4.23.0 118 | lru-cache: 5.1.1 119 | semver: 6.3.1 120 | dev: true 121 | 122 | /@babel/helper-environment-visitor@7.22.20: 123 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 124 | engines: {node: '>=6.9.0'} 125 | dev: true 126 | 127 | /@babel/helper-function-name@7.23.0: 128 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 129 | engines: {node: '>=6.9.0'} 130 | dependencies: 131 | '@babel/template': 7.24.0 132 | '@babel/types': 7.24.0 133 | dev: true 134 | 135 | /@babel/helper-hoist-variables@7.22.5: 136 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 137 | engines: {node: '>=6.9.0'} 138 | dependencies: 139 | '@babel/types': 7.24.0 140 | dev: true 141 | 142 | /@babel/helper-module-imports@7.24.3: 143 | resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} 144 | engines: {node: '>=6.9.0'} 145 | dependencies: 146 | '@babel/types': 7.24.0 147 | dev: true 148 | 149 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): 150 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 151 | engines: {node: '>=6.9.0'} 152 | peerDependencies: 153 | '@babel/core': ^7.0.0 154 | dependencies: 155 | '@babel/core': 7.24.3 156 | '@babel/helper-environment-visitor': 7.22.20 157 | '@babel/helper-module-imports': 7.24.3 158 | '@babel/helper-simple-access': 7.22.5 159 | '@babel/helper-split-export-declaration': 7.22.6 160 | '@babel/helper-validator-identifier': 7.22.20 161 | dev: true 162 | 163 | /@babel/helper-plugin-utils@7.24.0: 164 | resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} 165 | engines: {node: '>=6.9.0'} 166 | dev: true 167 | 168 | /@babel/helper-simple-access@7.22.5: 169 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 170 | engines: {node: '>=6.9.0'} 171 | dependencies: 172 | '@babel/types': 7.24.0 173 | dev: true 174 | 175 | /@babel/helper-split-export-declaration@7.22.6: 176 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 177 | engines: {node: '>=6.9.0'} 178 | dependencies: 179 | '@babel/types': 7.24.0 180 | dev: true 181 | 182 | /@babel/helper-string-parser@7.24.1: 183 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 184 | engines: {node: '>=6.9.0'} 185 | dev: true 186 | 187 | /@babel/helper-validator-identifier@7.22.20: 188 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 189 | engines: {node: '>=6.9.0'} 190 | dev: true 191 | 192 | /@babel/helper-validator-option@7.23.5: 193 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 194 | engines: {node: '>=6.9.0'} 195 | dev: true 196 | 197 | /@babel/helpers@7.24.1: 198 | resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} 199 | engines: {node: '>=6.9.0'} 200 | dependencies: 201 | '@babel/template': 7.24.0 202 | '@babel/traverse': 7.24.1 203 | '@babel/types': 7.24.0 204 | transitivePeerDependencies: 205 | - supports-color 206 | dev: true 207 | 208 | /@babel/highlight@7.24.2: 209 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 210 | engines: {node: '>=6.9.0'} 211 | dependencies: 212 | '@babel/helper-validator-identifier': 7.22.20 213 | chalk: 2.4.2 214 | js-tokens: 4.0.0 215 | picocolors: 1.0.0 216 | dev: true 217 | 218 | /@babel/parser@7.24.1: 219 | resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} 220 | engines: {node: '>=6.0.0'} 221 | hasBin: true 222 | dependencies: 223 | '@babel/types': 7.24.0 224 | dev: true 225 | 226 | /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.3): 227 | resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} 228 | engines: {node: '>=6.9.0'} 229 | peerDependencies: 230 | '@babel/core': ^7.0.0-0 231 | dependencies: 232 | '@babel/core': 7.24.3 233 | '@babel/helper-plugin-utils': 7.24.0 234 | dev: true 235 | 236 | /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.3): 237 | resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} 238 | engines: {node: '>=6.9.0'} 239 | peerDependencies: 240 | '@babel/core': ^7.0.0-0 241 | dependencies: 242 | '@babel/core': 7.24.3 243 | '@babel/helper-plugin-utils': 7.24.0 244 | dev: true 245 | 246 | /@babel/template@7.24.0: 247 | resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} 248 | engines: {node: '>=6.9.0'} 249 | dependencies: 250 | '@babel/code-frame': 7.24.2 251 | '@babel/parser': 7.24.1 252 | '@babel/types': 7.24.0 253 | dev: true 254 | 255 | /@babel/traverse@7.24.1: 256 | resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} 257 | engines: {node: '>=6.9.0'} 258 | dependencies: 259 | '@babel/code-frame': 7.24.2 260 | '@babel/generator': 7.24.1 261 | '@babel/helper-environment-visitor': 7.22.20 262 | '@babel/helper-function-name': 7.23.0 263 | '@babel/helper-hoist-variables': 7.22.5 264 | '@babel/helper-split-export-declaration': 7.22.6 265 | '@babel/parser': 7.24.1 266 | '@babel/types': 7.24.0 267 | debug: 4.3.4 268 | globals: 11.12.0 269 | transitivePeerDependencies: 270 | - supports-color 271 | dev: true 272 | 273 | /@babel/types@7.24.0: 274 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 275 | engines: {node: '>=6.9.0'} 276 | dependencies: 277 | '@babel/helper-string-parser': 7.24.1 278 | '@babel/helper-validator-identifier': 7.22.20 279 | to-fast-properties: 2.0.0 280 | dev: true 281 | 282 | /@esbuild/aix-ppc64@0.20.2: 283 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 284 | engines: {node: '>=12'} 285 | cpu: [ppc64] 286 | os: [aix] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/android-arm64@0.20.2: 292 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 293 | engines: {node: '>=12'} 294 | cpu: [arm64] 295 | os: [android] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/android-arm@0.20.2: 301 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 302 | engines: {node: '>=12'} 303 | cpu: [arm] 304 | os: [android] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/android-x64@0.20.2: 310 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 311 | engines: {node: '>=12'} 312 | cpu: [x64] 313 | os: [android] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@esbuild/darwin-arm64@0.20.2: 319 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 320 | engines: {node: '>=12'} 321 | cpu: [arm64] 322 | os: [darwin] 323 | requiresBuild: true 324 | dev: true 325 | optional: true 326 | 327 | /@esbuild/darwin-x64@0.20.2: 328 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 329 | engines: {node: '>=12'} 330 | cpu: [x64] 331 | os: [darwin] 332 | requiresBuild: true 333 | dev: true 334 | optional: true 335 | 336 | /@esbuild/freebsd-arm64@0.20.2: 337 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 338 | engines: {node: '>=12'} 339 | cpu: [arm64] 340 | os: [freebsd] 341 | requiresBuild: true 342 | dev: true 343 | optional: true 344 | 345 | /@esbuild/freebsd-x64@0.20.2: 346 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 347 | engines: {node: '>=12'} 348 | cpu: [x64] 349 | os: [freebsd] 350 | requiresBuild: true 351 | dev: true 352 | optional: true 353 | 354 | /@esbuild/linux-arm64@0.20.2: 355 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 356 | engines: {node: '>=12'} 357 | cpu: [arm64] 358 | os: [linux] 359 | requiresBuild: true 360 | dev: true 361 | optional: true 362 | 363 | /@esbuild/linux-arm@0.20.2: 364 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 365 | engines: {node: '>=12'} 366 | cpu: [arm] 367 | os: [linux] 368 | requiresBuild: true 369 | dev: true 370 | optional: true 371 | 372 | /@esbuild/linux-ia32@0.20.2: 373 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 374 | engines: {node: '>=12'} 375 | cpu: [ia32] 376 | os: [linux] 377 | requiresBuild: true 378 | dev: true 379 | optional: true 380 | 381 | /@esbuild/linux-loong64@0.20.2: 382 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 383 | engines: {node: '>=12'} 384 | cpu: [loong64] 385 | os: [linux] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@esbuild/linux-mips64el@0.20.2: 391 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 392 | engines: {node: '>=12'} 393 | cpu: [mips64el] 394 | os: [linux] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@esbuild/linux-ppc64@0.20.2: 400 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 401 | engines: {node: '>=12'} 402 | cpu: [ppc64] 403 | os: [linux] 404 | requiresBuild: true 405 | dev: true 406 | optional: true 407 | 408 | /@esbuild/linux-riscv64@0.20.2: 409 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 410 | engines: {node: '>=12'} 411 | cpu: [riscv64] 412 | os: [linux] 413 | requiresBuild: true 414 | dev: true 415 | optional: true 416 | 417 | /@esbuild/linux-s390x@0.20.2: 418 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 419 | engines: {node: '>=12'} 420 | cpu: [s390x] 421 | os: [linux] 422 | requiresBuild: true 423 | dev: true 424 | optional: true 425 | 426 | /@esbuild/linux-x64@0.20.2: 427 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 428 | engines: {node: '>=12'} 429 | cpu: [x64] 430 | os: [linux] 431 | requiresBuild: true 432 | dev: true 433 | optional: true 434 | 435 | /@esbuild/netbsd-x64@0.20.2: 436 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 437 | engines: {node: '>=12'} 438 | cpu: [x64] 439 | os: [netbsd] 440 | requiresBuild: true 441 | dev: true 442 | optional: true 443 | 444 | /@esbuild/openbsd-x64@0.20.2: 445 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 446 | engines: {node: '>=12'} 447 | cpu: [x64] 448 | os: [openbsd] 449 | requiresBuild: true 450 | dev: true 451 | optional: true 452 | 453 | /@esbuild/sunos-x64@0.20.2: 454 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 455 | engines: {node: '>=12'} 456 | cpu: [x64] 457 | os: [sunos] 458 | requiresBuild: true 459 | dev: true 460 | optional: true 461 | 462 | /@esbuild/win32-arm64@0.20.2: 463 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 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.20.2: 472 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 473 | engines: {node: '>=12'} 474 | cpu: [ia32] 475 | os: [win32] 476 | requiresBuild: true 477 | dev: true 478 | optional: true 479 | 480 | /@esbuild/win32-x64@0.20.2: 481 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 482 | engines: {node: '>=12'} 483 | cpu: [x64] 484 | os: [win32] 485 | requiresBuild: true 486 | dev: true 487 | optional: true 488 | 489 | /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): 490 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 491 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 492 | peerDependencies: 493 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 494 | dependencies: 495 | eslint: 8.57.0 496 | eslint-visitor-keys: 3.4.3 497 | dev: true 498 | 499 | /@eslint-community/regexpp@4.10.0: 500 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 501 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 502 | dev: true 503 | 504 | /@eslint/eslintrc@2.1.4: 505 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 506 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 507 | dependencies: 508 | ajv: 6.12.6 509 | debug: 4.3.4 510 | espree: 9.6.1 511 | globals: 13.24.0 512 | ignore: 5.3.1 513 | import-fresh: 3.3.0 514 | js-yaml: 4.1.0 515 | minimatch: 3.1.2 516 | strip-json-comments: 3.1.1 517 | transitivePeerDependencies: 518 | - supports-color 519 | dev: true 520 | 521 | /@eslint/js@8.57.0: 522 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 523 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 524 | dev: true 525 | 526 | /@glamboyosa/ore@0.0.1: 527 | resolution: {integrity: sha512-YljM+yrRqLLDJoMFpZMpopxh54qbSxtxrsj+pO9KibrnpCDclASbWDSdQcjYaJ9rfcgr+2XUm975xAT/1lGH1A==} 528 | dev: false 529 | 530 | /@humanwhocodes/config-array@0.11.14: 531 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 532 | engines: {node: '>=10.10.0'} 533 | dependencies: 534 | '@humanwhocodes/object-schema': 2.0.2 535 | debug: 4.3.4 536 | minimatch: 3.1.2 537 | transitivePeerDependencies: 538 | - supports-color 539 | dev: true 540 | 541 | /@humanwhocodes/module-importer@1.0.1: 542 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 543 | engines: {node: '>=12.22'} 544 | dev: true 545 | 546 | /@humanwhocodes/object-schema@2.0.2: 547 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} 548 | dev: true 549 | 550 | /@jridgewell/gen-mapping@0.3.5: 551 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 552 | engines: {node: '>=6.0.0'} 553 | dependencies: 554 | '@jridgewell/set-array': 1.2.1 555 | '@jridgewell/sourcemap-codec': 1.4.15 556 | '@jridgewell/trace-mapping': 0.3.25 557 | dev: true 558 | 559 | /@jridgewell/resolve-uri@3.1.2: 560 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 561 | engines: {node: '>=6.0.0'} 562 | dev: true 563 | 564 | /@jridgewell/set-array@1.2.1: 565 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 566 | engines: {node: '>=6.0.0'} 567 | dev: true 568 | 569 | /@jridgewell/sourcemap-codec@1.4.15: 570 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 571 | dev: true 572 | 573 | /@jridgewell/trace-mapping@0.3.25: 574 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 575 | dependencies: 576 | '@jridgewell/resolve-uri': 3.1.2 577 | '@jridgewell/sourcemap-codec': 1.4.15 578 | dev: true 579 | 580 | /@nodelib/fs.scandir@2.1.5: 581 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 582 | engines: {node: '>= 8'} 583 | dependencies: 584 | '@nodelib/fs.stat': 2.0.5 585 | run-parallel: 1.2.0 586 | dev: true 587 | 588 | /@nodelib/fs.stat@2.0.5: 589 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 590 | engines: {node: '>= 8'} 591 | dev: true 592 | 593 | /@nodelib/fs.walk@1.2.8: 594 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 595 | engines: {node: '>= 8'} 596 | dependencies: 597 | '@nodelib/fs.scandir': 2.1.5 598 | fastq: 1.17.1 599 | dev: true 600 | 601 | /@rollup/rollup-android-arm-eabi@4.13.1: 602 | resolution: {integrity: sha512-4C4UERETjXpC4WpBXDbkgNVgHyWfG3B/NKY46e7w5H134UDOFqUJKpsLm0UYmuupW+aJmRgeScrDNfvZ5WV80A==} 603 | cpu: [arm] 604 | os: [android] 605 | requiresBuild: true 606 | dev: true 607 | optional: true 608 | 609 | /@rollup/rollup-android-arm64@4.13.1: 610 | resolution: {integrity: sha512-TrTaFJ9pXgfXEiJKQ3yQRelpQFqgRzVR9it8DbeRzG0RX7mKUy0bqhCFsgevwXLJepQKTnLl95TnPGf9T9AMOA==} 611 | cpu: [arm64] 612 | os: [android] 613 | requiresBuild: true 614 | dev: true 615 | optional: true 616 | 617 | /@rollup/rollup-darwin-arm64@4.13.1: 618 | resolution: {integrity: sha512-fz7jN6ahTI3cKzDO2otQuybts5cyu0feymg0bjvYCBrZQ8tSgE8pc0sSNEuGvifrQJWiwx9F05BowihmLxeQKw==} 619 | cpu: [arm64] 620 | os: [darwin] 621 | requiresBuild: true 622 | dev: true 623 | optional: true 624 | 625 | /@rollup/rollup-darwin-x64@4.13.1: 626 | resolution: {integrity: sha512-WTvdz7SLMlJpektdrnWRUN9C0N2qNHwNbWpNo0a3Tod3gb9leX+yrYdCeB7VV36OtoyiPAivl7/xZ3G1z5h20g==} 627 | cpu: [x64] 628 | os: [darwin] 629 | requiresBuild: true 630 | dev: true 631 | optional: true 632 | 633 | /@rollup/rollup-linux-arm-gnueabihf@4.13.1: 634 | resolution: {integrity: sha512-dBHQl+7wZzBYcIF6o4k2XkAfwP2ks1mYW2q/Gzv9n39uDcDiAGDqEyml08OdY0BIct0yLSPkDTqn4i6czpBLLw==} 635 | cpu: [arm] 636 | os: [linux] 637 | requiresBuild: true 638 | dev: true 639 | optional: true 640 | 641 | /@rollup/rollup-linux-arm64-gnu@4.13.1: 642 | resolution: {integrity: sha512-bur4JOxvYxfrAmocRJIW0SADs3QdEYK6TQ7dTNz6Z4/lySeu3Z1H/+tl0a4qDYv0bCdBpUYM0sYa/X+9ZqgfSQ==} 643 | cpu: [arm64] 644 | os: [linux] 645 | requiresBuild: true 646 | dev: true 647 | optional: true 648 | 649 | /@rollup/rollup-linux-arm64-musl@4.13.1: 650 | resolution: {integrity: sha512-ssp77SjcDIUSoUyj7DU7/5iwM4ZEluY+N8umtCT9nBRs3u045t0KkW02LTyHouHDomnMXaXSZcCSr2bdMK63kA==} 651 | cpu: [arm64] 652 | os: [linux] 653 | requiresBuild: true 654 | dev: true 655 | optional: true 656 | 657 | /@rollup/rollup-linux-riscv64-gnu@4.13.1: 658 | resolution: {integrity: sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ==} 659 | cpu: [riscv64] 660 | os: [linux] 661 | requiresBuild: true 662 | dev: true 663 | optional: true 664 | 665 | /@rollup/rollup-linux-s390x-gnu@4.13.1: 666 | resolution: {integrity: sha512-U564BrhEfaNChdATQaEODtquCC7Ez+8Hxz1h5MAdMYj0AqD0GA9rHCpElajb/sQcaFL6NXmHc5O+7FXpWMa73Q==} 667 | cpu: [s390x] 668 | os: [linux] 669 | requiresBuild: true 670 | dev: true 671 | optional: true 672 | 673 | /@rollup/rollup-linux-x64-gnu@4.13.1: 674 | resolution: {integrity: sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ==} 675 | cpu: [x64] 676 | os: [linux] 677 | requiresBuild: true 678 | dev: true 679 | optional: true 680 | 681 | /@rollup/rollup-linux-x64-musl@4.13.1: 682 | resolution: {integrity: sha512-VTk/MveyPdMFkYJJPCkYBw07KcTkGU2hLEyqYMsU4NjiOfzoaDTW9PWGRsNwiOA3qI0k/JQPjkl/4FCK1smskQ==} 683 | cpu: [x64] 684 | os: [linux] 685 | requiresBuild: true 686 | dev: true 687 | optional: true 688 | 689 | /@rollup/rollup-win32-arm64-msvc@4.13.1: 690 | resolution: {integrity: sha512-L+hX8Dtibb02r/OYCsp4sQQIi3ldZkFI0EUkMTDwRfFykXBPptoz/tuuGqEd3bThBSLRWPR6wsixDSgOx/U3Zw==} 691 | cpu: [arm64] 692 | os: [win32] 693 | requiresBuild: true 694 | dev: true 695 | optional: true 696 | 697 | /@rollup/rollup-win32-ia32-msvc@4.13.1: 698 | resolution: {integrity: sha512-+dI2jVPfM5A8zme8riEoNC7UKk0Lzc7jCj/U89cQIrOjrZTCWZl/+IXUeRT2rEZ5j25lnSA9G9H1Ob9azaF/KQ==} 699 | cpu: [ia32] 700 | os: [win32] 701 | requiresBuild: true 702 | dev: true 703 | optional: true 704 | 705 | /@rollup/rollup-win32-x64-msvc@4.13.1: 706 | resolution: {integrity: sha512-YY1Exxo2viZ/O2dMHuwQvimJ0SqvL+OAWQLLY6rvXavgQKjhQUzn7nc1Dd29gjB5Fqi00nrBWctJBOyfVMIVxw==} 707 | cpu: [x64] 708 | os: [win32] 709 | requiresBuild: true 710 | dev: true 711 | optional: true 712 | 713 | /@types/babel__core@7.20.5: 714 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 715 | dependencies: 716 | '@babel/parser': 7.24.1 717 | '@babel/types': 7.24.0 718 | '@types/babel__generator': 7.6.8 719 | '@types/babel__template': 7.4.4 720 | '@types/babel__traverse': 7.20.5 721 | dev: true 722 | 723 | /@types/babel__generator@7.6.8: 724 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 725 | dependencies: 726 | '@babel/types': 7.24.0 727 | dev: true 728 | 729 | /@types/babel__template@7.4.4: 730 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 731 | dependencies: 732 | '@babel/parser': 7.24.1 733 | '@babel/types': 7.24.0 734 | dev: true 735 | 736 | /@types/babel__traverse@7.20.5: 737 | resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} 738 | dependencies: 739 | '@babel/types': 7.24.0 740 | dev: true 741 | 742 | /@types/estree@1.0.5: 743 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 744 | dev: true 745 | 746 | /@types/json-schema@7.0.15: 747 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 748 | dev: true 749 | 750 | /@types/prop-types@15.7.12: 751 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 752 | dev: true 753 | 754 | /@types/react-dom@18.2.22: 755 | resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} 756 | dependencies: 757 | '@types/react': 18.2.72 758 | dev: true 759 | 760 | /@types/react@18.2.72: 761 | resolution: {integrity: sha512-/e7GWxGzXQF7OJAua7UAYqYi/4VpXEfbGtmYQcAQwP3SjjjAXfybTf/JK5S+SaetB/ChXl8Y2g1hCsj7jDXxcg==} 762 | dependencies: 763 | '@types/prop-types': 15.7.12 764 | csstype: 3.1.3 765 | dev: true 766 | 767 | /@types/semver@7.5.8: 768 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 769 | dev: true 770 | 771 | /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): 772 | resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} 773 | engines: {node: ^18.18.0 || >=20.0.0} 774 | peerDependencies: 775 | '@typescript-eslint/parser': ^7.0.0 776 | eslint: ^8.56.0 777 | typescript: '*' 778 | peerDependenciesMeta: 779 | typescript: 780 | optional: true 781 | dependencies: 782 | '@eslint-community/regexpp': 4.10.0 783 | '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) 784 | '@typescript-eslint/scope-manager': 7.4.0 785 | '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) 786 | '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) 787 | '@typescript-eslint/visitor-keys': 7.4.0 788 | debug: 4.3.4 789 | eslint: 8.57.0 790 | graphemer: 1.4.0 791 | ignore: 5.3.1 792 | natural-compare: 1.4.0 793 | semver: 7.6.0 794 | ts-api-utils: 1.3.0(typescript@5.4.3) 795 | typescript: 5.4.3 796 | transitivePeerDependencies: 797 | - supports-color 798 | dev: true 799 | 800 | /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): 801 | resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} 802 | engines: {node: ^18.18.0 || >=20.0.0} 803 | peerDependencies: 804 | eslint: ^8.56.0 805 | typescript: '*' 806 | peerDependenciesMeta: 807 | typescript: 808 | optional: true 809 | dependencies: 810 | '@typescript-eslint/scope-manager': 7.4.0 811 | '@typescript-eslint/types': 7.4.0 812 | '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) 813 | '@typescript-eslint/visitor-keys': 7.4.0 814 | debug: 4.3.4 815 | eslint: 8.57.0 816 | typescript: 5.4.3 817 | transitivePeerDependencies: 818 | - supports-color 819 | dev: true 820 | 821 | /@typescript-eslint/scope-manager@7.4.0: 822 | resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} 823 | engines: {node: ^18.18.0 || >=20.0.0} 824 | dependencies: 825 | '@typescript-eslint/types': 7.4.0 826 | '@typescript-eslint/visitor-keys': 7.4.0 827 | dev: true 828 | 829 | /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): 830 | resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} 831 | engines: {node: ^18.18.0 || >=20.0.0} 832 | peerDependencies: 833 | eslint: ^8.56.0 834 | typescript: '*' 835 | peerDependenciesMeta: 836 | typescript: 837 | optional: true 838 | dependencies: 839 | '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) 840 | '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) 841 | debug: 4.3.4 842 | eslint: 8.57.0 843 | ts-api-utils: 1.3.0(typescript@5.4.3) 844 | typescript: 5.4.3 845 | transitivePeerDependencies: 846 | - supports-color 847 | dev: true 848 | 849 | /@typescript-eslint/types@7.4.0: 850 | resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} 851 | engines: {node: ^18.18.0 || >=20.0.0} 852 | dev: true 853 | 854 | /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): 855 | resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} 856 | engines: {node: ^18.18.0 || >=20.0.0} 857 | peerDependencies: 858 | typescript: '*' 859 | peerDependenciesMeta: 860 | typescript: 861 | optional: true 862 | dependencies: 863 | '@typescript-eslint/types': 7.4.0 864 | '@typescript-eslint/visitor-keys': 7.4.0 865 | debug: 4.3.4 866 | globby: 11.1.0 867 | is-glob: 4.0.3 868 | minimatch: 9.0.3 869 | semver: 7.6.0 870 | ts-api-utils: 1.3.0(typescript@5.4.3) 871 | typescript: 5.4.3 872 | transitivePeerDependencies: 873 | - supports-color 874 | dev: true 875 | 876 | /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): 877 | resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} 878 | engines: {node: ^18.18.0 || >=20.0.0} 879 | peerDependencies: 880 | eslint: ^8.56.0 881 | dependencies: 882 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 883 | '@types/json-schema': 7.0.15 884 | '@types/semver': 7.5.8 885 | '@typescript-eslint/scope-manager': 7.4.0 886 | '@typescript-eslint/types': 7.4.0 887 | '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) 888 | eslint: 8.57.0 889 | semver: 7.6.0 890 | transitivePeerDependencies: 891 | - supports-color 892 | - typescript 893 | dev: true 894 | 895 | /@typescript-eslint/visitor-keys@7.4.0: 896 | resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} 897 | engines: {node: ^18.18.0 || >=20.0.0} 898 | dependencies: 899 | '@typescript-eslint/types': 7.4.0 900 | eslint-visitor-keys: 3.4.3 901 | dev: true 902 | 903 | /@ungap/structured-clone@1.2.0: 904 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 905 | dev: true 906 | 907 | /@vitejs/plugin-react@4.2.1(vite@5.2.6): 908 | resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} 909 | engines: {node: ^14.18.0 || >=16.0.0} 910 | peerDependencies: 911 | vite: ^4.2.0 || ^5.0.0 912 | dependencies: 913 | '@babel/core': 7.24.3 914 | '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3) 915 | '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3) 916 | '@types/babel__core': 7.20.5 917 | react-refresh: 0.14.0 918 | vite: 5.2.6 919 | transitivePeerDependencies: 920 | - supports-color 921 | dev: true 922 | 923 | /acorn-jsx@5.3.2(acorn@8.11.3): 924 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 925 | peerDependencies: 926 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 927 | dependencies: 928 | acorn: 8.11.3 929 | dev: true 930 | 931 | /acorn@8.11.3: 932 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 933 | engines: {node: '>=0.4.0'} 934 | hasBin: true 935 | dev: true 936 | 937 | /ajv@6.12.6: 938 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 939 | dependencies: 940 | fast-deep-equal: 3.1.3 941 | fast-json-stable-stringify: 2.1.0 942 | json-schema-traverse: 0.4.1 943 | uri-js: 4.4.1 944 | dev: true 945 | 946 | /ansi-regex@5.0.1: 947 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 948 | engines: {node: '>=8'} 949 | dev: true 950 | 951 | /ansi-styles@3.2.1: 952 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 953 | engines: {node: '>=4'} 954 | dependencies: 955 | color-convert: 1.9.3 956 | dev: true 957 | 958 | /ansi-styles@4.3.0: 959 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 960 | engines: {node: '>=8'} 961 | dependencies: 962 | color-convert: 2.0.1 963 | dev: true 964 | 965 | /argparse@2.0.1: 966 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 967 | dev: true 968 | 969 | /array-union@2.1.0: 970 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 971 | engines: {node: '>=8'} 972 | dev: true 973 | 974 | /balanced-match@1.0.2: 975 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 976 | dev: true 977 | 978 | /brace-expansion@1.1.11: 979 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 980 | dependencies: 981 | balanced-match: 1.0.2 982 | concat-map: 0.0.1 983 | dev: true 984 | 985 | /brace-expansion@2.0.1: 986 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 987 | dependencies: 988 | balanced-match: 1.0.2 989 | dev: true 990 | 991 | /braces@3.0.2: 992 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 993 | engines: {node: '>=8'} 994 | dependencies: 995 | fill-range: 7.0.1 996 | dev: true 997 | 998 | /browserslist@4.23.0: 999 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 1000 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1001 | hasBin: true 1002 | dependencies: 1003 | caniuse-lite: 1.0.30001600 1004 | electron-to-chromium: 1.4.717 1005 | node-releases: 2.0.14 1006 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 1007 | dev: true 1008 | 1009 | /callsites@3.1.0: 1010 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1011 | engines: {node: '>=6'} 1012 | dev: true 1013 | 1014 | /caniuse-lite@1.0.30001600: 1015 | resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} 1016 | dev: true 1017 | 1018 | /chalk@2.4.2: 1019 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1020 | engines: {node: '>=4'} 1021 | dependencies: 1022 | ansi-styles: 3.2.1 1023 | escape-string-regexp: 1.0.5 1024 | supports-color: 5.5.0 1025 | dev: true 1026 | 1027 | /chalk@4.1.2: 1028 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1029 | engines: {node: '>=10'} 1030 | dependencies: 1031 | ansi-styles: 4.3.0 1032 | supports-color: 7.2.0 1033 | dev: true 1034 | 1035 | /color-convert@1.9.3: 1036 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1037 | dependencies: 1038 | color-name: 1.1.3 1039 | dev: true 1040 | 1041 | /color-convert@2.0.1: 1042 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1043 | engines: {node: '>=7.0.0'} 1044 | dependencies: 1045 | color-name: 1.1.4 1046 | dev: true 1047 | 1048 | /color-name@1.1.3: 1049 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1050 | dev: true 1051 | 1052 | /color-name@1.1.4: 1053 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1054 | dev: true 1055 | 1056 | /concat-map@0.0.1: 1057 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1058 | dev: true 1059 | 1060 | /convert-source-map@2.0.0: 1061 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1062 | dev: true 1063 | 1064 | /cross-spawn@7.0.3: 1065 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1066 | engines: {node: '>= 8'} 1067 | dependencies: 1068 | path-key: 3.1.1 1069 | shebang-command: 2.0.0 1070 | which: 2.0.2 1071 | dev: true 1072 | 1073 | /csstype@3.1.3: 1074 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1075 | dev: true 1076 | 1077 | /debug@4.3.4: 1078 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1079 | engines: {node: '>=6.0'} 1080 | peerDependencies: 1081 | supports-color: '*' 1082 | peerDependenciesMeta: 1083 | supports-color: 1084 | optional: true 1085 | dependencies: 1086 | ms: 2.1.2 1087 | dev: true 1088 | 1089 | /deep-is@0.1.4: 1090 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1091 | dev: true 1092 | 1093 | /dir-glob@3.0.1: 1094 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1095 | engines: {node: '>=8'} 1096 | dependencies: 1097 | path-type: 4.0.0 1098 | dev: true 1099 | 1100 | /doctrine@3.0.0: 1101 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1102 | engines: {node: '>=6.0.0'} 1103 | dependencies: 1104 | esutils: 2.0.3 1105 | dev: true 1106 | 1107 | /electron-to-chromium@1.4.717: 1108 | resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} 1109 | dev: true 1110 | 1111 | /esbuild@0.20.2: 1112 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 1113 | engines: {node: '>=12'} 1114 | hasBin: true 1115 | requiresBuild: true 1116 | optionalDependencies: 1117 | '@esbuild/aix-ppc64': 0.20.2 1118 | '@esbuild/android-arm': 0.20.2 1119 | '@esbuild/android-arm64': 0.20.2 1120 | '@esbuild/android-x64': 0.20.2 1121 | '@esbuild/darwin-arm64': 0.20.2 1122 | '@esbuild/darwin-x64': 0.20.2 1123 | '@esbuild/freebsd-arm64': 0.20.2 1124 | '@esbuild/freebsd-x64': 0.20.2 1125 | '@esbuild/linux-arm': 0.20.2 1126 | '@esbuild/linux-arm64': 0.20.2 1127 | '@esbuild/linux-ia32': 0.20.2 1128 | '@esbuild/linux-loong64': 0.20.2 1129 | '@esbuild/linux-mips64el': 0.20.2 1130 | '@esbuild/linux-ppc64': 0.20.2 1131 | '@esbuild/linux-riscv64': 0.20.2 1132 | '@esbuild/linux-s390x': 0.20.2 1133 | '@esbuild/linux-x64': 0.20.2 1134 | '@esbuild/netbsd-x64': 0.20.2 1135 | '@esbuild/openbsd-x64': 0.20.2 1136 | '@esbuild/sunos-x64': 0.20.2 1137 | '@esbuild/win32-arm64': 0.20.2 1138 | '@esbuild/win32-ia32': 0.20.2 1139 | '@esbuild/win32-x64': 0.20.2 1140 | dev: true 1141 | 1142 | /escalade@3.1.2: 1143 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1144 | engines: {node: '>=6'} 1145 | dev: true 1146 | 1147 | /escape-string-regexp@1.0.5: 1148 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1149 | engines: {node: '>=0.8.0'} 1150 | dev: true 1151 | 1152 | /escape-string-regexp@4.0.0: 1153 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1154 | engines: {node: '>=10'} 1155 | dev: true 1156 | 1157 | /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): 1158 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1159 | engines: {node: '>=10'} 1160 | peerDependencies: 1161 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1162 | dependencies: 1163 | eslint: 8.57.0 1164 | dev: true 1165 | 1166 | /eslint-plugin-react-refresh@0.4.6(eslint@8.57.0): 1167 | resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} 1168 | peerDependencies: 1169 | eslint: '>=7' 1170 | dependencies: 1171 | eslint: 8.57.0 1172 | dev: true 1173 | 1174 | /eslint-scope@7.2.2: 1175 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1176 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1177 | dependencies: 1178 | esrecurse: 4.3.0 1179 | estraverse: 5.3.0 1180 | dev: true 1181 | 1182 | /eslint-visitor-keys@3.4.3: 1183 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1184 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1185 | dev: true 1186 | 1187 | /eslint@8.57.0: 1188 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1189 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1190 | hasBin: true 1191 | dependencies: 1192 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1193 | '@eslint-community/regexpp': 4.10.0 1194 | '@eslint/eslintrc': 2.1.4 1195 | '@eslint/js': 8.57.0 1196 | '@humanwhocodes/config-array': 0.11.14 1197 | '@humanwhocodes/module-importer': 1.0.1 1198 | '@nodelib/fs.walk': 1.2.8 1199 | '@ungap/structured-clone': 1.2.0 1200 | ajv: 6.12.6 1201 | chalk: 4.1.2 1202 | cross-spawn: 7.0.3 1203 | debug: 4.3.4 1204 | doctrine: 3.0.0 1205 | escape-string-regexp: 4.0.0 1206 | eslint-scope: 7.2.2 1207 | eslint-visitor-keys: 3.4.3 1208 | espree: 9.6.1 1209 | esquery: 1.5.0 1210 | esutils: 2.0.3 1211 | fast-deep-equal: 3.1.3 1212 | file-entry-cache: 6.0.1 1213 | find-up: 5.0.0 1214 | glob-parent: 6.0.2 1215 | globals: 13.24.0 1216 | graphemer: 1.4.0 1217 | ignore: 5.3.1 1218 | imurmurhash: 0.1.4 1219 | is-glob: 4.0.3 1220 | is-path-inside: 3.0.3 1221 | js-yaml: 4.1.0 1222 | json-stable-stringify-without-jsonify: 1.0.1 1223 | levn: 0.4.1 1224 | lodash.merge: 4.6.2 1225 | minimatch: 3.1.2 1226 | natural-compare: 1.4.0 1227 | optionator: 0.9.3 1228 | strip-ansi: 6.0.1 1229 | text-table: 0.2.0 1230 | transitivePeerDependencies: 1231 | - supports-color 1232 | dev: true 1233 | 1234 | /espree@9.6.1: 1235 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1236 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1237 | dependencies: 1238 | acorn: 8.11.3 1239 | acorn-jsx: 5.3.2(acorn@8.11.3) 1240 | eslint-visitor-keys: 3.4.3 1241 | dev: true 1242 | 1243 | /esquery@1.5.0: 1244 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1245 | engines: {node: '>=0.10'} 1246 | dependencies: 1247 | estraverse: 5.3.0 1248 | dev: true 1249 | 1250 | /esrecurse@4.3.0: 1251 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1252 | engines: {node: '>=4.0'} 1253 | dependencies: 1254 | estraverse: 5.3.0 1255 | dev: true 1256 | 1257 | /estraverse@5.3.0: 1258 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1259 | engines: {node: '>=4.0'} 1260 | dev: true 1261 | 1262 | /esutils@2.0.3: 1263 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1264 | engines: {node: '>=0.10.0'} 1265 | dev: true 1266 | 1267 | /fast-deep-equal@3.1.3: 1268 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1269 | dev: true 1270 | 1271 | /fast-glob@3.3.2: 1272 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1273 | engines: {node: '>=8.6.0'} 1274 | dependencies: 1275 | '@nodelib/fs.stat': 2.0.5 1276 | '@nodelib/fs.walk': 1.2.8 1277 | glob-parent: 5.1.2 1278 | merge2: 1.4.1 1279 | micromatch: 4.0.5 1280 | dev: true 1281 | 1282 | /fast-json-stable-stringify@2.1.0: 1283 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1284 | dev: true 1285 | 1286 | /fast-levenshtein@2.0.6: 1287 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1288 | dev: true 1289 | 1290 | /fastq@1.17.1: 1291 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1292 | dependencies: 1293 | reusify: 1.0.4 1294 | dev: true 1295 | 1296 | /file-entry-cache@6.0.1: 1297 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1298 | engines: {node: ^10.12.0 || >=12.0.0} 1299 | dependencies: 1300 | flat-cache: 3.2.0 1301 | dev: true 1302 | 1303 | /fill-range@7.0.1: 1304 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1305 | engines: {node: '>=8'} 1306 | dependencies: 1307 | to-regex-range: 5.0.1 1308 | dev: true 1309 | 1310 | /find-up@5.0.0: 1311 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1312 | engines: {node: '>=10'} 1313 | dependencies: 1314 | locate-path: 6.0.0 1315 | path-exists: 4.0.0 1316 | dev: true 1317 | 1318 | /flat-cache@3.2.0: 1319 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1320 | engines: {node: ^10.12.0 || >=12.0.0} 1321 | dependencies: 1322 | flatted: 3.3.1 1323 | keyv: 4.5.4 1324 | rimraf: 3.0.2 1325 | dev: true 1326 | 1327 | /flatted@3.3.1: 1328 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1329 | dev: true 1330 | 1331 | /fs.realpath@1.0.0: 1332 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1333 | dev: true 1334 | 1335 | /fsevents@2.3.3: 1336 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1337 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1338 | os: [darwin] 1339 | requiresBuild: true 1340 | dev: true 1341 | optional: true 1342 | 1343 | /gensync@1.0.0-beta.2: 1344 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1345 | engines: {node: '>=6.9.0'} 1346 | dev: true 1347 | 1348 | /glob-parent@5.1.2: 1349 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1350 | engines: {node: '>= 6'} 1351 | dependencies: 1352 | is-glob: 4.0.3 1353 | dev: true 1354 | 1355 | /glob-parent@6.0.2: 1356 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1357 | engines: {node: '>=10.13.0'} 1358 | dependencies: 1359 | is-glob: 4.0.3 1360 | dev: true 1361 | 1362 | /glob@7.2.3: 1363 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1364 | dependencies: 1365 | fs.realpath: 1.0.0 1366 | inflight: 1.0.6 1367 | inherits: 2.0.4 1368 | minimatch: 3.1.2 1369 | once: 1.4.0 1370 | path-is-absolute: 1.0.1 1371 | dev: true 1372 | 1373 | /globals@11.12.0: 1374 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1375 | engines: {node: '>=4'} 1376 | dev: true 1377 | 1378 | /globals@13.24.0: 1379 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1380 | engines: {node: '>=8'} 1381 | dependencies: 1382 | type-fest: 0.20.2 1383 | dev: true 1384 | 1385 | /globby@11.1.0: 1386 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1387 | engines: {node: '>=10'} 1388 | dependencies: 1389 | array-union: 2.1.0 1390 | dir-glob: 3.0.1 1391 | fast-glob: 3.3.2 1392 | ignore: 5.3.1 1393 | merge2: 1.4.1 1394 | slash: 3.0.0 1395 | dev: true 1396 | 1397 | /graphemer@1.4.0: 1398 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1399 | dev: true 1400 | 1401 | /has-flag@3.0.0: 1402 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1403 | engines: {node: '>=4'} 1404 | dev: true 1405 | 1406 | /has-flag@4.0.0: 1407 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1408 | engines: {node: '>=8'} 1409 | dev: true 1410 | 1411 | /ignore@5.3.1: 1412 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1413 | engines: {node: '>= 4'} 1414 | dev: true 1415 | 1416 | /import-fresh@3.3.0: 1417 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1418 | engines: {node: '>=6'} 1419 | dependencies: 1420 | parent-module: 1.0.1 1421 | resolve-from: 4.0.0 1422 | dev: true 1423 | 1424 | /imurmurhash@0.1.4: 1425 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1426 | engines: {node: '>=0.8.19'} 1427 | dev: true 1428 | 1429 | /inflight@1.0.6: 1430 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1431 | dependencies: 1432 | once: 1.4.0 1433 | wrappy: 1.0.2 1434 | dev: true 1435 | 1436 | /inherits@2.0.4: 1437 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1438 | dev: true 1439 | 1440 | /is-extglob@2.1.1: 1441 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1442 | engines: {node: '>=0.10.0'} 1443 | dev: true 1444 | 1445 | /is-glob@4.0.3: 1446 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1447 | engines: {node: '>=0.10.0'} 1448 | dependencies: 1449 | is-extglob: 2.1.1 1450 | dev: true 1451 | 1452 | /is-number@7.0.0: 1453 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1454 | engines: {node: '>=0.12.0'} 1455 | dev: true 1456 | 1457 | /is-path-inside@3.0.3: 1458 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1459 | engines: {node: '>=8'} 1460 | dev: true 1461 | 1462 | /isexe@2.0.0: 1463 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1464 | dev: true 1465 | 1466 | /js-tokens@4.0.0: 1467 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1468 | 1469 | /js-yaml@4.1.0: 1470 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1471 | hasBin: true 1472 | dependencies: 1473 | argparse: 2.0.1 1474 | dev: true 1475 | 1476 | /jsesc@2.5.2: 1477 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1478 | engines: {node: '>=4'} 1479 | hasBin: true 1480 | dev: true 1481 | 1482 | /json-buffer@3.0.1: 1483 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1484 | dev: true 1485 | 1486 | /json-schema-traverse@0.4.1: 1487 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1488 | dev: true 1489 | 1490 | /json-stable-stringify-without-jsonify@1.0.1: 1491 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1492 | dev: true 1493 | 1494 | /json5@2.2.3: 1495 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1496 | engines: {node: '>=6'} 1497 | hasBin: true 1498 | dev: true 1499 | 1500 | /keyv@4.5.4: 1501 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1502 | dependencies: 1503 | json-buffer: 3.0.1 1504 | dev: true 1505 | 1506 | /levn@0.4.1: 1507 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1508 | engines: {node: '>= 0.8.0'} 1509 | dependencies: 1510 | prelude-ls: 1.2.1 1511 | type-check: 0.4.0 1512 | dev: true 1513 | 1514 | /locate-path@6.0.0: 1515 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1516 | engines: {node: '>=10'} 1517 | dependencies: 1518 | p-locate: 5.0.0 1519 | dev: true 1520 | 1521 | /lodash.merge@4.6.2: 1522 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1523 | dev: true 1524 | 1525 | /loose-envify@1.4.0: 1526 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1527 | hasBin: true 1528 | dependencies: 1529 | js-tokens: 4.0.0 1530 | dev: false 1531 | 1532 | /lru-cache@5.1.1: 1533 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1534 | dependencies: 1535 | yallist: 3.1.1 1536 | dev: true 1537 | 1538 | /lru-cache@6.0.0: 1539 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1540 | engines: {node: '>=10'} 1541 | dependencies: 1542 | yallist: 4.0.0 1543 | dev: true 1544 | 1545 | /merge2@1.4.1: 1546 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1547 | engines: {node: '>= 8'} 1548 | dev: true 1549 | 1550 | /micromatch@4.0.5: 1551 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1552 | engines: {node: '>=8.6'} 1553 | dependencies: 1554 | braces: 3.0.2 1555 | picomatch: 2.3.1 1556 | dev: true 1557 | 1558 | /minimatch@3.1.2: 1559 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1560 | dependencies: 1561 | brace-expansion: 1.1.11 1562 | dev: true 1563 | 1564 | /minimatch@9.0.3: 1565 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1566 | engines: {node: '>=16 || 14 >=14.17'} 1567 | dependencies: 1568 | brace-expansion: 2.0.1 1569 | dev: true 1570 | 1571 | /ms@2.1.2: 1572 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1573 | dev: true 1574 | 1575 | /nanoid@3.3.7: 1576 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1577 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1578 | hasBin: true 1579 | dev: true 1580 | 1581 | /natural-compare@1.4.0: 1582 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1583 | dev: true 1584 | 1585 | /node-releases@2.0.14: 1586 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1587 | dev: true 1588 | 1589 | /once@1.4.0: 1590 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1591 | dependencies: 1592 | wrappy: 1.0.2 1593 | dev: true 1594 | 1595 | /optionator@0.9.3: 1596 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1597 | engines: {node: '>= 0.8.0'} 1598 | dependencies: 1599 | '@aashutoshrathi/word-wrap': 1.2.6 1600 | deep-is: 0.1.4 1601 | fast-levenshtein: 2.0.6 1602 | levn: 0.4.1 1603 | prelude-ls: 1.2.1 1604 | type-check: 0.4.0 1605 | dev: true 1606 | 1607 | /p-limit@3.1.0: 1608 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1609 | engines: {node: '>=10'} 1610 | dependencies: 1611 | yocto-queue: 0.1.0 1612 | dev: true 1613 | 1614 | /p-locate@5.0.0: 1615 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1616 | engines: {node: '>=10'} 1617 | dependencies: 1618 | p-limit: 3.1.0 1619 | dev: true 1620 | 1621 | /parent-module@1.0.1: 1622 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1623 | engines: {node: '>=6'} 1624 | dependencies: 1625 | callsites: 3.1.0 1626 | dev: true 1627 | 1628 | /path-exists@4.0.0: 1629 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1630 | engines: {node: '>=8'} 1631 | dev: true 1632 | 1633 | /path-is-absolute@1.0.1: 1634 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1635 | engines: {node: '>=0.10.0'} 1636 | dev: true 1637 | 1638 | /path-key@3.1.1: 1639 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1640 | engines: {node: '>=8'} 1641 | dev: true 1642 | 1643 | /path-type@4.0.0: 1644 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1645 | engines: {node: '>=8'} 1646 | dev: true 1647 | 1648 | /picocolors@1.0.0: 1649 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1650 | dev: true 1651 | 1652 | /picomatch@2.3.1: 1653 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1654 | engines: {node: '>=8.6'} 1655 | dev: true 1656 | 1657 | /postcss@8.4.38: 1658 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1659 | engines: {node: ^10 || ^12 || >=14} 1660 | dependencies: 1661 | nanoid: 3.3.7 1662 | picocolors: 1.0.0 1663 | source-map-js: 1.2.0 1664 | dev: true 1665 | 1666 | /prelude-ls@1.2.1: 1667 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1668 | engines: {node: '>= 0.8.0'} 1669 | dev: true 1670 | 1671 | /punycode@2.3.1: 1672 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1673 | engines: {node: '>=6'} 1674 | dev: true 1675 | 1676 | /queue-microtask@1.2.3: 1677 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1678 | dev: true 1679 | 1680 | /react-dom@18.2.0(react@18.2.0): 1681 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1682 | peerDependencies: 1683 | react: ^18.2.0 1684 | dependencies: 1685 | loose-envify: 1.4.0 1686 | react: 18.2.0 1687 | scheduler: 0.23.0 1688 | dev: false 1689 | 1690 | /react-refresh@0.14.0: 1691 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 1692 | engines: {node: '>=0.10.0'} 1693 | dev: true 1694 | 1695 | /react@18.2.0: 1696 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1697 | engines: {node: '>=0.10.0'} 1698 | dependencies: 1699 | loose-envify: 1.4.0 1700 | dev: false 1701 | 1702 | /resolve-from@4.0.0: 1703 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1704 | engines: {node: '>=4'} 1705 | dev: true 1706 | 1707 | /reusify@1.0.4: 1708 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1709 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1710 | dev: true 1711 | 1712 | /rimraf@3.0.2: 1713 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1714 | hasBin: true 1715 | dependencies: 1716 | glob: 7.2.3 1717 | dev: true 1718 | 1719 | /rollup@4.13.1: 1720 | resolution: {integrity: sha512-hFi+fU132IvJ2ZuihN56dwgpltpmLZHZWsx27rMCTZ2sYwrqlgL5sECGy1eeV2lAihD8EzChBVVhsXci0wD4Tg==} 1721 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1722 | hasBin: true 1723 | dependencies: 1724 | '@types/estree': 1.0.5 1725 | optionalDependencies: 1726 | '@rollup/rollup-android-arm-eabi': 4.13.1 1727 | '@rollup/rollup-android-arm64': 4.13.1 1728 | '@rollup/rollup-darwin-arm64': 4.13.1 1729 | '@rollup/rollup-darwin-x64': 4.13.1 1730 | '@rollup/rollup-linux-arm-gnueabihf': 4.13.1 1731 | '@rollup/rollup-linux-arm64-gnu': 4.13.1 1732 | '@rollup/rollup-linux-arm64-musl': 4.13.1 1733 | '@rollup/rollup-linux-riscv64-gnu': 4.13.1 1734 | '@rollup/rollup-linux-s390x-gnu': 4.13.1 1735 | '@rollup/rollup-linux-x64-gnu': 4.13.1 1736 | '@rollup/rollup-linux-x64-musl': 4.13.1 1737 | '@rollup/rollup-win32-arm64-msvc': 4.13.1 1738 | '@rollup/rollup-win32-ia32-msvc': 4.13.1 1739 | '@rollup/rollup-win32-x64-msvc': 4.13.1 1740 | fsevents: 2.3.3 1741 | dev: true 1742 | 1743 | /run-parallel@1.2.0: 1744 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1745 | dependencies: 1746 | queue-microtask: 1.2.3 1747 | dev: true 1748 | 1749 | /scheduler@0.23.0: 1750 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1751 | dependencies: 1752 | loose-envify: 1.4.0 1753 | dev: false 1754 | 1755 | /semver@6.3.1: 1756 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1757 | hasBin: true 1758 | dev: true 1759 | 1760 | /semver@7.6.0: 1761 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 1762 | engines: {node: '>=10'} 1763 | hasBin: true 1764 | dependencies: 1765 | lru-cache: 6.0.0 1766 | dev: true 1767 | 1768 | /shebang-command@2.0.0: 1769 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1770 | engines: {node: '>=8'} 1771 | dependencies: 1772 | shebang-regex: 3.0.0 1773 | dev: true 1774 | 1775 | /shebang-regex@3.0.0: 1776 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1777 | engines: {node: '>=8'} 1778 | dev: true 1779 | 1780 | /slash@3.0.0: 1781 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1782 | engines: {node: '>=8'} 1783 | dev: true 1784 | 1785 | /source-map-js@1.2.0: 1786 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1787 | engines: {node: '>=0.10.0'} 1788 | dev: true 1789 | 1790 | /strip-ansi@6.0.1: 1791 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1792 | engines: {node: '>=8'} 1793 | dependencies: 1794 | ansi-regex: 5.0.1 1795 | dev: true 1796 | 1797 | /strip-json-comments@3.1.1: 1798 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1799 | engines: {node: '>=8'} 1800 | dev: true 1801 | 1802 | /supports-color@5.5.0: 1803 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1804 | engines: {node: '>=4'} 1805 | dependencies: 1806 | has-flag: 3.0.0 1807 | dev: true 1808 | 1809 | /supports-color@7.2.0: 1810 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1811 | engines: {node: '>=8'} 1812 | dependencies: 1813 | has-flag: 4.0.0 1814 | dev: true 1815 | 1816 | /text-table@0.2.0: 1817 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1818 | dev: true 1819 | 1820 | /to-fast-properties@2.0.0: 1821 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1822 | engines: {node: '>=4'} 1823 | dev: true 1824 | 1825 | /to-regex-range@5.0.1: 1826 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1827 | engines: {node: '>=8.0'} 1828 | dependencies: 1829 | is-number: 7.0.0 1830 | dev: true 1831 | 1832 | /ts-api-utils@1.3.0(typescript@5.4.3): 1833 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1834 | engines: {node: '>=16'} 1835 | peerDependencies: 1836 | typescript: '>=4.2.0' 1837 | dependencies: 1838 | typescript: 5.4.3 1839 | dev: true 1840 | 1841 | /type-check@0.4.0: 1842 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1843 | engines: {node: '>= 0.8.0'} 1844 | dependencies: 1845 | prelude-ls: 1.2.1 1846 | dev: true 1847 | 1848 | /type-fest@0.20.2: 1849 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1850 | engines: {node: '>=10'} 1851 | dev: true 1852 | 1853 | /typescript@5.4.3: 1854 | resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} 1855 | engines: {node: '>=14.17'} 1856 | hasBin: true 1857 | dev: true 1858 | 1859 | /update-browserslist-db@1.0.13(browserslist@4.23.0): 1860 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 1861 | hasBin: true 1862 | peerDependencies: 1863 | browserslist: '>= 4.21.0' 1864 | dependencies: 1865 | browserslist: 4.23.0 1866 | escalade: 3.1.2 1867 | picocolors: 1.0.0 1868 | dev: true 1869 | 1870 | /uri-js@4.4.1: 1871 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1872 | dependencies: 1873 | punycode: 2.3.1 1874 | dev: true 1875 | 1876 | /vite@5.2.6: 1877 | resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==} 1878 | engines: {node: ^18.0.0 || >=20.0.0} 1879 | hasBin: true 1880 | peerDependencies: 1881 | '@types/node': ^18.0.0 || >=20.0.0 1882 | less: '*' 1883 | lightningcss: ^1.21.0 1884 | sass: '*' 1885 | stylus: '*' 1886 | sugarss: '*' 1887 | terser: ^5.4.0 1888 | peerDependenciesMeta: 1889 | '@types/node': 1890 | optional: true 1891 | less: 1892 | optional: true 1893 | lightningcss: 1894 | optional: true 1895 | sass: 1896 | optional: true 1897 | stylus: 1898 | optional: true 1899 | sugarss: 1900 | optional: true 1901 | terser: 1902 | optional: true 1903 | dependencies: 1904 | esbuild: 0.20.2 1905 | postcss: 8.4.38 1906 | rollup: 4.13.1 1907 | optionalDependencies: 1908 | fsevents: 2.3.3 1909 | dev: true 1910 | 1911 | /which@2.0.2: 1912 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1913 | engines: {node: '>= 8'} 1914 | hasBin: true 1915 | dependencies: 1916 | isexe: 2.0.0 1917 | dev: true 1918 | 1919 | /wrappy@1.0.2: 1920 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1921 | dev: true 1922 | 1923 | /yallist@3.1.1: 1924 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1925 | dev: true 1926 | 1927 | /yallist@4.0.0: 1928 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1929 | dev: true 1930 | 1931 | /yocto-queue@0.1.0: 1932 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1933 | engines: {node: '>=10'} 1934 | dev: true 1935 | --------------------------------------------------------------------------------