├── src ├── connectors │ ├── index.ts │ ├── injected.ts │ └── types.ts ├── index.ts ├── hooks │ ├── index.ts │ ├── useModel.ts │ ├── useContext.ts │ ├── useCompletion.ts │ └── useConnect.ts ├── types │ ├── declarations.d.ts │ └── index.ts └── context.ts ├── .prettierrc ├── vite.config.ts ├── index.html ├── example ├── index.tsx └── app.tsx ├── tsconfig.json ├── package.json ├── .gitignore ├── .eslintrc ├── README.md └── pnpm-lock.yaml /src/connectors/index.ts: -------------------------------------------------------------------------------- 1 | export { InjectedConnector } from './injected' 2 | export type { Connector, Data } from './types' 3 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connectors' 2 | export * from './hooks' 3 | export * from './types' 4 | export { Provider } from './context' 5 | -------------------------------------------------------------------------------- /src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useCompletion } from './useCompletion' 2 | export { useConnect } from './useConnect' 3 | export { useModel } from './useModel' 4 | -------------------------------------------------------------------------------- /src/hooks/useModel.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from './useContext' 2 | 3 | export const useModel = () => { 4 | const [state] = useContext() 5 | return state.data?.model 6 | } 7 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "endOfLine": "lf", 4 | "printWidth": 80, 5 | "semi": false, 6 | "singleQuote": true, 7 | "tabWidth": 2, 8 | "trailingComma": "all" 9 | } -------------------------------------------------------------------------------- /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 | define: { 7 | global: "globalThis", 8 | }, 9 | plugins: [react()], 10 | }); 11 | -------------------------------------------------------------------------------- /src/hooks/useContext.ts: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Context } from '../context' 3 | 4 | export const useContext = () => { 5 | const context = React.useContext(Context) 6 | if (!context) throw Error(`useContext must be used within a Provider`) 7 | 8 | return context 9 | } 10 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Wanda 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /example/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import * as ReactDOMClient from 'react-dom/client' 3 | 4 | import { App } from './app' 5 | import { InjectedConnector, Provider } from '@wanda-dev/react' 6 | 7 | const root = ReactDOMClient.createRoot(document.getElementById('root')!) 8 | 9 | root.render( 10 | 11 | 12 | 13 | 14 | , 15 | ) 16 | -------------------------------------------------------------------------------- /src/hooks/useCompletion.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from './useContext' 2 | import { CompletionOptions, Input } from '../types' 3 | 4 | export const useCompletion = () => { 5 | const [state] = useContext() 6 | 7 | const getCompletion = async ( 8 | input: T, 9 | options?: CompletionOptions, 10 | ) => { 11 | const provider = await state.connector?.getProvider() 12 | 13 | if (!provider) { 14 | throw Error('No provider found') 15 | } 16 | 17 | return provider.getCompletion(input, options) 18 | } 19 | 20 | return { getCompletion } 21 | } 22 | -------------------------------------------------------------------------------- /src/types/declarations.d.ts: -------------------------------------------------------------------------------- 1 | import { 2 | CompletionOptions, 3 | ErrorCode, 4 | EventType, 5 | Input, 6 | MessageOutput, 7 | ModelID, 8 | PromptInput, 9 | TextOutput, 10 | } from '.' 11 | 12 | interface WindowAiProvider { 13 | getCurrentModel: () => Promise 14 | getCompletion( 15 | input: T, 16 | options?: CompletionOptions, 17 | ): Promise 18 | addEventListener?( 19 | handler: (event: EventType, data: T | ErrorCode) => void, 20 | ): string 21 | } 22 | 23 | declare global { 24 | interface Window { 25 | ai?: WindowAiProvider 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": false, 4 | "allowSyntheticDefaultImports": true, 5 | "esModuleInterop": false, 6 | "forceConsistentCasingInFileNames": true, 7 | "isolatedModules": true, 8 | "declaration": true, 9 | "declarationMap": true, 10 | "jsx": "react-jsx", 11 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "skipLibCheck": false, 16 | "strict": true, 17 | "target": "ESNext", 18 | "useDefineForClassFields": true, 19 | "types": ["node"], 20 | "outDir": "./dist" 21 | }, 22 | "include": ["./src/**/*"], 23 | "exclude": ["node_modules"] 24 | } 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@wanda-dev/react", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "tsc", 7 | "serve": "vite preview" 8 | }, 9 | "main": "dist/index.js", 10 | "types": "dist/index.d.ts", 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "peerDependencies": { 15 | "react": "^18.2.0", 16 | "react-dom": "^18.2.0" 17 | }, 18 | "devDependencies": { 19 | "@types/node": "^18.15.11", 20 | "@types/react": "^18.0.34", 21 | "@types/react-dom": "^18.0.11", 22 | "@vitejs/plugin-react": "^3.1.0", 23 | "eslint": "^8.38.0", 24 | "eslint-config-prettier": "^8.8.0", 25 | "eslint-import-resolver-typescript": "^3.5.5", 26 | "eslint-plugin-eslint-comments": "^3.2.0", 27 | "eslint-plugin-import": "^2.27.5", 28 | "eslint-plugin-prettier": "^4.2.1", 29 | "eslint-plugin-react": "^7.32.2", 30 | "eslint-plugin-react-hooks": "^4.6.0", 31 | "prettier": "^2.8.7", 32 | "react": "^18.2.0", 33 | "react-dom": "^18.2.0", 34 | "typescript": "^5.0.4", 35 | "vite": "^4.2.1" 36 | }, 37 | "dependencies": { 38 | "events": "^3.3.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | export type Message = { 2 | role: 'system' | 'user' | 'assistant' 3 | content: string 4 | } 5 | 6 | export type PromptInput = { 7 | prompt: string 8 | } 9 | 10 | export type MessagesInput = { 11 | messages: Message[] 12 | } 13 | 14 | export type Input = PromptInput | MessagesInput 15 | 16 | export type TextOutput = { 17 | text: string 18 | } 19 | 20 | export type MessageOutput = { 21 | message: Message 22 | } 23 | 24 | export enum EventType { 25 | ModelChanged = 'model_changed', 26 | Error = 'error', 27 | } 28 | 29 | export enum ErrorCode { 30 | NotAuthenticated = 'NOT_AUTHENTICATED', 31 | PermissionDenied = 'PERMISSION_DENIED', 32 | RequestNotFound = 'REQUEST_NOT_FOUND', 33 | InvalidRequest = 'INVALID_REQUEST', 34 | ModelRejectedRequest = 'MODEL_REJECTED_REQUEST', 35 | } 36 | 37 | export enum ModelID { 38 | GPT3 = 'openai/gpt3.5', 39 | GPT4 = 'openai/gpt4', 40 | GPTNeo = 'together/gpt-neoxt-20B', 41 | Cohere = 'cohere/xlarge', 42 | Local = 'local', 43 | } 44 | 45 | export interface CompletionOptions { 46 | temperature?: number 47 | numOutputs?: number 48 | maxTokens?: number 49 | stopSequences?: string[] 50 | model?: ModelID 51 | 52 | onStreamResult?: ( 53 | result: T extends PromptInput ? TextOutput : MessageOutput, 54 | error: string | null, 55 | ) => unknown 56 | } 57 | -------------------------------------------------------------------------------- /src/hooks/useConnect.ts: -------------------------------------------------------------------------------- 1 | import { useCallback, useState } from 'react' 2 | import { useContext } from './useContext' 3 | import { Connector } from '../connectors' 4 | 5 | type UseConnectState = { 6 | connecting: boolean 7 | error?: Error 8 | } 9 | 10 | export const useConnect = () => { 11 | const [globalState, setGlobalState] = useContext() 12 | const [state, setState] = useState({ connecting: false }) 13 | 14 | const connect = useCallback( 15 | async (connector: Connector) => { 16 | try { 17 | if (connector === globalState.connector) return 18 | 19 | setGlobalState((state) => ({ ...state, connector })) 20 | setState((state) => ({ ...state, connecting: true, error: undefined })) 21 | const data = await connector.activate() 22 | setGlobalState((state) => ({ ...state, data })) 23 | } catch (error) { 24 | console.error(error) 25 | setState((state) => ({ ...state, error: error as Error })) 26 | } finally { 27 | setState((state) => ({ ...state, connecting: false })) 28 | } 29 | }, 30 | [globalState.connector, setGlobalState], 31 | ) 32 | 33 | return [ 34 | { 35 | connecting: state.connecting, 36 | connector: globalState.connector, 37 | connectors: globalState.connectors, 38 | error: state.error, 39 | }, 40 | connect, 41 | ] as const 42 | } 43 | -------------------------------------------------------------------------------- /example/app.tsx: -------------------------------------------------------------------------------- 1 | import React, { FormEvent, useState } from 'react' 2 | 3 | import { useCompletion, useConnect, useModel } from '@wanda-dev/react' 4 | 5 | export const App = () => { 6 | const [{ connectors, error }, connect] = useConnect() 7 | const model = useModel() 8 | const { getCompletion } = useCompletion() 9 | const [prompt, setPrompt] = useState('') 10 | const [output, setOutput] = useState('') 11 | 12 | async function handleSubmit(e: FormEvent) { 13 | e.preventDefault() 14 | 15 | const completion = await getCompletion({ prompt }) 16 | setOutput(completion.text) 17 | } 18 | 19 | if (model) { 20 | return ( 21 | <> 22 | You are currently connected to window.ai: {model} 23 | 24 |
25 | setPrompt(e.target.value)} 30 | /> 31 | 32 |
33 | 34 | {output && ( 35 | <> 36 | Output: {output} 37 | 38 | )} 39 | 40 | ) 41 | } 42 | 43 | return ( 44 |
45 | {connectors.map((connector) => ( 46 | 49 | ))} 50 | 51 | {error && Failed to connect: {error.message}} 52 |
53 | ) 54 | } 55 | -------------------------------------------------------------------------------- /src/context.ts: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Connector, Data, InjectedConnector } from './connectors' 3 | 4 | type State = { 5 | connector?: Connector 6 | data?: Data 7 | error?: Error 8 | } 9 | 10 | type ContextValue = [ 11 | { 12 | connectors: Connector[] 13 | connector?: State['connector'] 14 | data?: State['data'] 15 | }, 16 | React.Dispatch>, 17 | ] 18 | 19 | export const Context = React.createContext(null) 20 | 21 | type Props = { 22 | connectors: Connector[] 23 | } 24 | 25 | export const Provider: React.FC> = ({ 26 | children, 27 | connectors = [new InjectedConnector()], 28 | }) => { 29 | const [state, setState] = React.useState({}) 30 | 31 | React.useEffect(() => { 32 | if (!state.connector) return 33 | 34 | const handleChange = (data: Data) => { 35 | setState((state) => ({ ...state, data })) 36 | } 37 | 38 | state.connector.on('change', handleChange) 39 | 40 | return () => { 41 | if (!state.connector) return 42 | state.connector.off('change', handleChange) 43 | } 44 | }, [state.connector]) 45 | 46 | // Close connectors when unmounting 47 | React.useEffect(() => { 48 | return () => { 49 | if (!state.connector) return 50 | state.connector.deactivate() 51 | } 52 | }, [state.connector]) 53 | 54 | const value = [ 55 | { 56 | connectors, 57 | connector: state.connector, 58 | data: state.data, 59 | }, 60 | setState, 61 | ] as ContextValue 62 | 63 | return React.createElement(Context.Provider, { value }, children) 64 | } 65 | -------------------------------------------------------------------------------- /src/connectors/injected.ts: -------------------------------------------------------------------------------- 1 | import { ErrorCode, EventType, ModelID } from '../types' 2 | import { WindowAiProvider } from '../types/declarations' 3 | import { Connector, Data } from './types' 4 | 5 | export class InjectedConnector extends Connector { 6 | name = 'injected' 7 | 8 | constructor() { 9 | super() 10 | 11 | this.handleEvent = this.handleEvent.bind(this) 12 | } 13 | 14 | async activate(): Promise { 15 | if (!window.ai) throw Error(`window.ai not found`) 16 | 17 | if (window.ai.addEventListener) { 18 | window.ai.addEventListener(this.handleEvent) 19 | } 20 | 21 | try { 22 | const model = await window.ai.getCurrentModel() 23 | return { model, provider: window.ai } 24 | } catch (error) { 25 | throw Error(`activate failed`) 26 | } 27 | } 28 | 29 | deactivate(): void { 30 | // no-op 31 | // Disconnect event listeners here once window.ai upstream has removeEventListener 32 | } 33 | 34 | async getModel(): Promise { 35 | if (!window.ai) throw Error(`window.ai not found`) 36 | 37 | try { 38 | return await window.ai.getCurrentModel() 39 | } catch { 40 | throw Error('model not found') 41 | } 42 | } 43 | 44 | async getProvider(): Promise { 45 | if (!window.ai) throw Error(`window.ai not found`) 46 | 47 | return window.ai 48 | } 49 | 50 | private handleEvent(event: EventType, data: unknown) { 51 | if (event === EventType.ModelChanged) { 52 | this.emit('change', { model: (<{ model: ModelID }>data).model }) 53 | } else if (event === EventType.Error) { 54 | this.emit('error', Error(data as ErrorCode)) 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/connectors/types.ts: -------------------------------------------------------------------------------- 1 | import EventEmitter from 'events' 2 | import { ModelID } from '../types' 3 | import { WindowAiProvider } from '../types/declarations' 4 | 5 | export type Data = { 6 | model?: ModelID 7 | provider?: WindowAiProvider 8 | } 9 | 10 | type EventMap = { 11 | change: Data 12 | disconnect: undefined 13 | error: Error 14 | } 15 | 16 | type EventKey = string & keyof T 17 | type EventReceiver = (params: T) => void 18 | 19 | interface IEmitter { 20 | on>(eventName: K, fn: EventReceiver): void 21 | off>(eventName: K, fn: EventReceiver): void 22 | emit>( 23 | eventName: K, 24 | ...params: T[K] extends undefined ? [undefined?] : [T[K]] 25 | ): void 26 | } 27 | 28 | export abstract class Emitter implements IEmitter { 29 | private emitter = new EventEmitter() 30 | 31 | on>( 32 | eventName: K, 33 | fn: EventReceiver, 34 | ): void { 35 | this.emitter.on(eventName, fn) 36 | } 37 | 38 | off>( 39 | eventName: K, 40 | fn: EventReceiver, 41 | ): void { 42 | this.emitter.off(eventName, fn) 43 | } 44 | 45 | emit>( 46 | eventName: K, 47 | ...params: EventMap[K] extends undefined ? [undefined?] : [EventMap[K]] 48 | ): void { 49 | this.emitter.emit(eventName, ...params) 50 | } 51 | } 52 | 53 | export abstract class Connector extends Emitter { 54 | abstract name: string 55 | 56 | abstract activate(): Promise 57 | abstract deactivate(): void 58 | abstract getModel(): Promise 59 | abstract getProvider(): Promise 60 | } 61 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "ecmaVersion": 8, 6 | "sourceType": "module", 7 | "ecmaFeatures": { 8 | "impliedStrict": true, 9 | "experimentalObjectRestSpread": true 10 | }, 11 | "allowImportExportEverywhere": true 12 | }, 13 | "plugins": ["@typescript-eslint", "import", "react", "jest"], 14 | "extends": [ 15 | "eslint:recommended", 16 | "plugin:eslint-comments/recommended", 17 | "plugin:@typescript-eslint/recommended", 18 | "plugin:import/errors", 19 | "plugin:import/warnings", 20 | "plugin:import/typescript", 21 | "plugin:react/recommended", 22 | "plugin:react-hooks/recommended", 23 | "plugin:prettier/recommended", 24 | "prettier" 25 | ], 26 | "rules": { 27 | // `@typescript-eslint` 28 | // https://github.com/typescript-eslint/typescript-eslint 29 | "@typescript-eslint/explicit-module-boundary-types": "off", 30 | "@typescript-eslint/no-explicit-any": "off", 31 | "@typescript-eslint/no-unused-vars": [ 32 | 2, 33 | { 34 | "argsIgnorePattern": "^_" 35 | } 36 | ], 37 | "@typescript-eslint/no-var-requires": "off", 38 | // `eslint-plugin-import` 39 | // https://github.com/benmosher/eslint-plugin-import 40 | "import/order": [ 41 | "error", 42 | { 43 | "groups": ["external", "internal"], 44 | "newlines-between": "always-and-inside-groups" 45 | } 46 | ], 47 | "sort-imports": [ 48 | "warn", 49 | { 50 | "ignoreCase": false, 51 | "ignoreDeclarationSort": true, 52 | "ignoreMemberSort": false 53 | } 54 | ], 55 | // `eslint-plugin-react` 56 | // https://github.com/yannickcr/eslint-plugin-react 57 | "react/display-name": "off", 58 | "react/jsx-boolean-value": ["warn", "never"], 59 | "react/jsx-curly-brace-presence": [ 60 | "error", 61 | { "props": "never", "children": "ignore" } 62 | ], 63 | "react/jsx-sort-props": [ 64 | "error", 65 | { 66 | "callbacksLast": true 67 | } 68 | ], 69 | "react/jsx-wrap-multilines": "error", 70 | "react/no-array-index-key": "error", 71 | "react/no-multi-comp": "off", 72 | "react/prop-types": "off", 73 | "react/self-closing-comp": "warn" 74 | }, 75 | "settings": { 76 | "import/parsers": { 77 | "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"] 78 | }, 79 | "import/resolver": { 80 | "typescript": { 81 | "alwaysTryTypes": true 82 | } 83 | }, 84 | "react": { 85 | "version": "detect" 86 | } 87 | }, 88 | "env": { 89 | "es6": true, 90 | "browser": true, 91 | "node": true, 92 | "jest": true 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Wanda - React Hooks for keyless AI 2 | 3 | **wanda** is a collection of React Hooks to get you up and running with keyless AI in a matter of minutes. 4 | 5 | ``` 6 | npm install @wanda-dev/react 7 | ``` 8 | 9 | ## Features 10 | 11 | - Hooks for working with injected `window.ai` 12 | - TypeScript ready 13 | 14 | ## Documentation 15 | 16 | ### Connectors 17 | 18 | Wanda makes the use of connectors to identify keyless AI wallets. For now, there is only one connector - `injected` - which supports [Window.AI](https://windowai.io). 19 | 20 | When setting up the context provider for Wanda in your React App, you need to supply a list of connectors you'd like to support. By default, it comes with the Injected Connector supported. 21 | 22 | ### Hooks 23 | 24 | #### `useConnect` 25 | 26 | The `useConnect` hook offers a way to connect to keyless AI through a given connector. 27 | 28 | ```tsx 29 | export function MyComponent() { 30 | const [{ connectors, error }, connect] = useConnect() 31 | 32 | return ( 33 |
34 | {connectors.map((connector) => ( 35 | 38 | ))} 39 | 40 | {error && Failed to connect: {error.message}} 41 |
42 | ) 43 | } 44 | ``` 45 | 46 | #### `useModel` 47 | 48 | The `useModel` hook provides the `ModelID` that is currently set as default through the connector. 49 | 50 | This is useful for displaying what model is being used currently on the frontend. It's also useful for detecting if `window.ai` is currently injected or not, as `model` will be undefined if not. 51 | 52 | ```tsx 53 | export function MyComponent() { 54 | const model = useModel(); 55 | 56 | if (model) { 57 | return ( 58 | You are currently connected to {model} 59 | ) 60 | } 61 | 62 | return ( 63 | // Show prompt to install window.ai 64 | ) 65 | } 66 | ``` 67 | 68 | #### `useCompletion` 69 | 70 | This is the main hook you will be using. It provides a function to request the connector to provide a completion to a given prompt. You can also pass it an `options` object to customize the request. Currently supports all options supported by `window.ai` 71 | 72 | ```tsx 73 | export function MyComponent() { 74 | const { getCompletion } = useCompletion() 75 | const [prompt, setPrompt] = useState('') 76 | const [output, setOutput] = useState('') 77 | 78 | async function handleSubmit(e: FormEvent) { 79 | e.preventDefault() 80 | 81 | const completion = await getCompletion({ prompt }) 82 | setOutput(completion.text) 83 | } 84 | 85 | return ( 86 | <> 87 |
88 | setPrompt(e.target.value)} 93 | /> 94 | 95 |
96 | 97 | {output && ( 98 | <> 99 | Output: {output} 100 | 101 | )} 102 | 103 | ) 104 | } 105 | ``` 106 | 107 | ### Examples 108 | 109 | Look in the `example` directory to see an example application using React. 110 | 111 | ## License 112 | 113 | This project is licensed under the MIT License. 114 | 115 | ## Authors 116 | 117 | - Haardik ([@haardikkk](https://twitter.com/haardikkk), [@haardikk21](https://github.com/haardikk21)) 118 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | events: 5 | specifier: ^3.3.0 6 | version: 3.3.0 7 | 8 | devDependencies: 9 | '@types/node': 10 | specifier: ^18.15.11 11 | version: 18.15.11 12 | '@types/react': 13 | specifier: ^18.0.34 14 | version: 18.0.34 15 | '@types/react-dom': 16 | specifier: ^18.0.11 17 | version: 18.0.11 18 | '@vitejs/plugin-react': 19 | specifier: ^3.1.0 20 | version: 3.1.0(vite@4.2.1) 21 | eslint: 22 | specifier: ^8.38.0 23 | version: 8.38.0 24 | eslint-config-prettier: 25 | specifier: ^8.8.0 26 | version: 8.8.0(eslint@8.38.0) 27 | eslint-import-resolver-typescript: 28 | specifier: ^3.5.5 29 | version: 3.5.5(eslint-plugin-import@2.27.5)(eslint@8.38.0) 30 | eslint-plugin-eslint-comments: 31 | specifier: ^3.2.0 32 | version: 3.2.0(eslint@8.38.0) 33 | eslint-plugin-import: 34 | specifier: ^2.27.5 35 | version: 2.27.5(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) 36 | eslint-plugin-prettier: 37 | specifier: ^4.2.1 38 | version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.38.0)(prettier@2.8.7) 39 | eslint-plugin-react: 40 | specifier: ^7.32.2 41 | version: 7.32.2(eslint@8.38.0) 42 | eslint-plugin-react-hooks: 43 | specifier: ^4.6.0 44 | version: 4.6.0(eslint@8.38.0) 45 | prettier: 46 | specifier: ^2.8.7 47 | version: 2.8.7 48 | react: 49 | specifier: ^18.2.0 50 | version: 18.2.0 51 | react-dom: 52 | specifier: ^18.2.0 53 | version: 18.2.0(react@18.2.0) 54 | typescript: 55 | specifier: ^5.0.4 56 | version: 5.0.4 57 | vite: 58 | specifier: ^4.2.1 59 | version: 4.2.1(@types/node@18.15.11) 60 | 61 | packages: 62 | 63 | /@ampproject/remapping@2.2.1: 64 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 65 | engines: {node: '>=6.0.0'} 66 | dependencies: 67 | '@jridgewell/gen-mapping': 0.3.3 68 | '@jridgewell/trace-mapping': 0.3.18 69 | dev: true 70 | 71 | /@babel/code-frame@7.21.4: 72 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 73 | engines: {node: '>=6.9.0'} 74 | dependencies: 75 | '@babel/highlight': 7.18.6 76 | dev: true 77 | 78 | /@babel/compat-data@7.21.4: 79 | resolution: {integrity: sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==} 80 | engines: {node: '>=6.9.0'} 81 | dev: true 82 | 83 | /@babel/core@7.21.4: 84 | resolution: {integrity: sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==} 85 | engines: {node: '>=6.9.0'} 86 | dependencies: 87 | '@ampproject/remapping': 2.2.1 88 | '@babel/code-frame': 7.21.4 89 | '@babel/generator': 7.21.4 90 | '@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4) 91 | '@babel/helper-module-transforms': 7.21.2 92 | '@babel/helpers': 7.21.0 93 | '@babel/parser': 7.21.4 94 | '@babel/template': 7.20.7 95 | '@babel/traverse': 7.21.4 96 | '@babel/types': 7.21.4 97 | convert-source-map: 1.9.0 98 | debug: 4.3.4 99 | gensync: 1.0.0-beta.2 100 | json5: 2.2.3 101 | semver: 6.3.0 102 | transitivePeerDependencies: 103 | - supports-color 104 | dev: true 105 | 106 | /@babel/generator@7.21.4: 107 | resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==} 108 | engines: {node: '>=6.9.0'} 109 | dependencies: 110 | '@babel/types': 7.21.4 111 | '@jridgewell/gen-mapping': 0.3.3 112 | '@jridgewell/trace-mapping': 0.3.18 113 | jsesc: 2.5.2 114 | dev: true 115 | 116 | /@babel/helper-compilation-targets@7.21.4(@babel/core@7.21.4): 117 | resolution: {integrity: sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==} 118 | engines: {node: '>=6.9.0'} 119 | peerDependencies: 120 | '@babel/core': ^7.0.0 121 | dependencies: 122 | '@babel/compat-data': 7.21.4 123 | '@babel/core': 7.21.4 124 | '@babel/helper-validator-option': 7.21.0 125 | browserslist: 4.21.5 126 | lru-cache: 5.1.1 127 | semver: 6.3.0 128 | dev: true 129 | 130 | /@babel/helper-environment-visitor@7.18.9: 131 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} 132 | engines: {node: '>=6.9.0'} 133 | dev: true 134 | 135 | /@babel/helper-function-name@7.21.0: 136 | resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} 137 | engines: {node: '>=6.9.0'} 138 | dependencies: 139 | '@babel/template': 7.20.7 140 | '@babel/types': 7.21.4 141 | dev: true 142 | 143 | /@babel/helper-hoist-variables@7.18.6: 144 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} 145 | engines: {node: '>=6.9.0'} 146 | dependencies: 147 | '@babel/types': 7.21.4 148 | dev: true 149 | 150 | /@babel/helper-module-imports@7.21.4: 151 | resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} 152 | engines: {node: '>=6.9.0'} 153 | dependencies: 154 | '@babel/types': 7.21.4 155 | dev: true 156 | 157 | /@babel/helper-module-transforms@7.21.2: 158 | resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} 159 | engines: {node: '>=6.9.0'} 160 | dependencies: 161 | '@babel/helper-environment-visitor': 7.18.9 162 | '@babel/helper-module-imports': 7.21.4 163 | '@babel/helper-simple-access': 7.20.2 164 | '@babel/helper-split-export-declaration': 7.18.6 165 | '@babel/helper-validator-identifier': 7.19.1 166 | '@babel/template': 7.20.7 167 | '@babel/traverse': 7.21.4 168 | '@babel/types': 7.21.4 169 | transitivePeerDependencies: 170 | - supports-color 171 | dev: true 172 | 173 | /@babel/helper-plugin-utils@7.20.2: 174 | resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} 175 | engines: {node: '>=6.9.0'} 176 | dev: true 177 | 178 | /@babel/helper-simple-access@7.20.2: 179 | resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} 180 | engines: {node: '>=6.9.0'} 181 | dependencies: 182 | '@babel/types': 7.21.4 183 | dev: true 184 | 185 | /@babel/helper-split-export-declaration@7.18.6: 186 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 187 | engines: {node: '>=6.9.0'} 188 | dependencies: 189 | '@babel/types': 7.21.4 190 | dev: true 191 | 192 | /@babel/helper-string-parser@7.19.4: 193 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} 194 | engines: {node: '>=6.9.0'} 195 | dev: true 196 | 197 | /@babel/helper-validator-identifier@7.19.1: 198 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 199 | engines: {node: '>=6.9.0'} 200 | dev: true 201 | 202 | /@babel/helper-validator-option@7.21.0: 203 | resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} 204 | engines: {node: '>=6.9.0'} 205 | dev: true 206 | 207 | /@babel/helpers@7.21.0: 208 | resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} 209 | engines: {node: '>=6.9.0'} 210 | dependencies: 211 | '@babel/template': 7.20.7 212 | '@babel/traverse': 7.21.4 213 | '@babel/types': 7.21.4 214 | transitivePeerDependencies: 215 | - supports-color 216 | dev: true 217 | 218 | /@babel/highlight@7.18.6: 219 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 220 | engines: {node: '>=6.9.0'} 221 | dependencies: 222 | '@babel/helper-validator-identifier': 7.19.1 223 | chalk: 2.4.2 224 | js-tokens: 4.0.0 225 | dev: true 226 | 227 | /@babel/parser@7.21.4: 228 | resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} 229 | engines: {node: '>=6.0.0'} 230 | hasBin: true 231 | dependencies: 232 | '@babel/types': 7.21.4 233 | dev: true 234 | 235 | /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.4): 236 | resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} 237 | engines: {node: '>=6.9.0'} 238 | peerDependencies: 239 | '@babel/core': ^7.0.0-0 240 | dependencies: 241 | '@babel/core': 7.21.4 242 | '@babel/helper-plugin-utils': 7.20.2 243 | dev: true 244 | 245 | /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.4): 246 | resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} 247 | engines: {node: '>=6.9.0'} 248 | peerDependencies: 249 | '@babel/core': ^7.0.0-0 250 | dependencies: 251 | '@babel/core': 7.21.4 252 | '@babel/helper-plugin-utils': 7.20.2 253 | dev: true 254 | 255 | /@babel/template@7.20.7: 256 | resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} 257 | engines: {node: '>=6.9.0'} 258 | dependencies: 259 | '@babel/code-frame': 7.21.4 260 | '@babel/parser': 7.21.4 261 | '@babel/types': 7.21.4 262 | dev: true 263 | 264 | /@babel/traverse@7.21.4: 265 | resolution: {integrity: sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==} 266 | engines: {node: '>=6.9.0'} 267 | dependencies: 268 | '@babel/code-frame': 7.21.4 269 | '@babel/generator': 7.21.4 270 | '@babel/helper-environment-visitor': 7.18.9 271 | '@babel/helper-function-name': 7.21.0 272 | '@babel/helper-hoist-variables': 7.18.6 273 | '@babel/helper-split-export-declaration': 7.18.6 274 | '@babel/parser': 7.21.4 275 | '@babel/types': 7.21.4 276 | debug: 4.3.4 277 | globals: 11.12.0 278 | transitivePeerDependencies: 279 | - supports-color 280 | dev: true 281 | 282 | /@babel/types@7.21.4: 283 | resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} 284 | engines: {node: '>=6.9.0'} 285 | dependencies: 286 | '@babel/helper-string-parser': 7.19.4 287 | '@babel/helper-validator-identifier': 7.19.1 288 | to-fast-properties: 2.0.0 289 | dev: true 290 | 291 | /@esbuild/android-arm64@0.17.16: 292 | resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} 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.17.16: 301 | resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} 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.17.16: 310 | resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} 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.17.16: 319 | resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} 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.17.16: 328 | resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} 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.17.16: 337 | resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} 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.17.16: 346 | resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} 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.17.16: 355 | resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} 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.17.16: 364 | resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} 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.17.16: 373 | resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} 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.17.16: 382 | resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} 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.17.16: 391 | resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} 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.17.16: 400 | resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} 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.17.16: 409 | resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} 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.17.16: 418 | resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} 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.17.16: 427 | resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} 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.17.16: 436 | resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} 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.17.16: 445 | resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} 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.17.16: 454 | resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} 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.17.16: 463 | resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} 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.17.16: 472 | resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} 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.17.16: 481 | resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} 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.38.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.38.0 496 | eslint-visitor-keys: 3.4.0 497 | dev: true 498 | 499 | /@eslint-community/regexpp@4.5.0: 500 | resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} 501 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 502 | dev: true 503 | 504 | /@eslint/eslintrc@2.0.2: 505 | resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} 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.5.1 511 | globals: 13.20.0 512 | ignore: 5.2.4 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.38.0: 522 | resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} 523 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 524 | dev: true 525 | 526 | /@humanwhocodes/config-array@0.11.8: 527 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 528 | engines: {node: '>=10.10.0'} 529 | dependencies: 530 | '@humanwhocodes/object-schema': 1.2.1 531 | debug: 4.3.4 532 | minimatch: 3.1.2 533 | transitivePeerDependencies: 534 | - supports-color 535 | dev: true 536 | 537 | /@humanwhocodes/module-importer@1.0.1: 538 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 539 | engines: {node: '>=12.22'} 540 | dev: true 541 | 542 | /@humanwhocodes/object-schema@1.2.1: 543 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 544 | dev: true 545 | 546 | /@jridgewell/gen-mapping@0.3.3: 547 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 548 | engines: {node: '>=6.0.0'} 549 | dependencies: 550 | '@jridgewell/set-array': 1.1.2 551 | '@jridgewell/sourcemap-codec': 1.4.15 552 | '@jridgewell/trace-mapping': 0.3.18 553 | dev: true 554 | 555 | /@jridgewell/resolve-uri@3.1.0: 556 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 557 | engines: {node: '>=6.0.0'} 558 | dev: true 559 | 560 | /@jridgewell/set-array@1.1.2: 561 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 562 | engines: {node: '>=6.0.0'} 563 | dev: true 564 | 565 | /@jridgewell/sourcemap-codec@1.4.14: 566 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 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.18: 574 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} 575 | dependencies: 576 | '@jridgewell/resolve-uri': 3.1.0 577 | '@jridgewell/sourcemap-codec': 1.4.14 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.15.0 599 | dev: true 600 | 601 | /@pkgr/utils@2.3.1: 602 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} 603 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 604 | dependencies: 605 | cross-spawn: 7.0.3 606 | is-glob: 4.0.3 607 | open: 8.4.2 608 | picocolors: 1.0.0 609 | tiny-glob: 0.2.9 610 | tslib: 2.5.0 611 | dev: true 612 | 613 | /@types/json5@0.0.29: 614 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 615 | dev: true 616 | 617 | /@types/node@18.15.11: 618 | resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} 619 | dev: true 620 | 621 | /@types/prop-types@15.7.5: 622 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 623 | dev: true 624 | 625 | /@types/react-dom@18.0.11: 626 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} 627 | dependencies: 628 | '@types/react': 18.0.34 629 | dev: true 630 | 631 | /@types/react@18.0.34: 632 | resolution: {integrity: sha512-NO1UO8941541CJl1BeOXi8a9dNKFK09Gnru5ZJqkm4Q3/WoQJtHvmwt0VX0SB9YCEwe7TfSSxDuaNmx6H2BAIQ==} 633 | dependencies: 634 | '@types/prop-types': 15.7.5 635 | '@types/scheduler': 0.16.3 636 | csstype: 3.1.2 637 | dev: true 638 | 639 | /@types/scheduler@0.16.3: 640 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} 641 | dev: true 642 | 643 | /@vitejs/plugin-react@3.1.0(vite@4.2.1): 644 | resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} 645 | engines: {node: ^14.18.0 || >=16.0.0} 646 | peerDependencies: 647 | vite: ^4.1.0-beta.0 648 | dependencies: 649 | '@babel/core': 7.21.4 650 | '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.4) 651 | '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.4) 652 | magic-string: 0.27.0 653 | react-refresh: 0.14.0 654 | vite: 4.2.1(@types/node@18.15.11) 655 | transitivePeerDependencies: 656 | - supports-color 657 | dev: true 658 | 659 | /acorn-jsx@5.3.2(acorn@8.8.2): 660 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 661 | peerDependencies: 662 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 663 | dependencies: 664 | acorn: 8.8.2 665 | dev: true 666 | 667 | /acorn@8.8.2: 668 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 669 | engines: {node: '>=0.4.0'} 670 | hasBin: true 671 | dev: true 672 | 673 | /ajv@6.12.6: 674 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 675 | dependencies: 676 | fast-deep-equal: 3.1.3 677 | fast-json-stable-stringify: 2.1.0 678 | json-schema-traverse: 0.4.1 679 | uri-js: 4.4.1 680 | dev: true 681 | 682 | /ansi-regex@5.0.1: 683 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 684 | engines: {node: '>=8'} 685 | dev: true 686 | 687 | /ansi-styles@3.2.1: 688 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 689 | engines: {node: '>=4'} 690 | dependencies: 691 | color-convert: 1.9.3 692 | dev: true 693 | 694 | /ansi-styles@4.3.0: 695 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 696 | engines: {node: '>=8'} 697 | dependencies: 698 | color-convert: 2.0.1 699 | dev: true 700 | 701 | /argparse@2.0.1: 702 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 703 | dev: true 704 | 705 | /array-buffer-byte-length@1.0.0: 706 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 707 | dependencies: 708 | call-bind: 1.0.2 709 | is-array-buffer: 3.0.2 710 | dev: true 711 | 712 | /array-includes@3.1.6: 713 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 714 | engines: {node: '>= 0.4'} 715 | dependencies: 716 | call-bind: 1.0.2 717 | define-properties: 1.2.0 718 | es-abstract: 1.21.2 719 | get-intrinsic: 1.2.0 720 | is-string: 1.0.7 721 | dev: true 722 | 723 | /array.prototype.flat@1.3.1: 724 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 725 | engines: {node: '>= 0.4'} 726 | dependencies: 727 | call-bind: 1.0.2 728 | define-properties: 1.2.0 729 | es-abstract: 1.21.2 730 | es-shim-unscopables: 1.0.0 731 | dev: true 732 | 733 | /array.prototype.flatmap@1.3.1: 734 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 735 | engines: {node: '>= 0.4'} 736 | dependencies: 737 | call-bind: 1.0.2 738 | define-properties: 1.2.0 739 | es-abstract: 1.21.2 740 | es-shim-unscopables: 1.0.0 741 | dev: true 742 | 743 | /array.prototype.tosorted@1.1.1: 744 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} 745 | dependencies: 746 | call-bind: 1.0.2 747 | define-properties: 1.2.0 748 | es-abstract: 1.21.2 749 | es-shim-unscopables: 1.0.0 750 | get-intrinsic: 1.2.0 751 | dev: true 752 | 753 | /available-typed-arrays@1.0.5: 754 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 755 | engines: {node: '>= 0.4'} 756 | dev: true 757 | 758 | /balanced-match@1.0.2: 759 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 760 | dev: true 761 | 762 | /brace-expansion@1.1.11: 763 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 764 | dependencies: 765 | balanced-match: 1.0.2 766 | concat-map: 0.0.1 767 | dev: true 768 | 769 | /braces@3.0.2: 770 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 771 | engines: {node: '>=8'} 772 | dependencies: 773 | fill-range: 7.0.1 774 | dev: true 775 | 776 | /browserslist@4.21.5: 777 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 778 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 779 | hasBin: true 780 | dependencies: 781 | caniuse-lite: 1.0.30001477 782 | electron-to-chromium: 1.4.358 783 | node-releases: 2.0.10 784 | update-browserslist-db: 1.0.10(browserslist@4.21.5) 785 | dev: true 786 | 787 | /call-bind@1.0.2: 788 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 789 | dependencies: 790 | function-bind: 1.1.1 791 | get-intrinsic: 1.2.0 792 | dev: true 793 | 794 | /callsites@3.1.0: 795 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 796 | engines: {node: '>=6'} 797 | dev: true 798 | 799 | /caniuse-lite@1.0.30001477: 800 | resolution: {integrity: sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==} 801 | dev: true 802 | 803 | /chalk@2.4.2: 804 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 805 | engines: {node: '>=4'} 806 | dependencies: 807 | ansi-styles: 3.2.1 808 | escape-string-regexp: 1.0.5 809 | supports-color: 5.5.0 810 | dev: true 811 | 812 | /chalk@4.1.2: 813 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 814 | engines: {node: '>=10'} 815 | dependencies: 816 | ansi-styles: 4.3.0 817 | supports-color: 7.2.0 818 | dev: true 819 | 820 | /color-convert@1.9.3: 821 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 822 | dependencies: 823 | color-name: 1.1.3 824 | dev: true 825 | 826 | /color-convert@2.0.1: 827 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 828 | engines: {node: '>=7.0.0'} 829 | dependencies: 830 | color-name: 1.1.4 831 | dev: true 832 | 833 | /color-name@1.1.3: 834 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 835 | dev: true 836 | 837 | /color-name@1.1.4: 838 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 839 | dev: true 840 | 841 | /concat-map@0.0.1: 842 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 843 | dev: true 844 | 845 | /convert-source-map@1.9.0: 846 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 847 | dev: true 848 | 849 | /cross-spawn@7.0.3: 850 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 851 | engines: {node: '>= 8'} 852 | dependencies: 853 | path-key: 3.1.1 854 | shebang-command: 2.0.0 855 | which: 2.0.2 856 | dev: true 857 | 858 | /csstype@3.1.2: 859 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 860 | dev: true 861 | 862 | /debug@3.2.7: 863 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 864 | peerDependencies: 865 | supports-color: '*' 866 | peerDependenciesMeta: 867 | supports-color: 868 | optional: true 869 | dependencies: 870 | ms: 2.1.3 871 | dev: true 872 | 873 | /debug@4.3.4: 874 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 875 | engines: {node: '>=6.0'} 876 | peerDependencies: 877 | supports-color: '*' 878 | peerDependenciesMeta: 879 | supports-color: 880 | optional: true 881 | dependencies: 882 | ms: 2.1.2 883 | dev: true 884 | 885 | /deep-is@0.1.4: 886 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 887 | dev: true 888 | 889 | /define-lazy-prop@2.0.0: 890 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 891 | engines: {node: '>=8'} 892 | dev: true 893 | 894 | /define-properties@1.2.0: 895 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 896 | engines: {node: '>= 0.4'} 897 | dependencies: 898 | has-property-descriptors: 1.0.0 899 | object-keys: 1.1.1 900 | dev: true 901 | 902 | /dir-glob@3.0.1: 903 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 904 | engines: {node: '>=8'} 905 | dependencies: 906 | path-type: 4.0.0 907 | dev: true 908 | 909 | /doctrine@2.1.0: 910 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 911 | engines: {node: '>=0.10.0'} 912 | dependencies: 913 | esutils: 2.0.3 914 | dev: true 915 | 916 | /doctrine@3.0.0: 917 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 918 | engines: {node: '>=6.0.0'} 919 | dependencies: 920 | esutils: 2.0.3 921 | dev: true 922 | 923 | /electron-to-chromium@1.4.358: 924 | resolution: {integrity: sha512-dbqpWy662dGVwq27q8i6+t5FPcQiFPs/VExXJ+/T9Xp9KUV0b5bvG+B/i07FNNr7PgcN3GhZQCZoYJ9EUfnIOg==} 925 | dev: true 926 | 927 | /enhanced-resolve@5.12.0: 928 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} 929 | engines: {node: '>=10.13.0'} 930 | dependencies: 931 | graceful-fs: 4.2.11 932 | tapable: 2.2.1 933 | dev: true 934 | 935 | /es-abstract@1.21.2: 936 | resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} 937 | engines: {node: '>= 0.4'} 938 | dependencies: 939 | array-buffer-byte-length: 1.0.0 940 | available-typed-arrays: 1.0.5 941 | call-bind: 1.0.2 942 | es-set-tostringtag: 2.0.1 943 | es-to-primitive: 1.2.1 944 | function.prototype.name: 1.1.5 945 | get-intrinsic: 1.2.0 946 | get-symbol-description: 1.0.0 947 | globalthis: 1.0.3 948 | gopd: 1.0.1 949 | has: 1.0.3 950 | has-property-descriptors: 1.0.0 951 | has-proto: 1.0.1 952 | has-symbols: 1.0.3 953 | internal-slot: 1.0.5 954 | is-array-buffer: 3.0.2 955 | is-callable: 1.2.7 956 | is-negative-zero: 2.0.2 957 | is-regex: 1.1.4 958 | is-shared-array-buffer: 1.0.2 959 | is-string: 1.0.7 960 | is-typed-array: 1.1.10 961 | is-weakref: 1.0.2 962 | object-inspect: 1.12.3 963 | object-keys: 1.1.1 964 | object.assign: 4.1.4 965 | regexp.prototype.flags: 1.4.3 966 | safe-regex-test: 1.0.0 967 | string.prototype.trim: 1.2.7 968 | string.prototype.trimend: 1.0.6 969 | string.prototype.trimstart: 1.0.6 970 | typed-array-length: 1.0.4 971 | unbox-primitive: 1.0.2 972 | which-typed-array: 1.1.9 973 | dev: true 974 | 975 | /es-set-tostringtag@2.0.1: 976 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 977 | engines: {node: '>= 0.4'} 978 | dependencies: 979 | get-intrinsic: 1.2.0 980 | has: 1.0.3 981 | has-tostringtag: 1.0.0 982 | dev: true 983 | 984 | /es-shim-unscopables@1.0.0: 985 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 986 | dependencies: 987 | has: 1.0.3 988 | dev: true 989 | 990 | /es-to-primitive@1.2.1: 991 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 992 | engines: {node: '>= 0.4'} 993 | dependencies: 994 | is-callable: 1.2.7 995 | is-date-object: 1.0.5 996 | is-symbol: 1.0.4 997 | dev: true 998 | 999 | /esbuild@0.17.16: 1000 | resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} 1001 | engines: {node: '>=12'} 1002 | hasBin: true 1003 | requiresBuild: true 1004 | optionalDependencies: 1005 | '@esbuild/android-arm': 0.17.16 1006 | '@esbuild/android-arm64': 0.17.16 1007 | '@esbuild/android-x64': 0.17.16 1008 | '@esbuild/darwin-arm64': 0.17.16 1009 | '@esbuild/darwin-x64': 0.17.16 1010 | '@esbuild/freebsd-arm64': 0.17.16 1011 | '@esbuild/freebsd-x64': 0.17.16 1012 | '@esbuild/linux-arm': 0.17.16 1013 | '@esbuild/linux-arm64': 0.17.16 1014 | '@esbuild/linux-ia32': 0.17.16 1015 | '@esbuild/linux-loong64': 0.17.16 1016 | '@esbuild/linux-mips64el': 0.17.16 1017 | '@esbuild/linux-ppc64': 0.17.16 1018 | '@esbuild/linux-riscv64': 0.17.16 1019 | '@esbuild/linux-s390x': 0.17.16 1020 | '@esbuild/linux-x64': 0.17.16 1021 | '@esbuild/netbsd-x64': 0.17.16 1022 | '@esbuild/openbsd-x64': 0.17.16 1023 | '@esbuild/sunos-x64': 0.17.16 1024 | '@esbuild/win32-arm64': 0.17.16 1025 | '@esbuild/win32-ia32': 0.17.16 1026 | '@esbuild/win32-x64': 0.17.16 1027 | dev: true 1028 | 1029 | /escalade@3.1.1: 1030 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1031 | engines: {node: '>=6'} 1032 | dev: true 1033 | 1034 | /escape-string-regexp@1.0.5: 1035 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1036 | engines: {node: '>=0.8.0'} 1037 | dev: true 1038 | 1039 | /escape-string-regexp@4.0.0: 1040 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1041 | engines: {node: '>=10'} 1042 | dev: true 1043 | 1044 | /eslint-config-prettier@8.8.0(eslint@8.38.0): 1045 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 1046 | hasBin: true 1047 | peerDependencies: 1048 | eslint: '>=7.0.0' 1049 | dependencies: 1050 | eslint: 8.38.0 1051 | dev: true 1052 | 1053 | /eslint-import-resolver-node@0.3.7: 1054 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} 1055 | dependencies: 1056 | debug: 3.2.7 1057 | is-core-module: 2.12.0 1058 | resolve: 1.22.2 1059 | transitivePeerDependencies: 1060 | - supports-color 1061 | dev: true 1062 | 1063 | /eslint-import-resolver-typescript@3.5.5(eslint-plugin-import@2.27.5)(eslint@8.38.0): 1064 | resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} 1065 | engines: {node: ^14.18.0 || >=16.0.0} 1066 | peerDependencies: 1067 | eslint: '*' 1068 | eslint-plugin-import: '*' 1069 | dependencies: 1070 | debug: 4.3.4 1071 | enhanced-resolve: 5.12.0 1072 | eslint: 8.38.0 1073 | eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) 1074 | eslint-plugin-import: 2.27.5(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) 1075 | get-tsconfig: 4.5.0 1076 | globby: 13.1.4 1077 | is-core-module: 2.12.0 1078 | is-glob: 4.0.3 1079 | synckit: 0.8.5 1080 | transitivePeerDependencies: 1081 | - '@typescript-eslint/parser' 1082 | - eslint-import-resolver-node 1083 | - eslint-import-resolver-webpack 1084 | - supports-color 1085 | dev: true 1086 | 1087 | /eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): 1088 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 1089 | engines: {node: '>=4'} 1090 | peerDependencies: 1091 | '@typescript-eslint/parser': '*' 1092 | eslint: '*' 1093 | eslint-import-resolver-node: '*' 1094 | eslint-import-resolver-typescript: '*' 1095 | eslint-import-resolver-webpack: '*' 1096 | peerDependenciesMeta: 1097 | '@typescript-eslint/parser': 1098 | optional: true 1099 | eslint: 1100 | optional: true 1101 | eslint-import-resolver-node: 1102 | optional: true 1103 | eslint-import-resolver-typescript: 1104 | optional: true 1105 | eslint-import-resolver-webpack: 1106 | optional: true 1107 | dependencies: 1108 | debug: 3.2.7 1109 | eslint: 8.38.0 1110 | eslint-import-resolver-node: 0.3.7 1111 | eslint-import-resolver-typescript: 3.5.5(eslint-plugin-import@2.27.5)(eslint@8.38.0) 1112 | transitivePeerDependencies: 1113 | - supports-color 1114 | dev: true 1115 | 1116 | /eslint-plugin-eslint-comments@3.2.0(eslint@8.38.0): 1117 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 1118 | engines: {node: '>=6.5.0'} 1119 | peerDependencies: 1120 | eslint: '>=4.19.1' 1121 | dependencies: 1122 | escape-string-regexp: 1.0.5 1123 | eslint: 8.38.0 1124 | ignore: 5.2.4 1125 | dev: true 1126 | 1127 | /eslint-plugin-import@2.27.5(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): 1128 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 1129 | engines: {node: '>=4'} 1130 | peerDependencies: 1131 | '@typescript-eslint/parser': '*' 1132 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1133 | peerDependenciesMeta: 1134 | '@typescript-eslint/parser': 1135 | optional: true 1136 | dependencies: 1137 | array-includes: 3.1.6 1138 | array.prototype.flat: 1.3.1 1139 | array.prototype.flatmap: 1.3.1 1140 | debug: 3.2.7 1141 | doctrine: 2.1.0 1142 | eslint: 8.38.0 1143 | eslint-import-resolver-node: 0.3.7 1144 | eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) 1145 | has: 1.0.3 1146 | is-core-module: 2.12.0 1147 | is-glob: 4.0.3 1148 | minimatch: 3.1.2 1149 | object.values: 1.1.6 1150 | resolve: 1.22.2 1151 | semver: 6.3.0 1152 | tsconfig-paths: 3.14.2 1153 | transitivePeerDependencies: 1154 | - eslint-import-resolver-typescript 1155 | - eslint-import-resolver-webpack 1156 | - supports-color 1157 | dev: true 1158 | 1159 | /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.38.0)(prettier@2.8.7): 1160 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} 1161 | engines: {node: '>=12.0.0'} 1162 | peerDependencies: 1163 | eslint: '>=7.28.0' 1164 | eslint-config-prettier: '*' 1165 | prettier: '>=2.0.0' 1166 | peerDependenciesMeta: 1167 | eslint-config-prettier: 1168 | optional: true 1169 | dependencies: 1170 | eslint: 8.38.0 1171 | eslint-config-prettier: 8.8.0(eslint@8.38.0) 1172 | prettier: 2.8.7 1173 | prettier-linter-helpers: 1.0.0 1174 | dev: true 1175 | 1176 | /eslint-plugin-react-hooks@4.6.0(eslint@8.38.0): 1177 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1178 | engines: {node: '>=10'} 1179 | peerDependencies: 1180 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1181 | dependencies: 1182 | eslint: 8.38.0 1183 | dev: true 1184 | 1185 | /eslint-plugin-react@7.32.2(eslint@8.38.0): 1186 | resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} 1187 | engines: {node: '>=4'} 1188 | peerDependencies: 1189 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1190 | dependencies: 1191 | array-includes: 3.1.6 1192 | array.prototype.flatmap: 1.3.1 1193 | array.prototype.tosorted: 1.1.1 1194 | doctrine: 2.1.0 1195 | eslint: 8.38.0 1196 | estraverse: 5.3.0 1197 | jsx-ast-utils: 3.3.3 1198 | minimatch: 3.1.2 1199 | object.entries: 1.1.6 1200 | object.fromentries: 2.0.6 1201 | object.hasown: 1.1.2 1202 | object.values: 1.1.6 1203 | prop-types: 15.8.1 1204 | resolve: 2.0.0-next.4 1205 | semver: 6.3.0 1206 | string.prototype.matchall: 4.0.8 1207 | dev: true 1208 | 1209 | /eslint-scope@7.1.1: 1210 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1211 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1212 | dependencies: 1213 | esrecurse: 4.3.0 1214 | estraverse: 5.3.0 1215 | dev: true 1216 | 1217 | /eslint-visitor-keys@3.4.0: 1218 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} 1219 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1220 | dev: true 1221 | 1222 | /eslint@8.38.0: 1223 | resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} 1224 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1225 | hasBin: true 1226 | dependencies: 1227 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) 1228 | '@eslint-community/regexpp': 4.5.0 1229 | '@eslint/eslintrc': 2.0.2 1230 | '@eslint/js': 8.38.0 1231 | '@humanwhocodes/config-array': 0.11.8 1232 | '@humanwhocodes/module-importer': 1.0.1 1233 | '@nodelib/fs.walk': 1.2.8 1234 | ajv: 6.12.6 1235 | chalk: 4.1.2 1236 | cross-spawn: 7.0.3 1237 | debug: 4.3.4 1238 | doctrine: 3.0.0 1239 | escape-string-regexp: 4.0.0 1240 | eslint-scope: 7.1.1 1241 | eslint-visitor-keys: 3.4.0 1242 | espree: 9.5.1 1243 | esquery: 1.5.0 1244 | esutils: 2.0.3 1245 | fast-deep-equal: 3.1.3 1246 | file-entry-cache: 6.0.1 1247 | find-up: 5.0.0 1248 | glob-parent: 6.0.2 1249 | globals: 13.20.0 1250 | grapheme-splitter: 1.0.4 1251 | ignore: 5.2.4 1252 | import-fresh: 3.3.0 1253 | imurmurhash: 0.1.4 1254 | is-glob: 4.0.3 1255 | is-path-inside: 3.0.3 1256 | js-sdsl: 4.4.0 1257 | js-yaml: 4.1.0 1258 | json-stable-stringify-without-jsonify: 1.0.1 1259 | levn: 0.4.1 1260 | lodash.merge: 4.6.2 1261 | minimatch: 3.1.2 1262 | natural-compare: 1.4.0 1263 | optionator: 0.9.1 1264 | strip-ansi: 6.0.1 1265 | strip-json-comments: 3.1.1 1266 | text-table: 0.2.0 1267 | transitivePeerDependencies: 1268 | - supports-color 1269 | dev: true 1270 | 1271 | /espree@9.5.1: 1272 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} 1273 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1274 | dependencies: 1275 | acorn: 8.8.2 1276 | acorn-jsx: 5.3.2(acorn@8.8.2) 1277 | eslint-visitor-keys: 3.4.0 1278 | dev: true 1279 | 1280 | /esquery@1.5.0: 1281 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1282 | engines: {node: '>=0.10'} 1283 | dependencies: 1284 | estraverse: 5.3.0 1285 | dev: true 1286 | 1287 | /esrecurse@4.3.0: 1288 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1289 | engines: {node: '>=4.0'} 1290 | dependencies: 1291 | estraverse: 5.3.0 1292 | dev: true 1293 | 1294 | /estraverse@5.3.0: 1295 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1296 | engines: {node: '>=4.0'} 1297 | dev: true 1298 | 1299 | /esutils@2.0.3: 1300 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1301 | engines: {node: '>=0.10.0'} 1302 | dev: true 1303 | 1304 | /events@3.3.0: 1305 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1306 | engines: {node: '>=0.8.x'} 1307 | dev: false 1308 | 1309 | /fast-deep-equal@3.1.3: 1310 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1311 | dev: true 1312 | 1313 | /fast-diff@1.2.0: 1314 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 1315 | dev: true 1316 | 1317 | /fast-glob@3.2.12: 1318 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1319 | engines: {node: '>=8.6.0'} 1320 | dependencies: 1321 | '@nodelib/fs.stat': 2.0.5 1322 | '@nodelib/fs.walk': 1.2.8 1323 | glob-parent: 5.1.2 1324 | merge2: 1.4.1 1325 | micromatch: 4.0.5 1326 | dev: true 1327 | 1328 | /fast-json-stable-stringify@2.1.0: 1329 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1330 | dev: true 1331 | 1332 | /fast-levenshtein@2.0.6: 1333 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1334 | dev: true 1335 | 1336 | /fastq@1.15.0: 1337 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1338 | dependencies: 1339 | reusify: 1.0.4 1340 | dev: true 1341 | 1342 | /file-entry-cache@6.0.1: 1343 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1344 | engines: {node: ^10.12.0 || >=12.0.0} 1345 | dependencies: 1346 | flat-cache: 3.0.4 1347 | dev: true 1348 | 1349 | /fill-range@7.0.1: 1350 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1351 | engines: {node: '>=8'} 1352 | dependencies: 1353 | to-regex-range: 5.0.1 1354 | dev: true 1355 | 1356 | /find-up@5.0.0: 1357 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1358 | engines: {node: '>=10'} 1359 | dependencies: 1360 | locate-path: 6.0.0 1361 | path-exists: 4.0.0 1362 | dev: true 1363 | 1364 | /flat-cache@3.0.4: 1365 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1366 | engines: {node: ^10.12.0 || >=12.0.0} 1367 | dependencies: 1368 | flatted: 3.2.7 1369 | rimraf: 3.0.2 1370 | dev: true 1371 | 1372 | /flatted@3.2.7: 1373 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1374 | dev: true 1375 | 1376 | /for-each@0.3.3: 1377 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1378 | dependencies: 1379 | is-callable: 1.2.7 1380 | dev: true 1381 | 1382 | /fs.realpath@1.0.0: 1383 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1384 | dev: true 1385 | 1386 | /fsevents@2.3.2: 1387 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1388 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1389 | os: [darwin] 1390 | requiresBuild: true 1391 | dev: true 1392 | optional: true 1393 | 1394 | /function-bind@1.1.1: 1395 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1396 | dev: true 1397 | 1398 | /function.prototype.name@1.1.5: 1399 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1400 | engines: {node: '>= 0.4'} 1401 | dependencies: 1402 | call-bind: 1.0.2 1403 | define-properties: 1.2.0 1404 | es-abstract: 1.21.2 1405 | functions-have-names: 1.2.3 1406 | dev: true 1407 | 1408 | /functions-have-names@1.2.3: 1409 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1410 | dev: true 1411 | 1412 | /gensync@1.0.0-beta.2: 1413 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1414 | engines: {node: '>=6.9.0'} 1415 | dev: true 1416 | 1417 | /get-intrinsic@1.2.0: 1418 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1419 | dependencies: 1420 | function-bind: 1.1.1 1421 | has: 1.0.3 1422 | has-symbols: 1.0.3 1423 | dev: true 1424 | 1425 | /get-symbol-description@1.0.0: 1426 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1427 | engines: {node: '>= 0.4'} 1428 | dependencies: 1429 | call-bind: 1.0.2 1430 | get-intrinsic: 1.2.0 1431 | dev: true 1432 | 1433 | /get-tsconfig@4.5.0: 1434 | resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} 1435 | dev: true 1436 | 1437 | /glob-parent@5.1.2: 1438 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1439 | engines: {node: '>= 6'} 1440 | dependencies: 1441 | is-glob: 4.0.3 1442 | dev: true 1443 | 1444 | /glob-parent@6.0.2: 1445 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1446 | engines: {node: '>=10.13.0'} 1447 | dependencies: 1448 | is-glob: 4.0.3 1449 | dev: true 1450 | 1451 | /glob@7.2.3: 1452 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1453 | dependencies: 1454 | fs.realpath: 1.0.0 1455 | inflight: 1.0.6 1456 | inherits: 2.0.4 1457 | minimatch: 3.1.2 1458 | once: 1.4.0 1459 | path-is-absolute: 1.0.1 1460 | dev: true 1461 | 1462 | /globals@11.12.0: 1463 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1464 | engines: {node: '>=4'} 1465 | dev: true 1466 | 1467 | /globals@13.20.0: 1468 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1469 | engines: {node: '>=8'} 1470 | dependencies: 1471 | type-fest: 0.20.2 1472 | dev: true 1473 | 1474 | /globalthis@1.0.3: 1475 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1476 | engines: {node: '>= 0.4'} 1477 | dependencies: 1478 | define-properties: 1.2.0 1479 | dev: true 1480 | 1481 | /globalyzer@0.1.0: 1482 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1483 | dev: true 1484 | 1485 | /globby@13.1.4: 1486 | resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} 1487 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1488 | dependencies: 1489 | dir-glob: 3.0.1 1490 | fast-glob: 3.2.12 1491 | ignore: 5.2.4 1492 | merge2: 1.4.1 1493 | slash: 4.0.0 1494 | dev: true 1495 | 1496 | /globrex@0.1.2: 1497 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1498 | dev: true 1499 | 1500 | /gopd@1.0.1: 1501 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1502 | dependencies: 1503 | get-intrinsic: 1.2.0 1504 | dev: true 1505 | 1506 | /graceful-fs@4.2.11: 1507 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1508 | dev: true 1509 | 1510 | /grapheme-splitter@1.0.4: 1511 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1512 | dev: true 1513 | 1514 | /has-bigints@1.0.2: 1515 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1516 | dev: true 1517 | 1518 | /has-flag@3.0.0: 1519 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1520 | engines: {node: '>=4'} 1521 | dev: true 1522 | 1523 | /has-flag@4.0.0: 1524 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1525 | engines: {node: '>=8'} 1526 | dev: true 1527 | 1528 | /has-property-descriptors@1.0.0: 1529 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1530 | dependencies: 1531 | get-intrinsic: 1.2.0 1532 | dev: true 1533 | 1534 | /has-proto@1.0.1: 1535 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1536 | engines: {node: '>= 0.4'} 1537 | dev: true 1538 | 1539 | /has-symbols@1.0.3: 1540 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1541 | engines: {node: '>= 0.4'} 1542 | dev: true 1543 | 1544 | /has-tostringtag@1.0.0: 1545 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1546 | engines: {node: '>= 0.4'} 1547 | dependencies: 1548 | has-symbols: 1.0.3 1549 | dev: true 1550 | 1551 | /has@1.0.3: 1552 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1553 | engines: {node: '>= 0.4.0'} 1554 | dependencies: 1555 | function-bind: 1.1.1 1556 | dev: true 1557 | 1558 | /ignore@5.2.4: 1559 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1560 | engines: {node: '>= 4'} 1561 | dev: true 1562 | 1563 | /import-fresh@3.3.0: 1564 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1565 | engines: {node: '>=6'} 1566 | dependencies: 1567 | parent-module: 1.0.1 1568 | resolve-from: 4.0.0 1569 | dev: true 1570 | 1571 | /imurmurhash@0.1.4: 1572 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1573 | engines: {node: '>=0.8.19'} 1574 | dev: true 1575 | 1576 | /inflight@1.0.6: 1577 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1578 | dependencies: 1579 | once: 1.4.0 1580 | wrappy: 1.0.2 1581 | dev: true 1582 | 1583 | /inherits@2.0.4: 1584 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1585 | dev: true 1586 | 1587 | /internal-slot@1.0.5: 1588 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 1589 | engines: {node: '>= 0.4'} 1590 | dependencies: 1591 | get-intrinsic: 1.2.0 1592 | has: 1.0.3 1593 | side-channel: 1.0.4 1594 | dev: true 1595 | 1596 | /is-array-buffer@3.0.2: 1597 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1598 | dependencies: 1599 | call-bind: 1.0.2 1600 | get-intrinsic: 1.2.0 1601 | is-typed-array: 1.1.10 1602 | dev: true 1603 | 1604 | /is-bigint@1.0.4: 1605 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1606 | dependencies: 1607 | has-bigints: 1.0.2 1608 | dev: true 1609 | 1610 | /is-boolean-object@1.1.2: 1611 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1612 | engines: {node: '>= 0.4'} 1613 | dependencies: 1614 | call-bind: 1.0.2 1615 | has-tostringtag: 1.0.0 1616 | dev: true 1617 | 1618 | /is-callable@1.2.7: 1619 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1620 | engines: {node: '>= 0.4'} 1621 | dev: true 1622 | 1623 | /is-core-module@2.12.0: 1624 | resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} 1625 | dependencies: 1626 | has: 1.0.3 1627 | dev: true 1628 | 1629 | /is-date-object@1.0.5: 1630 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1631 | engines: {node: '>= 0.4'} 1632 | dependencies: 1633 | has-tostringtag: 1.0.0 1634 | dev: true 1635 | 1636 | /is-docker@2.2.1: 1637 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1638 | engines: {node: '>=8'} 1639 | hasBin: true 1640 | dev: true 1641 | 1642 | /is-extglob@2.1.1: 1643 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1644 | engines: {node: '>=0.10.0'} 1645 | dev: true 1646 | 1647 | /is-glob@4.0.3: 1648 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1649 | engines: {node: '>=0.10.0'} 1650 | dependencies: 1651 | is-extglob: 2.1.1 1652 | dev: true 1653 | 1654 | /is-negative-zero@2.0.2: 1655 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1656 | engines: {node: '>= 0.4'} 1657 | dev: true 1658 | 1659 | /is-number-object@1.0.7: 1660 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1661 | engines: {node: '>= 0.4'} 1662 | dependencies: 1663 | has-tostringtag: 1.0.0 1664 | dev: true 1665 | 1666 | /is-number@7.0.0: 1667 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1668 | engines: {node: '>=0.12.0'} 1669 | dev: true 1670 | 1671 | /is-path-inside@3.0.3: 1672 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1673 | engines: {node: '>=8'} 1674 | dev: true 1675 | 1676 | /is-regex@1.1.4: 1677 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1678 | engines: {node: '>= 0.4'} 1679 | dependencies: 1680 | call-bind: 1.0.2 1681 | has-tostringtag: 1.0.0 1682 | dev: true 1683 | 1684 | /is-shared-array-buffer@1.0.2: 1685 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1686 | dependencies: 1687 | call-bind: 1.0.2 1688 | dev: true 1689 | 1690 | /is-string@1.0.7: 1691 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1692 | engines: {node: '>= 0.4'} 1693 | dependencies: 1694 | has-tostringtag: 1.0.0 1695 | dev: true 1696 | 1697 | /is-symbol@1.0.4: 1698 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1699 | engines: {node: '>= 0.4'} 1700 | dependencies: 1701 | has-symbols: 1.0.3 1702 | dev: true 1703 | 1704 | /is-typed-array@1.1.10: 1705 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 1706 | engines: {node: '>= 0.4'} 1707 | dependencies: 1708 | available-typed-arrays: 1.0.5 1709 | call-bind: 1.0.2 1710 | for-each: 0.3.3 1711 | gopd: 1.0.1 1712 | has-tostringtag: 1.0.0 1713 | dev: true 1714 | 1715 | /is-weakref@1.0.2: 1716 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1717 | dependencies: 1718 | call-bind: 1.0.2 1719 | dev: true 1720 | 1721 | /is-wsl@2.2.0: 1722 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1723 | engines: {node: '>=8'} 1724 | dependencies: 1725 | is-docker: 2.2.1 1726 | dev: true 1727 | 1728 | /isexe@2.0.0: 1729 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1730 | dev: true 1731 | 1732 | /js-sdsl@4.4.0: 1733 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} 1734 | dev: true 1735 | 1736 | /js-tokens@4.0.0: 1737 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1738 | dev: true 1739 | 1740 | /js-yaml@4.1.0: 1741 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1742 | hasBin: true 1743 | dependencies: 1744 | argparse: 2.0.1 1745 | dev: true 1746 | 1747 | /jsesc@2.5.2: 1748 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1749 | engines: {node: '>=4'} 1750 | hasBin: true 1751 | dev: true 1752 | 1753 | /json-schema-traverse@0.4.1: 1754 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1755 | dev: true 1756 | 1757 | /json-stable-stringify-without-jsonify@1.0.1: 1758 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1759 | dev: true 1760 | 1761 | /json5@1.0.2: 1762 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1763 | hasBin: true 1764 | dependencies: 1765 | minimist: 1.2.8 1766 | dev: true 1767 | 1768 | /json5@2.2.3: 1769 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1770 | engines: {node: '>=6'} 1771 | hasBin: true 1772 | dev: true 1773 | 1774 | /jsx-ast-utils@3.3.3: 1775 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} 1776 | engines: {node: '>=4.0'} 1777 | dependencies: 1778 | array-includes: 3.1.6 1779 | object.assign: 4.1.4 1780 | dev: true 1781 | 1782 | /levn@0.4.1: 1783 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1784 | engines: {node: '>= 0.8.0'} 1785 | dependencies: 1786 | prelude-ls: 1.2.1 1787 | type-check: 0.4.0 1788 | dev: true 1789 | 1790 | /locate-path@6.0.0: 1791 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1792 | engines: {node: '>=10'} 1793 | dependencies: 1794 | p-locate: 5.0.0 1795 | dev: true 1796 | 1797 | /lodash.merge@4.6.2: 1798 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1799 | dev: true 1800 | 1801 | /loose-envify@1.4.0: 1802 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1803 | hasBin: true 1804 | dependencies: 1805 | js-tokens: 4.0.0 1806 | dev: true 1807 | 1808 | /lru-cache@5.1.1: 1809 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1810 | dependencies: 1811 | yallist: 3.1.1 1812 | dev: true 1813 | 1814 | /magic-string@0.27.0: 1815 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 1816 | engines: {node: '>=12'} 1817 | dependencies: 1818 | '@jridgewell/sourcemap-codec': 1.4.15 1819 | dev: true 1820 | 1821 | /merge2@1.4.1: 1822 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1823 | engines: {node: '>= 8'} 1824 | dev: true 1825 | 1826 | /micromatch@4.0.5: 1827 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1828 | engines: {node: '>=8.6'} 1829 | dependencies: 1830 | braces: 3.0.2 1831 | picomatch: 2.3.1 1832 | dev: true 1833 | 1834 | /minimatch@3.1.2: 1835 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1836 | dependencies: 1837 | brace-expansion: 1.1.11 1838 | dev: true 1839 | 1840 | /minimist@1.2.8: 1841 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1842 | dev: true 1843 | 1844 | /ms@2.1.2: 1845 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1846 | dev: true 1847 | 1848 | /ms@2.1.3: 1849 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1850 | dev: true 1851 | 1852 | /nanoid@3.3.6: 1853 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1854 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1855 | hasBin: true 1856 | dev: true 1857 | 1858 | /natural-compare@1.4.0: 1859 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1860 | dev: true 1861 | 1862 | /node-releases@2.0.10: 1863 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 1864 | dev: true 1865 | 1866 | /object-assign@4.1.1: 1867 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1868 | engines: {node: '>=0.10.0'} 1869 | dev: true 1870 | 1871 | /object-inspect@1.12.3: 1872 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 1873 | dev: true 1874 | 1875 | /object-keys@1.1.1: 1876 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1877 | engines: {node: '>= 0.4'} 1878 | dev: true 1879 | 1880 | /object.assign@4.1.4: 1881 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 1882 | engines: {node: '>= 0.4'} 1883 | dependencies: 1884 | call-bind: 1.0.2 1885 | define-properties: 1.2.0 1886 | has-symbols: 1.0.3 1887 | object-keys: 1.1.1 1888 | dev: true 1889 | 1890 | /object.entries@1.1.6: 1891 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} 1892 | engines: {node: '>= 0.4'} 1893 | dependencies: 1894 | call-bind: 1.0.2 1895 | define-properties: 1.2.0 1896 | es-abstract: 1.21.2 1897 | dev: true 1898 | 1899 | /object.fromentries@2.0.6: 1900 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} 1901 | engines: {node: '>= 0.4'} 1902 | dependencies: 1903 | call-bind: 1.0.2 1904 | define-properties: 1.2.0 1905 | es-abstract: 1.21.2 1906 | dev: true 1907 | 1908 | /object.hasown@1.1.2: 1909 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} 1910 | dependencies: 1911 | define-properties: 1.2.0 1912 | es-abstract: 1.21.2 1913 | dev: true 1914 | 1915 | /object.values@1.1.6: 1916 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} 1917 | engines: {node: '>= 0.4'} 1918 | dependencies: 1919 | call-bind: 1.0.2 1920 | define-properties: 1.2.0 1921 | es-abstract: 1.21.2 1922 | dev: true 1923 | 1924 | /once@1.4.0: 1925 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1926 | dependencies: 1927 | wrappy: 1.0.2 1928 | dev: true 1929 | 1930 | /open@8.4.2: 1931 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} 1932 | engines: {node: '>=12'} 1933 | dependencies: 1934 | define-lazy-prop: 2.0.0 1935 | is-docker: 2.2.1 1936 | is-wsl: 2.2.0 1937 | dev: true 1938 | 1939 | /optionator@0.9.1: 1940 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1941 | engines: {node: '>= 0.8.0'} 1942 | dependencies: 1943 | deep-is: 0.1.4 1944 | fast-levenshtein: 2.0.6 1945 | levn: 0.4.1 1946 | prelude-ls: 1.2.1 1947 | type-check: 0.4.0 1948 | word-wrap: 1.2.3 1949 | dev: true 1950 | 1951 | /p-limit@3.1.0: 1952 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1953 | engines: {node: '>=10'} 1954 | dependencies: 1955 | yocto-queue: 0.1.0 1956 | dev: true 1957 | 1958 | /p-locate@5.0.0: 1959 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1960 | engines: {node: '>=10'} 1961 | dependencies: 1962 | p-limit: 3.1.0 1963 | dev: true 1964 | 1965 | /parent-module@1.0.1: 1966 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1967 | engines: {node: '>=6'} 1968 | dependencies: 1969 | callsites: 3.1.0 1970 | dev: true 1971 | 1972 | /path-exists@4.0.0: 1973 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1974 | engines: {node: '>=8'} 1975 | dev: true 1976 | 1977 | /path-is-absolute@1.0.1: 1978 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1979 | engines: {node: '>=0.10.0'} 1980 | dev: true 1981 | 1982 | /path-key@3.1.1: 1983 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1984 | engines: {node: '>=8'} 1985 | dev: true 1986 | 1987 | /path-parse@1.0.7: 1988 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1989 | dev: true 1990 | 1991 | /path-type@4.0.0: 1992 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1993 | engines: {node: '>=8'} 1994 | dev: true 1995 | 1996 | /picocolors@1.0.0: 1997 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1998 | dev: true 1999 | 2000 | /picomatch@2.3.1: 2001 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2002 | engines: {node: '>=8.6'} 2003 | dev: true 2004 | 2005 | /postcss@8.4.21: 2006 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 2007 | engines: {node: ^10 || ^12 || >=14} 2008 | dependencies: 2009 | nanoid: 3.3.6 2010 | picocolors: 1.0.0 2011 | source-map-js: 1.0.2 2012 | dev: true 2013 | 2014 | /prelude-ls@1.2.1: 2015 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2016 | engines: {node: '>= 0.8.0'} 2017 | dev: true 2018 | 2019 | /prettier-linter-helpers@1.0.0: 2020 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 2021 | engines: {node: '>=6.0.0'} 2022 | dependencies: 2023 | fast-diff: 1.2.0 2024 | dev: true 2025 | 2026 | /prettier@2.8.7: 2027 | resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} 2028 | engines: {node: '>=10.13.0'} 2029 | hasBin: true 2030 | dev: true 2031 | 2032 | /prop-types@15.8.1: 2033 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2034 | dependencies: 2035 | loose-envify: 1.4.0 2036 | object-assign: 4.1.1 2037 | react-is: 16.13.1 2038 | dev: true 2039 | 2040 | /punycode@2.3.0: 2041 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2042 | engines: {node: '>=6'} 2043 | dev: true 2044 | 2045 | /queue-microtask@1.2.3: 2046 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2047 | dev: true 2048 | 2049 | /react-dom@18.2.0(react@18.2.0): 2050 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2051 | peerDependencies: 2052 | react: ^18.2.0 2053 | dependencies: 2054 | loose-envify: 1.4.0 2055 | react: 18.2.0 2056 | scheduler: 0.23.0 2057 | dev: true 2058 | 2059 | /react-is@16.13.1: 2060 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2061 | dev: true 2062 | 2063 | /react-refresh@0.14.0: 2064 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 2065 | engines: {node: '>=0.10.0'} 2066 | dev: true 2067 | 2068 | /react@18.2.0: 2069 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2070 | engines: {node: '>=0.10.0'} 2071 | dependencies: 2072 | loose-envify: 1.4.0 2073 | dev: true 2074 | 2075 | /regexp.prototype.flags@1.4.3: 2076 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2077 | engines: {node: '>= 0.4'} 2078 | dependencies: 2079 | call-bind: 1.0.2 2080 | define-properties: 1.2.0 2081 | functions-have-names: 1.2.3 2082 | dev: true 2083 | 2084 | /resolve-from@4.0.0: 2085 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2086 | engines: {node: '>=4'} 2087 | dev: true 2088 | 2089 | /resolve@1.22.2: 2090 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 2091 | hasBin: true 2092 | dependencies: 2093 | is-core-module: 2.12.0 2094 | path-parse: 1.0.7 2095 | supports-preserve-symlinks-flag: 1.0.0 2096 | dev: true 2097 | 2098 | /resolve@2.0.0-next.4: 2099 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} 2100 | hasBin: true 2101 | dependencies: 2102 | is-core-module: 2.12.0 2103 | path-parse: 1.0.7 2104 | supports-preserve-symlinks-flag: 1.0.0 2105 | dev: true 2106 | 2107 | /reusify@1.0.4: 2108 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2109 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2110 | dev: true 2111 | 2112 | /rimraf@3.0.2: 2113 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2114 | hasBin: true 2115 | dependencies: 2116 | glob: 7.2.3 2117 | dev: true 2118 | 2119 | /rollup@3.20.2: 2120 | resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} 2121 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 2122 | hasBin: true 2123 | optionalDependencies: 2124 | fsevents: 2.3.2 2125 | dev: true 2126 | 2127 | /run-parallel@1.2.0: 2128 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2129 | dependencies: 2130 | queue-microtask: 1.2.3 2131 | dev: true 2132 | 2133 | /safe-regex-test@1.0.0: 2134 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2135 | dependencies: 2136 | call-bind: 1.0.2 2137 | get-intrinsic: 1.2.0 2138 | is-regex: 1.1.4 2139 | dev: true 2140 | 2141 | /scheduler@0.23.0: 2142 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2143 | dependencies: 2144 | loose-envify: 1.4.0 2145 | dev: true 2146 | 2147 | /semver@6.3.0: 2148 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 2149 | hasBin: true 2150 | dev: true 2151 | 2152 | /shebang-command@2.0.0: 2153 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2154 | engines: {node: '>=8'} 2155 | dependencies: 2156 | shebang-regex: 3.0.0 2157 | dev: true 2158 | 2159 | /shebang-regex@3.0.0: 2160 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2161 | engines: {node: '>=8'} 2162 | dev: true 2163 | 2164 | /side-channel@1.0.4: 2165 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2166 | dependencies: 2167 | call-bind: 1.0.2 2168 | get-intrinsic: 1.2.0 2169 | object-inspect: 1.12.3 2170 | dev: true 2171 | 2172 | /slash@4.0.0: 2173 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 2174 | engines: {node: '>=12'} 2175 | dev: true 2176 | 2177 | /source-map-js@1.0.2: 2178 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2179 | engines: {node: '>=0.10.0'} 2180 | dev: true 2181 | 2182 | /string.prototype.matchall@4.0.8: 2183 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} 2184 | dependencies: 2185 | call-bind: 1.0.2 2186 | define-properties: 1.2.0 2187 | es-abstract: 1.21.2 2188 | get-intrinsic: 1.2.0 2189 | has-symbols: 1.0.3 2190 | internal-slot: 1.0.5 2191 | regexp.prototype.flags: 1.4.3 2192 | side-channel: 1.0.4 2193 | dev: true 2194 | 2195 | /string.prototype.trim@1.2.7: 2196 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} 2197 | engines: {node: '>= 0.4'} 2198 | dependencies: 2199 | call-bind: 1.0.2 2200 | define-properties: 1.2.0 2201 | es-abstract: 1.21.2 2202 | dev: true 2203 | 2204 | /string.prototype.trimend@1.0.6: 2205 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 2206 | dependencies: 2207 | call-bind: 1.0.2 2208 | define-properties: 1.2.0 2209 | es-abstract: 1.21.2 2210 | dev: true 2211 | 2212 | /string.prototype.trimstart@1.0.6: 2213 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 2214 | dependencies: 2215 | call-bind: 1.0.2 2216 | define-properties: 1.2.0 2217 | es-abstract: 1.21.2 2218 | dev: true 2219 | 2220 | /strip-ansi@6.0.1: 2221 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2222 | engines: {node: '>=8'} 2223 | dependencies: 2224 | ansi-regex: 5.0.1 2225 | dev: true 2226 | 2227 | /strip-bom@3.0.0: 2228 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2229 | engines: {node: '>=4'} 2230 | dev: true 2231 | 2232 | /strip-json-comments@3.1.1: 2233 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2234 | engines: {node: '>=8'} 2235 | dev: true 2236 | 2237 | /supports-color@5.5.0: 2238 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2239 | engines: {node: '>=4'} 2240 | dependencies: 2241 | has-flag: 3.0.0 2242 | dev: true 2243 | 2244 | /supports-color@7.2.0: 2245 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2246 | engines: {node: '>=8'} 2247 | dependencies: 2248 | has-flag: 4.0.0 2249 | dev: true 2250 | 2251 | /supports-preserve-symlinks-flag@1.0.0: 2252 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2253 | engines: {node: '>= 0.4'} 2254 | dev: true 2255 | 2256 | /synckit@0.8.5: 2257 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} 2258 | engines: {node: ^14.18.0 || >=16.0.0} 2259 | dependencies: 2260 | '@pkgr/utils': 2.3.1 2261 | tslib: 2.5.0 2262 | dev: true 2263 | 2264 | /tapable@2.2.1: 2265 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2266 | engines: {node: '>=6'} 2267 | dev: true 2268 | 2269 | /text-table@0.2.0: 2270 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2271 | dev: true 2272 | 2273 | /tiny-glob@0.2.9: 2274 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2275 | dependencies: 2276 | globalyzer: 0.1.0 2277 | globrex: 0.1.2 2278 | dev: true 2279 | 2280 | /to-fast-properties@2.0.0: 2281 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2282 | engines: {node: '>=4'} 2283 | dev: true 2284 | 2285 | /to-regex-range@5.0.1: 2286 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2287 | engines: {node: '>=8.0'} 2288 | dependencies: 2289 | is-number: 7.0.0 2290 | dev: true 2291 | 2292 | /tsconfig-paths@3.14.2: 2293 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 2294 | dependencies: 2295 | '@types/json5': 0.0.29 2296 | json5: 1.0.2 2297 | minimist: 1.2.8 2298 | strip-bom: 3.0.0 2299 | dev: true 2300 | 2301 | /tslib@2.5.0: 2302 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 2303 | dev: true 2304 | 2305 | /type-check@0.4.0: 2306 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2307 | engines: {node: '>= 0.8.0'} 2308 | dependencies: 2309 | prelude-ls: 1.2.1 2310 | dev: true 2311 | 2312 | /type-fest@0.20.2: 2313 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2314 | engines: {node: '>=10'} 2315 | dev: true 2316 | 2317 | /typed-array-length@1.0.4: 2318 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2319 | dependencies: 2320 | call-bind: 1.0.2 2321 | for-each: 0.3.3 2322 | is-typed-array: 1.1.10 2323 | dev: true 2324 | 2325 | /typescript@5.0.4: 2326 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} 2327 | engines: {node: '>=12.20'} 2328 | hasBin: true 2329 | dev: true 2330 | 2331 | /unbox-primitive@1.0.2: 2332 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2333 | dependencies: 2334 | call-bind: 1.0.2 2335 | has-bigints: 1.0.2 2336 | has-symbols: 1.0.3 2337 | which-boxed-primitive: 1.0.2 2338 | dev: true 2339 | 2340 | /update-browserslist-db@1.0.10(browserslist@4.21.5): 2341 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 2342 | hasBin: true 2343 | peerDependencies: 2344 | browserslist: '>= 4.21.0' 2345 | dependencies: 2346 | browserslist: 4.21.5 2347 | escalade: 3.1.1 2348 | picocolors: 1.0.0 2349 | dev: true 2350 | 2351 | /uri-js@4.4.1: 2352 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2353 | dependencies: 2354 | punycode: 2.3.0 2355 | dev: true 2356 | 2357 | /vite@4.2.1(@types/node@18.15.11): 2358 | resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} 2359 | engines: {node: ^14.18.0 || >=16.0.0} 2360 | hasBin: true 2361 | peerDependencies: 2362 | '@types/node': '>= 14' 2363 | less: '*' 2364 | sass: '*' 2365 | stylus: '*' 2366 | sugarss: '*' 2367 | terser: ^5.4.0 2368 | peerDependenciesMeta: 2369 | '@types/node': 2370 | optional: true 2371 | less: 2372 | optional: true 2373 | sass: 2374 | optional: true 2375 | stylus: 2376 | optional: true 2377 | sugarss: 2378 | optional: true 2379 | terser: 2380 | optional: true 2381 | dependencies: 2382 | '@types/node': 18.15.11 2383 | esbuild: 0.17.16 2384 | postcss: 8.4.21 2385 | resolve: 1.22.2 2386 | rollup: 3.20.2 2387 | optionalDependencies: 2388 | fsevents: 2.3.2 2389 | dev: true 2390 | 2391 | /which-boxed-primitive@1.0.2: 2392 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2393 | dependencies: 2394 | is-bigint: 1.0.4 2395 | is-boolean-object: 1.1.2 2396 | is-number-object: 1.0.7 2397 | is-string: 1.0.7 2398 | is-symbol: 1.0.4 2399 | dev: true 2400 | 2401 | /which-typed-array@1.1.9: 2402 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 2403 | engines: {node: '>= 0.4'} 2404 | dependencies: 2405 | available-typed-arrays: 1.0.5 2406 | call-bind: 1.0.2 2407 | for-each: 0.3.3 2408 | gopd: 1.0.1 2409 | has-tostringtag: 1.0.0 2410 | is-typed-array: 1.1.10 2411 | dev: true 2412 | 2413 | /which@2.0.2: 2414 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2415 | engines: {node: '>= 8'} 2416 | hasBin: true 2417 | dependencies: 2418 | isexe: 2.0.0 2419 | dev: true 2420 | 2421 | /word-wrap@1.2.3: 2422 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2423 | engines: {node: '>=0.10.0'} 2424 | dev: true 2425 | 2426 | /wrappy@1.0.2: 2427 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2428 | dev: true 2429 | 2430 | /yallist@3.1.1: 2431 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2432 | dev: true 2433 | 2434 | /yocto-queue@0.1.0: 2435 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2436 | engines: {node: '>=10'} 2437 | dev: true 2438 | --------------------------------------------------------------------------------