├── src ├── vite-env.d.ts ├── main.ts └── App.vue ├── .vscode └── extensions.json ├── .npmrc ├── .prettierignore ├── .prettierrc ├── lib ├── index.ts ├── text.ts ├── blocksRenderer.ts ├── block.ts └── types │ └── index.ts ├── tsconfig.node.json ├── .gitignore ├── index.html ├── tsconfig.json ├── .eslintrc.cjs ├── .github └── workflows │ └── ci.yml ├── vite.config.ts ├── LICENSE ├── data ├── userStyle.ts ├── data-with-error.json └── data.json ├── package.json ├── test └── basic.test.ts ├── README.md ├── CHANGELOG.md └── pnpm-lock.yaml /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | strict-peer-dependencies=false 3 | auto-install-peers=true 4 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import App from './App.vue'; 3 | 4 | createApp(App).mount('#app'); 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore artifacts: 2 | node_modules 3 | *.log* 4 | dist 5 | .env 6 | coverage 7 | CHANGELOG.md 8 | pnpm-lock.yaml 9 | package.json 10 | tsconfig.json 11 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "all", 6 | "quoteProps": "consistent", 7 | "bracketSameLine": false 8 | } 9 | -------------------------------------------------------------------------------- /lib/index.ts: -------------------------------------------------------------------------------- 1 | export { BlocksRenderer as StrapiBlocks } from './blocksRenderer'; 2 | export type { 3 | BlocksComponents, 4 | ModifiersComponents, 5 | BlocksContent, 6 | } from './types'; 7 | 8 | // fix export types for vite-plugin-dts 9 | import './types'; 10 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | 27 | coverage 28 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | vue-strapi-blocks-renderer 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 7 | "skipLibCheck": true, 8 | /* Bundler mode */ 9 | "moduleResolution": "bundler", 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "jsx": "preserve", 13 | /* Linting */ 14 | "strict": true, 15 | "noUnusedLocals": true, 16 | "noUnusedParameters": true, 17 | "noFallthroughCasesInSwitch": true 18 | }, 19 | "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"], 20 | "references": [ 21 | { 22 | "path": "./tsconfig.node.json" 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true, 6 | }, 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:vue/vue3-essential', 10 | '@vue/eslint-config-typescript', 11 | // 'prettier', 12 | 'plugin:prettier/recommended', 13 | ], 14 | plugins: ['prettier'], 15 | ignorePatterns: ['dist', 'node_modules', '.env', 'coverage'], 16 | rules: { 17 | 'prettier/prettier': ['error'], 18 | // 'vue/html-indent': ['error', 4], 19 | // "vue/component-name-in-template-casing": ["error", "PascalCase"], 20 | // "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 21 | // "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 22 | }, 23 | }; 24 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | ci: 13 | runs-on: ${{ matrix.os }} 14 | 15 | strategy: 16 | matrix: 17 | os: [ubuntu-latest] 18 | node: [18] 19 | 20 | steps: 21 | - uses: actions/checkout@v4 22 | - run: corepack enable 23 | - uses: actions/setup-node@v4 24 | with: 25 | node-version: ${{ matrix.node }} 26 | cache: 'pnpm' 27 | 28 | - name: 📦 Install dependencies 29 | run: pnpm install 30 | 31 | - name: 📦 Build 32 | run: pnpm build 33 | 34 | - name: 📦 Lint 35 | run: pnpm lint 36 | 37 | - name: 📦 Test types 38 | run: pnpm test:types 39 | 40 | - name: 🧪 Test & coverage 41 | run: pnpm run test:coverage 42 | 43 | - name: 🟩 Upload coverage reports to Codecov 44 | uses: codecov/codecov-action@v3 45 | env: 46 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 47 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { resolve } from 'node:path'; 2 | import { defineConfig } from 'vite'; 3 | import vue from '@vitejs/plugin-vue'; 4 | import { name } from './package.json'; 5 | import dts from 'vite-plugin-dts'; 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [ 10 | vue(), 11 | dts({ 12 | include: ['lib/**/*.ts'], 13 | staticImport: true, 14 | insertTypesEntry: true, 15 | rollupTypes: true, 16 | }), 17 | ], 18 | test: { 19 | globals: true, 20 | environment: 'happy-dom', 21 | coverage: { 22 | exclude: ['data/**', 'lib/types/**', 'src/**', '.eslintrc.cjs'], 23 | }, 24 | }, 25 | build: { 26 | lib: { 27 | entry: resolve(__dirname, 'lib/index.ts'), 28 | name: name, 29 | fileName: (format) => `${name}.${format === 'es' ? 'm' : 'c'}js`, 30 | }, 31 | rollupOptions: { 32 | // https://rollupjs.org/configuration-options/ 33 | external: ['vue'], 34 | output: { 35 | globals: { 36 | vue: 'Vue', 37 | }, 38 | }, 39 | }, 40 | }, 41 | }); 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Niklas Fjeldberg 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/text.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | TextInlineProps, 3 | Modifier, 4 | ComponentsContextValue, 5 | } from './types'; 6 | 7 | import { name } from '../package.json'; 8 | 9 | interface TextType extends TextInlineProps { 10 | componentsContext: ComponentsContextValue; 11 | } 12 | 13 | export const Text = ({ componentsContext, text, ...modifiers }: TextType) => { 14 | // Get matching component from the context 15 | const { modifiers: modifierComponents, missingModifierTypes } = 16 | componentsContext; 17 | 18 | const modifierNames = Object.keys(modifiers) as Modifier[]; 19 | 20 | // Loop on each active modifier to wrap the text in its component 21 | return modifierNames.reduce( 22 | // @ts-ignore 23 | (children: string, modifierName: Modifier) => { 24 | // Don't wrap the text if the modifier is disabled 25 | if (!modifiers[modifierName]) return children; 26 | 27 | const ModifierComponent = modifierComponents[modifierName]; 28 | 29 | if (!ModifierComponent) { 30 | // Only warn once per missing modifier 31 | if (!missingModifierTypes.includes(modifierName)) { 32 | console.warn( 33 | `[${name}] No component found for modifier "${modifierName}"`, 34 | ); 35 | missingModifierTypes.push(modifierName); 36 | } 37 | 38 | // Don't throw an error, just ignore the modifier 39 | return children; 40 | } 41 | 42 | return ModifierComponent({ 43 | // @ts-ignore 44 | children, 45 | }); 46 | }, 47 | // By default, return the text without any wrapper to avoid useless nesting 48 | text, 49 | ); 50 | }; 51 | -------------------------------------------------------------------------------- /data/userStyle.ts: -------------------------------------------------------------------------------- 1 | import { h } from 'vue'; 2 | 3 | import type { BlocksComponents, ModifiersComponents } from '../lib/types'; 4 | 5 | export const modifiers: ModifiersComponents = { 6 | bold: (props) => h('strong', {}, props.children), 7 | italic: (props) => h('em', {}, props.children), 8 | underline: (props) => h('u', {}, props.children), 9 | strikethrough: (props) => h('del', {}, props.children), 10 | code: (props) => 11 | h('pre', {}, [ 12 | h( 13 | 'code', 14 | { 15 | class: 16 | 'text-sm sm:text-base inline-flex text-left items-center space-x-4 bg-gray-100 rounded text-black p-4 pl-6', 17 | }, 18 | props.children, 19 | ), 20 | ]), 21 | }; 22 | 23 | export const blocks: BlocksComponents = { 24 | 'paragraph': (props) => h('p', { class: 'mb-4' }, props.children), 25 | 'quote': (props) => 26 | h( 27 | 'blockquote', 28 | { 29 | class: 30 | 'p-4 my-4 border-s-4 border-gray-300 bg-gray-50 dark:border-gray-500 dark:bg-gray-800', 31 | }, 32 | props.children, 33 | ), 34 | 'code': (props) => h('code', {}, props.children), 35 | 'heading': ({ level, children }) => { 36 | switch (level) { 37 | case 1: 38 | return h('h1', { class: 'text-8xl' }, children); 39 | case 2: 40 | return h('h2', { class: 'text-6xl' }, children); 41 | case 3: 42 | return h('h3', { class: 'text-4xl' }, children); 43 | case 4: 44 | return h('h4', { class: 'text-2xl' }, children); 45 | case 5: 46 | return h('h5', { class: 'text-xl' }, children); 47 | case 6: 48 | return h('h6', { class: 'text-lg' }, children); 49 | } 50 | }, 51 | 'link': (props) => 52 | h( 53 | 'a', 54 | { href: props.url, class: 'underline hover:no-underline' }, 55 | props.children, 56 | ), 57 | 'list': (props) => { 58 | const isUl = props.format === 'ordered'; 59 | return h( 60 | isUl ? 'ol' : 'ul', 61 | { class: `${isUl ? 'list-decimal' : 'list-disc'} ml-6` }, 62 | props.children, 63 | ); 64 | }, 65 | 66 | 'list-item': (props) => h('li', { class: '' }, props.children), 67 | 'image': (props) => 68 | h('img', { 69 | src: props.image.url, 70 | alt: props.image.alternativeText || undefined, 71 | class: '', 72 | }), 73 | }; 74 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-strapi-blocks-renderer", 3 | "private": false, 4 | "version": "0.2.2", 5 | "description": "A Vue renderer for the Strapi's Blocks rich text editor. Compatible with Nuxt.", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer.git" 9 | }, 10 | "homepage": "https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer#readme", 11 | "bugs": { 12 | "url": "https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/issues" 13 | }, 14 | "license": "MIT", 15 | "type": "module", 16 | "files": [ 17 | "dist" 18 | ], 19 | "main": "./dist/vue-strapi-blocks-renderer.cjs", 20 | "module": "./dist/vue-strapi-blocks-renderer.mjs", 21 | "types": "./dist/vue-strapi-blocks-renderer.d.ts", 22 | "exports": { 23 | ".": { 24 | "import": "./dist/vue-strapi-blocks-renderer.mjs", 25 | "require": "./dist/vue-strapi-blocks-renderer.cjs", 26 | "types": "./dist/vue-strapi-blocks-renderer.d.ts" 27 | } 28 | }, 29 | "scripts": { 30 | "dev": "vite", 31 | "build": "vite build", 32 | "clean": "rimraf coverage node_modules dist", 33 | "preview": "vite preview", 34 | "lint": "pnpm lint:js && pnpm lint:prettier", 35 | "lint:js": "eslint --ext \".js,.ts,.vue\" --ignore-path .gitignore .", 36 | "lint:prettier": "prettier --check .", 37 | "lint:fix": "prettier --write --list-different . && pnpm lint:js --fix", 38 | "test": "vitest run", 39 | "test:coverage": "vitest run --coverage", 40 | "test:types": "vue-tsc --noEmit", 41 | "release:pre": "pnpm build && pnpm lint && pnpm test:types && pnpm test", 42 | "release": "pnpm release:pre && changelogen --release && npm publish && git push --follow-tags", 43 | "releaseBeta": "pnpm release:pre && changelogen --release && npm publish --tag beta && git push --follow-tags" 44 | }, 45 | "peerDependencies": { 46 | "vue": ">=3.4.0" 47 | }, 48 | "devDependencies": { 49 | "@rushstack/eslint-patch": "^1.10.1", 50 | "@types/node": "^20.12.2", 51 | "@vitejs/plugin-vue": "^5.0.4", 52 | "@vitest/coverage-v8": "^1.4.0", 53 | "@vue/eslint-config-typescript": "^13.0.0", 54 | "@vue/test-utils": "^2.4.5", 55 | "changelogen": "^0.5.5", 56 | "eslint": "^8.57.0", 57 | "eslint-config-prettier": "^9.1.0", 58 | "eslint-plugin-prettier": "^5.1.3", 59 | "eslint-plugin-vue": "^9.24.0", 60 | "happy-dom": "^14.3.10", 61 | "prettier": "^3.2.5", 62 | "typescript": "^5.4.3", 63 | "vite": "^5.2.7", 64 | "vite-plugin-dts": "^3.8.1", 65 | "vitest": "^1.4.0", 66 | "vue": "^3.4.21", 67 | "vue-tsc": "^2.0.7" 68 | }, 69 | "keywords": [ 70 | "strapi", 71 | "blocks", 72 | "strapi blocks", 73 | "renderer", 74 | "nuxt", 75 | "vue" 76 | ] 77 | } -------------------------------------------------------------------------------- /lib/blocksRenderer.ts: -------------------------------------------------------------------------------- 1 | import { h, Fragment, Comment } from 'vue'; 2 | 3 | import { Block } from './block'; 4 | 5 | import type { 6 | ComponentsContextValue, 7 | BlocksRendererProps, 8 | BlocksComponents, 9 | ModifiersComponents, 10 | } from './types'; 11 | 12 | export const defaultComponents: ComponentsContextValue = { 13 | blocks: { 14 | 'paragraph': (props) => h('p', {}, props.children), 15 | 'quote': (props) => h('blockquote', {}, props.children), 16 | 'code': (props) => h('pre', {}, [h('code', {}, props.plainText)]), 17 | 'heading': ({ level, children }) => { 18 | switch (level) { 19 | case 1: 20 | return h('h1', {}, children); 21 | case 2: 22 | return h('h2', {}, children); 23 | case 3: 24 | return h('h3', {}, children); 25 | case 4: 26 | return h('h4', {}, children); 27 | case 5: 28 | return h('h5', {}, children); 29 | case 6: 30 | return h('h6', {}, children); 31 | } 32 | }, 33 | 'link': (props) => h('a', { href: props.url }, props.children), 34 | 'list': (props) => { 35 | const isUl = props.format === 'ordered'; 36 | return h(isUl ? 'ol' : 'ul', {}, props.children); 37 | }, 38 | 39 | 'list-item': (props) => h('li', {}, props.children), 40 | 'image': ({ image }) => 41 | h('img', { 42 | src: image.url, 43 | alt: image.alternativeText || undefined, 44 | }), 45 | }, 46 | modifiers: { 47 | bold: (props) => h('strong', {}, props.children), 48 | italic: (props) => h('em', {}, props.children), 49 | underline: (props) => h('u', {}, props.children), 50 | strikethrough: (props) => h('del', {}, props.children), 51 | code: (props) => h('code', {}, props.children), 52 | }, 53 | missingBlockTypes: [], 54 | missingModifierTypes: [], 55 | }; 56 | 57 | export const BlocksRenderer = (props: BlocksRendererProps) => { 58 | // Merge default blocks with the ones provided by the user 59 | const blocks: BlocksComponents = { 60 | ...defaultComponents.blocks, 61 | ...props.blocks, 62 | }; 63 | 64 | // Merge default modifiers with the ones provided by the user 65 | const modifiers: ModifiersComponents = { 66 | ...defaultComponents.modifiers, 67 | ...props.modifiers, 68 | }; 69 | 70 | const componentsContext: ComponentsContextValue = { 71 | blocks, 72 | modifiers, 73 | missingBlockTypes: [], 74 | missingModifierTypes: [], 75 | }; 76 | 77 | if (!props.content) throw new Error('BlocksRenderer content is empty'); 78 | 79 | const divs = props.content.map((content) => 80 | Block({ content, componentsContext }), 81 | ); 82 | 83 | if (componentsContext.missingBlockTypes.length) 84 | divs.unshift( 85 | h(Comment, `missingBlockTypes: ${componentsContext.missingBlockTypes}`), 86 | ); 87 | 88 | if (componentsContext.missingModifierTypes.length) 89 | divs.unshift( 90 | h( 91 | Comment, 92 | `missingModifierTypes: ${componentsContext.missingModifierTypes}`, 93 | ), 94 | ); 95 | 96 | return h(Fragment, divs); 97 | }; 98 | -------------------------------------------------------------------------------- /lib/block.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | StrapiNode, 3 | ComponentsContextValue, 4 | GetPropsFromNode, 5 | } from './types'; 6 | 7 | import type { VNode } from 'vue'; 8 | import { h } from 'vue'; 9 | import { Text } from './text'; 10 | import { name } from '../package.json'; 11 | 12 | type BlockComponentProps = GetPropsFromNode; 13 | 14 | interface BlockProps { 15 | content: StrapiNode; 16 | componentsContext: ComponentsContextValue; 17 | } 18 | 19 | const voidTypes = ['image']; 20 | 21 | /** 22 | * Add props that are specific to a block type, and not present in that node type 23 | */ 24 | const augmentProps = (content: StrapiNode) => { 25 | const { children: childrenNodes, type, ...props } = content; 26 | 27 | if (type === 'code') { 28 | // Builds a plain text string from an array of nodes, regardless of links or modifiers 29 | const getPlainText = (children: typeof childrenNodes): string => { 30 | return children.reduce((currentPlainText, node) => { 31 | if (node.type === 'text') return currentPlainText.concat(node.text); 32 | 33 | if (node.type === 'link') 34 | return currentPlainText.concat(getPlainText(node.children)); 35 | 36 | // If type is not accounted for skip it. 37 | return currentPlainText; 38 | }, ''); 39 | }; 40 | 41 | return { 42 | ...props, 43 | plainText: getPlainText(content.children), 44 | }; 45 | } 46 | 47 | return props; 48 | }; 49 | 50 | export const Block = ({ content, componentsContext }: BlockProps) => { 51 | const { children: childrenNodes, type, ...props } = content; 52 | 53 | // Get matching component from the context 54 | const { blocks, missingBlockTypes } = componentsContext; 55 | 56 | const BlockComponent = blocks[type] as ( 57 | props: BlockComponentProps, 58 | ) => VNode | undefined; 59 | 60 | if (!BlockComponent) { 61 | // Only warn once per missing block 62 | if (!missingBlockTypes.includes(type)) { 63 | console.warn(`[${name}] No component found for block type "${type}"`); 64 | missingBlockTypes.push(type); 65 | } 66 | 67 | // Don't throw an error, just ignore the block 68 | return null; 69 | } 70 | 71 | // Handle void types separately as they should not render children 72 | if (voidTypes.includes(type)) { 73 | return BlockComponent(props); 74 | } 75 | 76 | // Handle empty paragraphs separately as they should render a
tag 77 | if ( 78 | type === 'paragraph' && 79 | childrenNodes.length === 1 && 80 | childrenNodes[0].type === 'text' && 81 | childrenNodes[0].text === '' 82 | ) { 83 | return h('br'); 84 | } 85 | 86 | const augmentedProps = augmentProps(content); 87 | 88 | const theChildren: any = childrenNodes.map((childNode) => { 89 | if (childNode.type === 'text') { 90 | // eslint-disable-next-line @typescript-eslint/no-unused-vars 91 | const { type: _type, ...childNodeProps } = childNode; 92 | 93 | return Text({ componentsContext, ...childNodeProps }); 94 | /* return ; */ 95 | } 96 | 97 | return Block({ content: childNode, componentsContext }); 98 | }); 99 | 100 | return BlockComponent({ children: theChildren, ...augmentedProps }); 101 | }; 102 | -------------------------------------------------------------------------------- /lib/types/index.ts: -------------------------------------------------------------------------------- 1 | import type { VNode } from 'vue'; 2 | // text 3 | // ---------- 4 | 5 | export interface TextInlineNode { 6 | type: 'text'; 7 | text: string; 8 | bold?: boolean; 9 | italic?: boolean; 10 | underline?: boolean; 11 | strikethrough?: boolean; 12 | code?: boolean; 13 | } 14 | 15 | export type Modifier = Exclude; 16 | 17 | export type TextInlineProps = Omit; 18 | 19 | // blocksRenderer 20 | // ---------- 21 | 22 | interface LinkInlineNode { 23 | type: 'link'; 24 | url: string; 25 | children: TextInlineNode[]; 26 | } 27 | 28 | type DefaultInlineNode = TextInlineNode | LinkInlineNode; 29 | 30 | interface ListItemInlineNode { 31 | type: 'list-item'; 32 | children: DefaultInlineNode[]; 33 | } 34 | 35 | // Inline node types 36 | type NonTextInlineNode = 37 | | Exclude 38 | | ListItemInlineNode; 39 | 40 | interface ParagraphBlockNode { 41 | type: 'paragraph'; 42 | children: DefaultInlineNode[]; 43 | } 44 | 45 | interface QuoteBlockNode { 46 | type: 'quote'; 47 | children: DefaultInlineNode[]; 48 | } 49 | 50 | export interface CodeBlockNode { 51 | type: 'code'; 52 | children: DefaultInlineNode[]; 53 | } 54 | 55 | interface HeadingBlockNode { 56 | type: 'heading'; 57 | level: 1 | 2 | 3 | 4 | 5 | 6; 58 | children: DefaultInlineNode[]; 59 | } 60 | 61 | interface ListBlockNode { 62 | type: 'list'; 63 | format: 'ordered' | 'unordered'; 64 | children: (ListItemInlineNode | ListBlockNode)[]; 65 | } 66 | 67 | interface ImageBlockNode { 68 | type: 'image'; 69 | image: { 70 | name: string; 71 | alternativeText?: string | null; 72 | url: string; 73 | caption?: string | null; 74 | width: number; 75 | height: number; 76 | formats?: Record; 77 | hash: string; 78 | ext: string; 79 | mime: string; 80 | size: number; 81 | previewUrl?: string | null; 82 | provider: string; 83 | provider_metadata?: unknown | null; 84 | createdAt: string; 85 | updatedAt: string; 86 | }; 87 | children: [{ type: 'text'; text: '' }]; 88 | } 89 | 90 | // Block node types 91 | export type RootNode = 92 | | ParagraphBlockNode 93 | | QuoteBlockNode 94 | | CodeBlockNode 95 | | HeadingBlockNode 96 | | ListBlockNode 97 | | ImageBlockNode; 98 | 99 | export type StrapiNode = RootNode | NonTextInlineNode; 100 | 101 | // Util to convert a node to the props of the corresponding component 102 | export type GetPropsFromNode = Omit & { 103 | children?: VNode; 104 | // For code blocks, add a plainText property that is created by this renderer 105 | plainText?: T extends { type: 'code' } ? string : never; 106 | }; 107 | 108 | // Map of all block types to their matching component 109 | export type BlocksComponents = { 110 | [K in StrapiNode['type']]: ( 111 | // Find the BlockProps in the union that match the type key of the current BlockNode and use it as the component props 112 | props: GetPropsFromNode>, 113 | ) => VNode; 114 | }; 115 | 116 | // Map of all inline types to their matching components 117 | export type ModifiersComponents = { 118 | [K in Modifier]: ( 119 | props: GetPropsFromNode>, 120 | ) => VNode; 121 | }; 122 | 123 | export interface ComponentsContextValue { 124 | blocks: BlocksComponents; 125 | modifiers: ModifiersComponents; 126 | missingBlockTypes: string[]; 127 | missingModifierTypes: string[]; 128 | } 129 | 130 | export type BlocksContent = RootNode[]; 131 | 132 | export interface BlocksRendererProps { 133 | content: BlocksContent; 134 | blocks?: Partial; 135 | modifiers?: Partial; 136 | } 137 | -------------------------------------------------------------------------------- /test/basic.test.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils'; 2 | import { describe, it, expect } from 'vitest'; 3 | 4 | import { StrapiBlocks, type BlocksContent } from '../lib'; 5 | import data from '../data/data.json'; 6 | 7 | const blocks = mount(StrapiBlocks, { 8 | props: { 9 | content: data as BlocksContent, 10 | }, 11 | }); 12 | 13 | describe('render blocks', () => { 14 | it('h1', () => { 15 | expect(blocks.html()).toContain('

Header 1

'); 16 | }); 17 | it('h2', () => { 18 | expect(blocks.html()).toContain('

Header 2

'); 19 | }); 20 | it('h3', () => { 21 | expect(blocks.html()).toContain('

Header 3

'); 22 | }); 23 | it('h4', () => { 24 | expect(blocks.html()).toContain('

Header 4

'); 25 | }); 26 | it('h5', () => { 27 | expect(blocks.html()).toContain('
Header 5
'); 28 | }); 29 | it('h6', () => { 30 | expect(blocks.html()).toContain('
Header 6
'); 31 | }); 32 | it('p', () => { 33 | expect(blocks.html()).toContain('

Normal text.

'); 34 | }); 35 | it('p > strong', () => { 36 | expect(blocks.html()).toContain('

Bold text

'); 37 | }); 38 | it('p > em', () => { 39 | expect(blocks.html()).toContain('

Italic text

'); 40 | }); 41 | it('p > u', () => { 42 | expect(blocks.html()).toContain('

Underlined text

'); 43 | }); 44 | it('p > del > u > em > strong', () => { 45 | expect(blocks.html()).toContain( 46 | '

Bold, italic, underlined, and strikethorugh text

', 47 | ); 48 | }); 49 | it('a', () => { 50 | expect(blocks.html()).toContain( 51 | 'Root link', 52 | ); 53 | }); 54 | it('p > a', () => { 55 | expect(blocks.html()).toContain( 56 | '

Inline link

', 57 | ); 58 | }); 59 | it('p > code', () => { 60 | expect(blocks.html()).toContain('

Code string

'); 61 | }); 62 | it('pre > code', () => { 63 | expect(blocks.html()).toContain('
Code blocklink
'); 64 | }); 65 | it('ol', () => { 66 | expect(blocks.html()).toContain('
    '); 67 | expect(blocks.html()).toContain('
  1. Ordered list 1
  2. '); 68 | }); 69 | it('ul', () => { 70 | expect(blocks.html()).toContain('
      '); 71 | expect(blocks.html()).toContain('
    • Unordered list 1
    • '); 72 | }); 73 | it('blockquote', () => { 74 | expect(blocks.html()).toContain('
      Quote
      '); 75 | }); 76 | it('img', () => { 77 | expect(blocks.html()).toContain( 78 | 'Alternative text', 79 | ); 80 | }); 81 | 82 | const dataWithBreak: BlocksContent = [ 83 | { type: 'paragraph', children: [{ text: '', type: 'text' }] }, 84 | ]; 85 | 86 | const blocks4 = mount(StrapiBlocks, { props: { content: dataWithBreak } }); 87 | 88 | it('empty p => br', () => { 89 | expect(blocks4.html()).toContain('
      '); 90 | }); 91 | }); 92 | 93 | import dataError from '../data/data-with-error.json'; 94 | import { h } from 'vue'; 95 | 96 | const blocks2 = mount(StrapiBlocks, { 97 | props: { 98 | content: dataError as BlocksContent, 99 | }, 100 | }); 101 | 102 | describe('Missing blocks are comments', () => { 103 | it('Missing block modifiers', () => { 104 | expect(blocks2.html()).toContain( 105 | 'missingModifierTypes: nonExistingModifier1,nonExistingModifier2', 106 | ); 107 | }); 108 | it('Missing block types', () => { 109 | expect(blocks2.html()).toContain( 110 | 'missingBlockTypes: nonExistingType1,text2,nonExistingType2', 111 | ); 112 | }); 113 | }); 114 | 115 | describe('no content in input', () => { 116 | it('error', () => { 117 | // @ts-expect-error 118 | expect(() => StrapiBlocks()).toThrowError(); 119 | }); 120 | }); 121 | 122 | const blocks3 = mount(StrapiBlocks, { 123 | props: { 124 | content: data as BlocksContent, 125 | blocks: { 126 | paragraph: (props) => h('p', { class: 'text-red' }, props.children), 127 | }, 128 | modifiers: { 129 | code: (props) => h('code', { class: 'text-blue' }, props.children), 130 | }, 131 | }, 132 | }); 133 | 134 | describe('render custom components and modifiers', () => { 135 | it('custom component', () => { 136 | expect(blocks3.html()).toContain('class="text-red"'); 137 | }); 138 | it('custom modifier', () => { 139 | expect(blocks3.html()).toContain('class="text-blue"'); 140 | }); 141 | }); 142 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Strapi Blocks Renderer 2 | 3 | [![npm version][npm-version-src]][npm-version-href] 4 | [![npm downloads][npm-downloads-src]][npm-downloads-href] 5 | [![License][license-src]][license-href] 6 | [![codecov](https://codecov.io/gh/niklasfjeldberg/vue-strapi-blocks-renderer/graph/badge.svg?token=GU7ZGIRG0H)](https://codecov.io/gh/niklasfjeldberg/vue-strapi-blocks-renderer) 7 | [![ci](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/actions/workflows/ci.yml/badge.svg)](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/actions/workflows/ci.yml) 8 | 9 | Easily render the content of Strapi's new Blocks rich text editor in your Vue frontend. 10 | 11 | Based on [@strapi/blocks-react-renderer](https://github.com/strapi/blocks-react-renderer) 12 | 13 | - ✨ [Release Notes](/CHANGELOG.md) 14 | - 👀 [Demo](https://reslear.github.io/vue-strapi-blocks-renderer-demo/) 15 | - 🏀 [Online stackblitz playground](https://stackblitz.com/github/niklasfjeldberg/vue-strapi-blocks-renderer?file=src%2FApp.vue) 16 | 17 | ## Features 18 | 19 | - No dependencies 20 | - Utilizes Vue futures 21 | - Custom block types and modifiers 22 | - Works with other editors that Strapi Blocks 23 | - Typescript support 24 | 25 | ## Installation 26 | 27 | Install the Blocks renderer and its peer dependencies: 28 | 29 | ```sh 30 | npm install vue-strapi-blocks-renderer vue 31 | ``` 32 | 33 | ## Basic usage 34 | 35 | After fetching your Strapi content, you can use the BlocksRenderer component to render the data from a blocks attribute. Pass the array of blocks coming from your Strapi API to the `content` prop: 36 | 37 | ```ts 38 | import { StrapiBlocks, type BlocksContent } from 'vue-strapi-blocks-renderer'; 39 | 40 | // Content should come from your Strapi API 41 | const content: BlocksContent = [ 42 | { 43 | type: 'paragraph', 44 | children: [{ type: 'text', text: 'A simple paragraph' }], 45 | }, 46 | ]; 47 | 48 | const VNode = StrapiBlocks({ content: content }); 49 | ``` 50 | 51 | ```html 52 | 55 | ``` 56 | 57 | Or 58 | 59 | ```ts 60 | import { StrapiBlocks } from 'vue-strapi-blocks-renderer'; 61 | ``` 62 | 63 | ```html 64 | 67 | ``` 68 | 69 | ## Custom components 70 | 71 | You can provide your own Vue components to the renderer, both for blocks and modifier. They will be merged with the default components, so you can override only the ones you need. 72 | 73 | - Blocks are full-width elements, usually at the root of the content. The available options are: 74 | - paragraph 75 | - heading (receives `level`) 76 | - list (receives `format`) 77 | - quote 78 | - code (receives `plainText`) 79 | - image (receives `image`) 80 | - link (receives `url`) 81 | - Modifiers are inline elements, used to change the appearance of fragments of text within a block. The available options are: 82 | - bold 83 | - italic 84 | - underline 85 | - strikethrough 86 | - code 87 | 88 | To provide your own components, pass an object to the blocks and modifiers props of the renderer. For each type, the value should be a React component that will receive the props of the block or modifier. Make sure to always render the children, so that the nested blocks and modifiers are rendered as well. 89 | 90 | ```ts 91 | import { h } from 'vue'; 92 | 93 | import { 94 | StrapiBlocks, 95 | type BlocksComponents, 96 | type ModifiersComponents, 97 | } from 'vue-strapi-blocks-renderer'; 98 | 99 | const userBlocks: BlocksComponents = { 100 | // Will include the class "mb-4" on all paragraphs 101 | paragraph: (props) => h('p', { class: 'mb-4' }, props.children), 102 | }; 103 | 104 | const userModifier: ModifiersComponents = { 105 | // Will include the class "text-red" on all bold text 106 | bold: (props) => h('strong', { class: 'text-red' }, props.children), 107 | }; 108 | 109 | const VNode = StrapiBlocks({ 110 | content: content, 111 | modifier: userModifier, 112 | blocks: userBlocks, 113 | }); 114 | ``` 115 | 116 | 117 | 118 | [npm-version-src]: https://img.shields.io/npm/v/vue-strapi-blocks-renderer/latest.svg?style=flat&colorA=18181B&colorB=28CF8D 119 | [npm-version-href]: https://npmjs.com/package/vue-strapi-blocks-renderer 120 | [npm-downloads-src]: https://img.shields.io/npm/dm/vue-strapi-blocks-renderer.svg?style=flat&colorA=18181B&colorB=28CF8D 121 | [npm-downloads-href]: https://npmjs.com/package/vue-strapi-blocks-renderer 122 | [license-src]: https://img.shields.io/npm/l/vue-strapi-blocks-renderer.svg?style=flat&colorA=18181B&colorB=28CF8D 123 | [license-href]: https://npmjs.com/package/vue-strapi-blocks-renderer 124 | -------------------------------------------------------------------------------- /data/data-with-error.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "nonExistingType1", 4 | "children": [{ "text": "Gives warning", "type": "text" }] 5 | }, 6 | { 7 | "type": "paragraph", 8 | "children": [ 9 | { "text": "Gives warning.", "nonExistingModifier1": true, "type": "text" } 10 | ] 11 | }, 12 | { 13 | "type": "paragraph", 14 | "children": [ 15 | { "text": "Gives warning, non existing text type.", "type": "text2" } 16 | ] 17 | }, 18 | { 19 | "type": "nonExistingType2", 20 | "children": [{ "text": "Gives warning", "type": "text" }] 21 | }, 22 | { 23 | "type": "paragraph", 24 | "children": [ 25 | { "text": "Gives warning.", "nonExistingModifier2": true, "type": "text" } 26 | ] 27 | }, 28 | { 29 | "type": "heading", 30 | "level": 1, 31 | "children": [{ "text": "Header 1", "type": "text" }] 32 | }, 33 | { 34 | "type": "heading", 35 | "level": 2, 36 | "children": [{ "text": "Header 2", "type": "text" }] 37 | }, 38 | { 39 | "type": "heading", 40 | "level": 3, 41 | "children": [{ "text": "Header 3", "type": "text" }] 42 | }, 43 | { 44 | "type": "heading", 45 | "level": 4, 46 | "children": [{ "text": "Header 4", "type": "text" }] 47 | }, 48 | { 49 | "type": "heading", 50 | "level": 5, 51 | "children": [{ "text": "Header 5", "type": "text" }] 52 | }, 53 | { 54 | "type": "heading", 55 | "level": 6, 56 | "children": [{ "text": "Header 6", "type": "text" }] 57 | }, 58 | { 59 | "type": "paragraph", 60 | "children": [{ "text": "Normal text.", "type": "text" }] 61 | }, 62 | { 63 | "type": "paragraph", 64 | "children": [{ "bold": true, "text": "Bold text", "type": "text" }] 65 | }, 66 | { 67 | "type": "paragraph", 68 | "children": [{ "text": "Italic text", "type": "text", "italic": true }] 69 | }, 70 | { 71 | "type": "paragraph", 72 | "children": [ 73 | { "text": "Underlined text", "type": "text", "underline": true } 74 | ] 75 | }, 76 | { 77 | "type": "paragraph", 78 | "children": [ 79 | { 80 | "text": "Striketrough text", 81 | "type": "text", 82 | "strikethrough": true 83 | } 84 | ] 85 | }, 86 | { 87 | "type": "paragraph", 88 | "children": [ 89 | { 90 | "bold": true, 91 | "text": "Bold, italic, underlined, and strikethorugh text", 92 | "type": "text", 93 | "italic": true, 94 | "underline": true, 95 | "strikethrough": true 96 | } 97 | ] 98 | }, 99 | { 100 | "type": "paragraph", 101 | "children": [ 102 | { "text": "", "type": "text" }, 103 | { 104 | "url": "https://google.com", 105 | "type": "link", 106 | "children": [{ "text": "Link", "type": "text" }] 107 | }, 108 | { 109 | "bold": true, 110 | "text": "", 111 | "type": "text", 112 | "italic": true, 113 | "underline": true, 114 | "strikethrough": true 115 | } 116 | ] 117 | }, 118 | { 119 | "type": "paragraph", 120 | "children": [{ "code": true, "text": "Code string", "type": "text" }] 121 | }, 122 | { 123 | "type": "code", 124 | "children": [{ "text": "Code block", "type": "text" }] 125 | }, 126 | { 127 | "type": "list", 128 | "format": "ordered", 129 | "children": [ 130 | { 131 | "type": "list-item", 132 | "children": [{ "text": "Ordered list 1", "type": "text" }] 133 | }, 134 | { 135 | "type": "list-item", 136 | "children": [{ "text": "Ordered list 2", "type": "text" }] 137 | }, 138 | { 139 | "type": "list-item", 140 | "children": [{ "text": "Ordered list 3", "type": "text" }] 141 | }, 142 | { 143 | "type": "list-item", 144 | "children": [{ "text": "Ordered list 4", "type": "text" }] 145 | } 146 | ] 147 | }, 148 | { 149 | "type": "list", 150 | "format": "unordered", 151 | "children": [ 152 | { 153 | "type": "list-item", 154 | "children": [{ "text": "Unordered list 1", "type": "text" }] 155 | }, 156 | { 157 | "type": "list-item", 158 | "children": [{ "text": "Unordered list 2", "type": "text" }] 159 | }, 160 | { 161 | "type": "list-item", 162 | "children": [{ "text": "Unordered list 3", "type": "text" }] 163 | }, 164 | { 165 | "type": "list-item", 166 | "children": [{ "text": "Unordered list 4", "type": "text" }] 167 | } 168 | ] 169 | }, 170 | { 171 | "type": "quote", 172 | "children": [{ "text": "Quote", "type": "text" }] 173 | }, 174 | { 175 | "type": "image", 176 | "image": { 177 | "ext": ".jpg", 178 | "url": "https://cdn.pixabay.com/photo/2016/12/03/15/44/fireworks-1880045_960_720.jpg", 179 | "hash": "fireworks-1880045_960_720_eed2a42e8a", 180 | "mime": "image/jpeg", 181 | "name": "fireworks-1880045_960_720.jpg", 182 | "size": 133.73, 183 | "width": 1920, 184 | "height": 1119, 185 | "caption": null, 186 | "formats": null, 187 | "provider": null, 188 | "createdAt": "2023-10-06T12:11:14.159Z", 189 | "updatedAt": "2023-10-06T12:11:14.159Z", 190 | "previewUrl": null, 191 | "alternativeText": "Alternative text", 192 | "provider_metadata": null 193 | }, 194 | "children": [{ "text": "", "type": "text" }] 195 | }, 196 | { "type": "paragraph", "children": [{ "text": "", "type": "text" }] } 197 | ] 198 | -------------------------------------------------------------------------------- /data/data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "heading", 4 | "level": 1, 5 | "children": [{ "text": "Header 1", "type": "text" }] 6 | }, 7 | { 8 | "type": "heading", 9 | "level": 2, 10 | "children": [{ "text": "Header 2", "type": "text" }] 11 | }, 12 | { 13 | "type": "heading", 14 | "level": 3, 15 | "children": [{ "text": "Header 3", "type": "text" }] 16 | }, 17 | { 18 | "type": "heading", 19 | "level": 4, 20 | "children": [{ "text": "Header 4", "type": "text" }] 21 | }, 22 | { 23 | "type": "heading", 24 | "level": 5, 25 | "children": [{ "text": "Header 5", "type": "text" }] 26 | }, 27 | { 28 | "type": "heading", 29 | "level": 6, 30 | "children": [{ "text": "Header 6", "type": "text" }] 31 | }, 32 | { 33 | "type": "paragraph", 34 | "children": [{ "text": "Normal text.", "type": "text" }] 35 | }, 36 | { 37 | "type": "paragraph", 38 | "children": [{ "text": "Two
      incoming", "type": "text" }] 39 | }, 40 | { 41 | "type": "paragraph", 42 | "children": [{ "text": "", "type": "text" }] 43 | }, 44 | { 45 | "type": "paragraph", 46 | "children": [{ "text": "", "type": "text" }] 47 | }, 48 | { 49 | "type": "paragraph", 50 | "children": [{ "bold": true, "text": "Bold text", "type": "text" }] 51 | }, 52 | { 53 | "type": "paragraph", 54 | "children": [{ "text": "Italic text", "type": "text", "italic": true }] 55 | }, 56 | { 57 | "type": "paragraph", 58 | "children": [ 59 | { "text": "Underlined text", "type": "text", "underline": true } 60 | ] 61 | }, 62 | { 63 | "type": "paragraph", 64 | "children": [ 65 | { 66 | "text": "Striketrough text", 67 | "type": "text", 68 | "strikethrough": true 69 | } 70 | ] 71 | }, 72 | { 73 | "type": "paragraph", 74 | "children": [ 75 | { 76 | "bold": true, 77 | "text": "Bold, italic, underlined, and strikethorugh text", 78 | "type": "text", 79 | "italic": true, 80 | "underline": true, 81 | "strikethrough": true 82 | } 83 | ] 84 | }, 85 | { 86 | "type": "link", 87 | "url": "https://google.com", 88 | "children": [{ "text": "Root link", "type": "text" }] 89 | }, 90 | { 91 | "type": "paragraph", 92 | "children": [ 93 | { "text": "", "type": "text" }, 94 | { 95 | "url": "https://google.com", 96 | "type": "link", 97 | "children": [{ "text": "Inline link", "type": "text" }] 98 | }, 99 | { 100 | "bold": true, 101 | "text": "", 102 | "type": "text", 103 | "italic": true, 104 | "underline": true, 105 | "strikethrough": true 106 | } 107 | ] 108 | }, 109 | { 110 | "type": "paragraph", 111 | "children": [{ "code": true, "text": "Code string", "type": "text" }] 112 | }, 113 | { 114 | "type": "code", 115 | "children": [ 116 | { "text": "Code block", "type": "text" }, 117 | { 118 | "type": "link", 119 | "url": "https://google.com", 120 | "children": [{ "text": "link", "type": "text" }] 121 | }, 122 | { 123 | "type": "paragraph", 124 | "children": [{ "code": true, "text": "Code string", "type": "text" }] 125 | } 126 | ] 127 | }, 128 | { 129 | "type": "list", 130 | "format": "ordered", 131 | "children": [ 132 | { 133 | "type": "list-item", 134 | "children": [{ "text": "Ordered list 1", "type": "text" }] 135 | }, 136 | { 137 | "type": "list-item", 138 | "children": [{ "text": "Ordered list 2", "type": "text" }] 139 | }, 140 | { 141 | "type": "list-item", 142 | "children": [{ "text": "Ordered list 3", "type": "text" }] 143 | }, 144 | { 145 | "type": "list-item", 146 | "children": [{ "text": "Ordered list 4", "type": "text" }] 147 | } 148 | ] 149 | }, 150 | { 151 | "type": "list", 152 | "format": "unordered", 153 | "children": [ 154 | { 155 | "type": "list-item", 156 | "children": [{ "text": "Unordered list 1", "type": "text" }] 157 | }, 158 | { 159 | "type": "list-item", 160 | "children": [{ "text": "Unordered list 2", "type": "text" }] 161 | }, 162 | { 163 | "type": "list-item", 164 | "children": [{ "text": "Unordered list 3", "type": "text" }] 165 | }, 166 | { 167 | "type": "list-item", 168 | "children": [{ "text": "Unordered list 4", "type": "text" }] 169 | } 170 | ] 171 | }, 172 | { 173 | "type": "quote", 174 | "children": [{ "text": "Quote", "type": "text" }] 175 | }, 176 | { 177 | "type": "image", 178 | "image": { 179 | "ext": ".jpg", 180 | "url": "https://cdn.pixabay.com/photo/2016/12/03/15/44/fireworks-1880045_960_720.jpg", 181 | "hash": "fireworks-1880045_960_720_eed2a42e8a", 182 | "mime": "image/jpeg", 183 | "name": "fireworks-1880045_960_720.jpg", 184 | "size": 133.73, 185 | "width": 1920, 186 | "height": 1119, 187 | "caption": null, 188 | "formats": null, 189 | "provider": null, 190 | "createdAt": "2023-10-06T12:11:14.159Z", 191 | "updatedAt": "2023-10-06T12:11:14.159Z", 192 | "previewUrl": null, 193 | "alternativeText": "Alternative text", 194 | "provider_metadata": null 195 | }, 196 | "children": [{ "text": "", "type": "text" }] 197 | }, 198 | { "type": "paragraph", "children": [{ "text": "", "type": "text" }] } 199 | ] 200 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v0.2.2 4 | 5 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.2.1...v0.2.2) 6 | 7 | ### 🩹 Fixes 8 | 9 | - Lint formatting ([a97fb9b](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a97fb9b)) 10 | - Add files to lint ignore ([bcc7344](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/bcc7344)) 11 | - Prettier formatting ([5424265](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/5424265)) 12 | - Peerdependenci 3.4 and above ([5c1d4d9](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/5c1d4d9)) 13 | 14 | ### 🏡 Chore 15 | 16 | - **release:** V0.2.1 ([dcd954c](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/dcd954c)) 17 | 18 | ### ❤️ Contributors 19 | 20 | - Niklas Fjeldberg 21 | 22 | ## v0.2.1 23 | 24 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.2.0...v0.2.1) 25 | 26 | ### 🩹 Fixes 27 | 28 | - Formatting ([352d41e](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/352d41e)) 29 | - Remove unneded peerDependencie ([55e91f3](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/55e91f3)) 30 | - Render empty paragraph as br elements ([#25](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/pull/25)) 31 | - Remove old ts plugin ([111a1d5](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/111a1d5)) 32 | - Add br to test data ([1b3958b](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/1b3958b)) 33 | 34 | ### 🏡 Chore 35 | 36 | - **dep:** Update packages ([c25be63](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/c25be63)) 37 | 38 | ### ✅ Tests 39 | 40 | - Added p => br test ([ede0a25](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/ede0a25)) 41 | 42 | ### ❤️ Contributors 43 | 44 | - Niklas Fjeldberg 45 | - Reslear 46 | 47 | ## v0.2.0 48 | 49 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.1.2...v0.2.0) 50 | 51 | ### 🚀 Enhancements 52 | 53 | - ⚠️ Render Fragment insead div wrapper ([c40487b](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/c40487b)) 54 | 55 | ### 🩹 Fixes 56 | 57 | - Prettier formatting ([108cbee](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/108cbee)) 58 | - Lint + prettier code ([2a2599c](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/2a2599c)) 59 | - Missing blocks tests locking for wrong string ([b5e27a1](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/b5e27a1)) 60 | - Formatting ([ba4288e](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/ba4288e)) 61 | 62 | ### 📖 Documentation 63 | 64 | - Features section ([eb4a755](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/eb4a755)) 65 | 66 | ### 🏡 Chore 67 | 68 | - **dep:** Update packages ([6c69722](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/6c69722)) 69 | 70 | #### ⚠️ Breaking Changes 71 | 72 | - ⚠️ Render Fragment insead div wrapper ([c40487b](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/c40487b)) 73 | 74 | ### ❤️ Contributors 75 | 76 | - Niklas Fjeldberg 77 | - Reslear 78 | 79 | ## v0.1.2 80 | 81 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.1.1...v0.1.2) 82 | 83 | ### 🚀 Enhancements 84 | 85 | - Types ([a74b7b2](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a74b7b2)) 86 | 87 | ### 🩹 Fixes 88 | 89 | - Prettier formatting ([c026b2a](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/c026b2a)) 90 | - Add new files ([caead90](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/caead90)) 91 | - Improve github actions ([7c35a03](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/7c35a03)) 92 | - Rep ([b3baae2](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/b3baae2)) 93 | 94 | ### 💅 Refactors 95 | 96 | - Move to pnpm + add new scripts ([8272a69](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/8272a69)) 97 | - Eslint ignore to config file ([2541231](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/2541231)) 98 | 99 | ### 📖 Documentation 100 | 101 | - Fix ([40ba470](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/40ba470)) 102 | - Added CI badge ([8014c61](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/8014c61)) 103 | - Improve formating ([dfa31a7](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/dfa31a7)) 104 | 105 | ### ✅ Tests 106 | 107 | - Testing for custom modifiers and components ([65a42ff](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/65a42ff)) 108 | 109 | ### ❤️ Contributors 110 | 111 | - Niklas Fjeldberg 112 | - Reslear 113 | 114 | ## v0.1.1 115 | 116 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.1.0...v0.1.1) 117 | 118 | ### 🩹 Fixes 119 | 120 | - Remove dep ([a6165ae](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a6165ae)) 121 | - Wrong props used in code block ([19e4d4a](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/19e4d4a)) 122 | 123 | ### 💅 Refactors 124 | 125 | - Comment + clean code ([bdd91bb](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/bdd91bb)) 126 | 127 | ### ✅ Tests 128 | 129 | - Improve testing ([b33897a](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/b33897a)) 130 | 131 | ### ❤️ Contributors 132 | 133 | - Niklas Fjeldberg 134 | 135 | ## v0.1.0 136 | 137 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.13...v0.1.0) 138 | 139 | ### 🩹 Fixes 140 | 141 | - Path ([92afc9d](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/92afc9d)) 142 | - Switch + recursive updates error ([8281e5c](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/8281e5c)) 143 | - Change dep to devDep ([95f6dfe](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/95f6dfe)) 144 | - Some types fixed + cleaning code ([ce9c36b](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/ce9c36b)) 145 | 146 | ### 💅 Refactors 147 | 148 | - ⚠️ From useStrapiBlocks to StrapiBlocks ([a058bc8](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a058bc8)) 149 | 150 | ### 📖 Documentation 151 | 152 | - Coverage badge ([1e74727](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/1e74727)) 153 | 154 | ### ✅ Tests 155 | 156 | - Add coverage test + test non existing blocks ([6b39a49](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/6b39a49)) 157 | 158 | #### ⚠️ Breaking Changes 159 | 160 | - ⚠️ From useStrapiBlocks to StrapiBlocks ([a058bc8](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a058bc8)) 161 | 162 | ### ❤️ Contributors 163 | 164 | - Niklas Fjeldberg 165 | 166 | ## v0.0.13 167 | 168 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.12...v0.0.13) 169 | 170 | ### 🩹 Fixes 171 | 172 | - Refactor and improve lib strcuture ([a18e930](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a18e930)) 173 | - Compsoable path ([cfe7905](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/cfe7905)) 174 | - Added peerdep ([e1fc6ce](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/e1fc6ce)) 175 | - Eslint ([c48e579](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/c48e579)) 176 | - Eslint ([eba1553](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/eba1553)) 177 | 178 | ### ✅ Tests 179 | 180 | - Tests for all blocks to render ([83bf238](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/83bf238)) 181 | 182 | ### ❤️ Contributors 183 | 184 | - Niklas Fjeldberg 185 | 186 | ## v0.0.12 187 | 188 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.11...v0.0.12) 189 | 190 | ## v0.0.11 191 | 192 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.10...v0.0.11) 193 | 194 | ### 🚀 Enhancements 195 | 196 | - Export more types ([9d13e7c](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/9d13e7c)) 197 | 198 | ### 🩹 Fixes 199 | 200 | - Simplify test data structure ([e610628](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/e610628)) 201 | - Types location ([1828923](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/1828923)) 202 | - Wrong content type ([4a56e19](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/4a56e19)) 203 | - Imporove types ([3f343cc](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/3f343cc)) 204 | 205 | ### 📖 Documentation 206 | 207 | - Correct name for install ([7aa2eb5](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/7aa2eb5)) 208 | - Custom components ([a5041cd](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a5041cd)) 209 | 210 | ### ❤️ Contributors 211 | 212 | - Niklas Fjeldberg 213 | 214 | ## v0.0.10 215 | 216 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.9...v0.0.10) 217 | 218 | ### 🩹 Fixes 219 | 220 | - Code block and string correct format ([2fa4513](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/2fa4513)) 221 | 222 | ### 📖 Documentation 223 | 224 | - Badges + playground ([aad4892](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/aad4892)) 225 | 226 | ### ✅ Tests 227 | 228 | - Added code block to test data ([d9d568a](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/d9d568a)) 229 | 230 | ### ❤️ Contributors 231 | 232 | - Niklas Fjeldberg 233 | 234 | ## v0.0.9 235 | 236 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.8...v0.0.9) 237 | 238 | ### 🩹 Fixes 239 | 240 | - Misc ([6f4a5e1](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/6f4a5e1)) 241 | 242 | ### 🏡 Chore 243 | 244 | - **release:** V0.0.8 ([719fea4](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/719fea4)) 245 | 246 | ### ❤️ Contributors 247 | 248 | - Niklas Fjeldberg 249 | 250 | ## v0.0.8 251 | 252 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.7...v0.0.8) 253 | 254 | ### 🩹 Fixes 255 | 256 | - Package ([bfee719](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/bfee719)) 257 | 258 | ### ❤️ Contributors 259 | 260 | - Niklas Fjeldberg 261 | 262 | ## v0.0.7 263 | 264 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.6...v0.0.7) 265 | 266 | ### 🩹 Fixes 267 | 268 | - Package rep url ([9e6f014](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/9e6f014)) 269 | 270 | ### ❤️ Contributors 271 | 272 | - Niklas Fjeldberg 273 | 274 | ## v0.0.6 275 | 276 | [compare changes](https://github.com/niklasfjeldberg/nuxt-multi-tracker/compare/v0.0.5...v0.0.6) 277 | 278 | ## v0.0.5 279 | 280 | [compare changes](https://github.com/niklasfjeldberg/nuxt-multi-tracker/compare/v0.0.4...v0.0.5) 281 | 282 | ### 🩹 Fixes 283 | 284 | - Remove comments ([48f296f](https://github.com/niklasfjeldberg/nuxt-multi-tracker/commit/48f296f)) 285 | - Package ([b5a683e](https://github.com/niklasfjeldberg/nuxt-multi-tracker/commit/b5a683e)) 286 | 287 | ### ❤️ Contributors 288 | 289 | - Niklas Fjeldberg 290 | 291 | ## v0.0.4 292 | 293 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.2...v0.0.4) 294 | 295 | ### 🚀 Enhancements 296 | 297 | - Release ([03002c0](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/03002c0)) 298 | 299 | ### 🏡 Chore 300 | 301 | - **release:** V0.0.2 ([5716bed](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/5716bed)) 302 | - **release:** V0.0.3 ([b24e009](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/b24e009)) 303 | 304 | ### ❤️ Contributors 305 | 306 | - Niklas Fjeldberg 307 | 308 | ## v0.0.3 309 | 310 | [compare changes](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/compare/v0.0.2...v0.0.3) 311 | 312 | ## v0.0.2 313 | 314 | ### 📖 Documentation 315 | 316 | - Add readme ([a98a3fe](https://github.com/niklasfjeldberg/vue-strapi-blocks-renderer/commit/a98a3fe)) 317 | 318 | ### ❤️ Contributors 319 | 320 | - Niklas Fjeldberg 321 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | '@rushstack/eslint-patch': 9 | specifier: ^1.10.1 10 | version: 1.10.1 11 | '@types/node': 12 | specifier: ^20.12.2 13 | version: 20.12.2 14 | '@vitejs/plugin-vue': 15 | specifier: ^5.0.4 16 | version: 5.0.4(vite@5.2.7)(vue@3.4.21) 17 | '@vitest/coverage-v8': 18 | specifier: ^1.4.0 19 | version: 1.4.0(vitest@1.4.0) 20 | '@vue/eslint-config-typescript': 21 | specifier: ^13.0.0 22 | version: 13.0.0(eslint-plugin-vue@9.24.0)(eslint@8.57.0)(typescript@5.4.3) 23 | '@vue/test-utils': 24 | specifier: ^2.4.5 25 | version: 2.4.5 26 | changelogen: 27 | specifier: ^0.5.5 28 | version: 0.5.5 29 | eslint: 30 | specifier: ^8.57.0 31 | version: 8.57.0 32 | eslint-config-prettier: 33 | specifier: ^9.1.0 34 | version: 9.1.0(eslint@8.57.0) 35 | eslint-plugin-prettier: 36 | specifier: ^5.1.3 37 | version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) 38 | eslint-plugin-vue: 39 | specifier: ^9.24.0 40 | version: 9.24.0(eslint@8.57.0) 41 | happy-dom: 42 | specifier: ^14.3.10 43 | version: 14.3.10 44 | prettier: 45 | specifier: ^3.2.5 46 | version: 3.2.5 47 | typescript: 48 | specifier: ^5.4.3 49 | version: 5.4.3 50 | vite: 51 | specifier: ^5.2.7 52 | version: 5.2.7(@types/node@20.12.2) 53 | vite-plugin-dts: 54 | specifier: ^3.8.1 55 | version: 3.8.1(@types/node@20.12.2)(typescript@5.4.3)(vite@5.2.7) 56 | vitest: 57 | specifier: ^1.4.0 58 | version: 1.4.0(@types/node@20.12.2)(happy-dom@14.3.10) 59 | vue: 60 | specifier: ^3.4.21 61 | version: 3.4.21(typescript@5.4.3) 62 | vue-tsc: 63 | specifier: ^2.0.7 64 | version: 2.0.7(typescript@5.4.3) 65 | 66 | packages: 67 | 68 | /@aashutoshrathi/word-wrap@1.2.6: 69 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 70 | engines: {node: '>=0.10.0'} 71 | dev: true 72 | 73 | /@ampproject/remapping@2.3.0: 74 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 75 | engines: {node: '>=6.0.0'} 76 | dependencies: 77 | '@jridgewell/gen-mapping': 0.3.5 78 | '@jridgewell/trace-mapping': 0.3.25 79 | dev: true 80 | 81 | /@babel/helper-string-parser@7.24.1: 82 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 83 | engines: {node: '>=6.9.0'} 84 | dev: true 85 | 86 | /@babel/helper-validator-identifier@7.22.20: 87 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 88 | engines: {node: '>=6.9.0'} 89 | dev: true 90 | 91 | /@babel/parser@7.24.1: 92 | resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} 93 | engines: {node: '>=6.0.0'} 94 | hasBin: true 95 | dependencies: 96 | '@babel/types': 7.24.0 97 | dev: true 98 | 99 | /@babel/types@7.24.0: 100 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 101 | engines: {node: '>=6.9.0'} 102 | dependencies: 103 | '@babel/helper-string-parser': 7.24.1 104 | '@babel/helper-validator-identifier': 7.22.20 105 | to-fast-properties: 2.0.0 106 | dev: true 107 | 108 | /@bcoe/v8-coverage@0.2.3: 109 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 110 | dev: true 111 | 112 | /@esbuild/aix-ppc64@0.20.2: 113 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 114 | engines: {node: '>=12'} 115 | cpu: [ppc64] 116 | os: [aix] 117 | requiresBuild: true 118 | dev: true 119 | optional: true 120 | 121 | /@esbuild/android-arm64@0.20.2: 122 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 123 | engines: {node: '>=12'} 124 | cpu: [arm64] 125 | os: [android] 126 | requiresBuild: true 127 | dev: true 128 | optional: true 129 | 130 | /@esbuild/android-arm@0.20.2: 131 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 132 | engines: {node: '>=12'} 133 | cpu: [arm] 134 | os: [android] 135 | requiresBuild: true 136 | dev: true 137 | optional: true 138 | 139 | /@esbuild/android-x64@0.20.2: 140 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 141 | engines: {node: '>=12'} 142 | cpu: [x64] 143 | os: [android] 144 | requiresBuild: true 145 | dev: true 146 | optional: true 147 | 148 | /@esbuild/darwin-arm64@0.20.2: 149 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 150 | engines: {node: '>=12'} 151 | cpu: [arm64] 152 | os: [darwin] 153 | requiresBuild: true 154 | dev: true 155 | optional: true 156 | 157 | /@esbuild/darwin-x64@0.20.2: 158 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 159 | engines: {node: '>=12'} 160 | cpu: [x64] 161 | os: [darwin] 162 | requiresBuild: true 163 | dev: true 164 | optional: true 165 | 166 | /@esbuild/freebsd-arm64@0.20.2: 167 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 168 | engines: {node: '>=12'} 169 | cpu: [arm64] 170 | os: [freebsd] 171 | requiresBuild: true 172 | dev: true 173 | optional: true 174 | 175 | /@esbuild/freebsd-x64@0.20.2: 176 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 177 | engines: {node: '>=12'} 178 | cpu: [x64] 179 | os: [freebsd] 180 | requiresBuild: true 181 | dev: true 182 | optional: true 183 | 184 | /@esbuild/linux-arm64@0.20.2: 185 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 186 | engines: {node: '>=12'} 187 | cpu: [arm64] 188 | os: [linux] 189 | requiresBuild: true 190 | dev: true 191 | optional: true 192 | 193 | /@esbuild/linux-arm@0.20.2: 194 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 195 | engines: {node: '>=12'} 196 | cpu: [arm] 197 | os: [linux] 198 | requiresBuild: true 199 | dev: true 200 | optional: true 201 | 202 | /@esbuild/linux-ia32@0.20.2: 203 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 204 | engines: {node: '>=12'} 205 | cpu: [ia32] 206 | os: [linux] 207 | requiresBuild: true 208 | dev: true 209 | optional: true 210 | 211 | /@esbuild/linux-loong64@0.20.2: 212 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 213 | engines: {node: '>=12'} 214 | cpu: [loong64] 215 | os: [linux] 216 | requiresBuild: true 217 | dev: true 218 | optional: true 219 | 220 | /@esbuild/linux-mips64el@0.20.2: 221 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 222 | engines: {node: '>=12'} 223 | cpu: [mips64el] 224 | os: [linux] 225 | requiresBuild: true 226 | dev: true 227 | optional: true 228 | 229 | /@esbuild/linux-ppc64@0.20.2: 230 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 231 | engines: {node: '>=12'} 232 | cpu: [ppc64] 233 | os: [linux] 234 | requiresBuild: true 235 | dev: true 236 | optional: true 237 | 238 | /@esbuild/linux-riscv64@0.20.2: 239 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 240 | engines: {node: '>=12'} 241 | cpu: [riscv64] 242 | os: [linux] 243 | requiresBuild: true 244 | dev: true 245 | optional: true 246 | 247 | /@esbuild/linux-s390x@0.20.2: 248 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 249 | engines: {node: '>=12'} 250 | cpu: [s390x] 251 | os: [linux] 252 | requiresBuild: true 253 | dev: true 254 | optional: true 255 | 256 | /@esbuild/linux-x64@0.20.2: 257 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 258 | engines: {node: '>=12'} 259 | cpu: [x64] 260 | os: [linux] 261 | requiresBuild: true 262 | dev: true 263 | optional: true 264 | 265 | /@esbuild/netbsd-x64@0.20.2: 266 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 267 | engines: {node: '>=12'} 268 | cpu: [x64] 269 | os: [netbsd] 270 | requiresBuild: true 271 | dev: true 272 | optional: true 273 | 274 | /@esbuild/openbsd-x64@0.20.2: 275 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 276 | engines: {node: '>=12'} 277 | cpu: [x64] 278 | os: [openbsd] 279 | requiresBuild: true 280 | dev: true 281 | optional: true 282 | 283 | /@esbuild/sunos-x64@0.20.2: 284 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 285 | engines: {node: '>=12'} 286 | cpu: [x64] 287 | os: [sunos] 288 | requiresBuild: true 289 | dev: true 290 | optional: true 291 | 292 | /@esbuild/win32-arm64@0.20.2: 293 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 294 | engines: {node: '>=12'} 295 | cpu: [arm64] 296 | os: [win32] 297 | requiresBuild: true 298 | dev: true 299 | optional: true 300 | 301 | /@esbuild/win32-ia32@0.20.2: 302 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 303 | engines: {node: '>=12'} 304 | cpu: [ia32] 305 | os: [win32] 306 | requiresBuild: true 307 | dev: true 308 | optional: true 309 | 310 | /@esbuild/win32-x64@0.20.2: 311 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 312 | engines: {node: '>=12'} 313 | cpu: [x64] 314 | os: [win32] 315 | requiresBuild: true 316 | dev: true 317 | optional: true 318 | 319 | /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): 320 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 321 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 322 | peerDependencies: 323 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 324 | dependencies: 325 | eslint: 8.57.0 326 | eslint-visitor-keys: 3.4.3 327 | dev: true 328 | 329 | /@eslint-community/regexpp@4.10.0: 330 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 331 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 332 | dev: true 333 | 334 | /@eslint/eslintrc@2.1.4: 335 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 336 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 337 | dependencies: 338 | ajv: 6.12.6 339 | debug: 4.3.4 340 | espree: 9.6.1 341 | globals: 13.24.0 342 | ignore: 5.3.1 343 | import-fresh: 3.3.0 344 | js-yaml: 4.1.0 345 | minimatch: 3.1.2 346 | strip-json-comments: 3.1.1 347 | transitivePeerDependencies: 348 | - supports-color 349 | dev: true 350 | 351 | /@eslint/js@8.57.0: 352 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 353 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 354 | dev: true 355 | 356 | /@humanwhocodes/config-array@0.11.14: 357 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 358 | engines: {node: '>=10.10.0'} 359 | dependencies: 360 | '@humanwhocodes/object-schema': 2.0.3 361 | debug: 4.3.4 362 | minimatch: 3.1.2 363 | transitivePeerDependencies: 364 | - supports-color 365 | dev: true 366 | 367 | /@humanwhocodes/module-importer@1.0.1: 368 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 369 | engines: {node: '>=12.22'} 370 | dev: true 371 | 372 | /@humanwhocodes/object-schema@2.0.3: 373 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 374 | dev: true 375 | 376 | /@isaacs/cliui@8.0.2: 377 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 378 | engines: {node: '>=12'} 379 | dependencies: 380 | string-width: 5.1.2 381 | string-width-cjs: /string-width@4.2.3 382 | strip-ansi: 7.1.0 383 | strip-ansi-cjs: /strip-ansi@6.0.1 384 | wrap-ansi: 8.1.0 385 | wrap-ansi-cjs: /wrap-ansi@7.0.0 386 | dev: true 387 | 388 | /@istanbuljs/schema@0.1.3: 389 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 390 | engines: {node: '>=8'} 391 | dev: true 392 | 393 | /@jest/schemas@29.6.3: 394 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 395 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 396 | dependencies: 397 | '@sinclair/typebox': 0.27.8 398 | dev: true 399 | 400 | /@jridgewell/gen-mapping@0.3.5: 401 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 402 | engines: {node: '>=6.0.0'} 403 | dependencies: 404 | '@jridgewell/set-array': 1.2.1 405 | '@jridgewell/sourcemap-codec': 1.4.15 406 | '@jridgewell/trace-mapping': 0.3.25 407 | dev: true 408 | 409 | /@jridgewell/resolve-uri@3.1.2: 410 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 411 | engines: {node: '>=6.0.0'} 412 | dev: true 413 | 414 | /@jridgewell/set-array@1.2.1: 415 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 416 | engines: {node: '>=6.0.0'} 417 | dev: true 418 | 419 | /@jridgewell/sourcemap-codec@1.4.15: 420 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 421 | dev: true 422 | 423 | /@jridgewell/trace-mapping@0.3.25: 424 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 425 | dependencies: 426 | '@jridgewell/resolve-uri': 3.1.2 427 | '@jridgewell/sourcemap-codec': 1.4.15 428 | dev: true 429 | 430 | /@microsoft/api-extractor-model@7.28.13(@types/node@20.12.2): 431 | resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} 432 | dependencies: 433 | '@microsoft/tsdoc': 0.14.2 434 | '@microsoft/tsdoc-config': 0.16.2 435 | '@rushstack/node-core-library': 4.0.2(@types/node@20.12.2) 436 | transitivePeerDependencies: 437 | - '@types/node' 438 | dev: true 439 | 440 | /@microsoft/api-extractor@7.43.0(@types/node@20.12.2): 441 | resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} 442 | hasBin: true 443 | dependencies: 444 | '@microsoft/api-extractor-model': 7.28.13(@types/node@20.12.2) 445 | '@microsoft/tsdoc': 0.14.2 446 | '@microsoft/tsdoc-config': 0.16.2 447 | '@rushstack/node-core-library': 4.0.2(@types/node@20.12.2) 448 | '@rushstack/rig-package': 0.5.2 449 | '@rushstack/terminal': 0.10.0(@types/node@20.12.2) 450 | '@rushstack/ts-command-line': 4.19.1(@types/node@20.12.2) 451 | lodash: 4.17.21 452 | minimatch: 3.0.8 453 | resolve: 1.22.8 454 | semver: 7.5.4 455 | source-map: 0.6.1 456 | typescript: 5.4.2 457 | transitivePeerDependencies: 458 | - '@types/node' 459 | dev: true 460 | 461 | /@microsoft/tsdoc-config@0.16.2: 462 | resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} 463 | dependencies: 464 | '@microsoft/tsdoc': 0.14.2 465 | ajv: 6.12.6 466 | jju: 1.4.0 467 | resolve: 1.19.0 468 | dev: true 469 | 470 | /@microsoft/tsdoc@0.14.2: 471 | resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} 472 | dev: true 473 | 474 | /@nodelib/fs.scandir@2.1.5: 475 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 476 | engines: {node: '>= 8'} 477 | dependencies: 478 | '@nodelib/fs.stat': 2.0.5 479 | run-parallel: 1.2.0 480 | dev: true 481 | 482 | /@nodelib/fs.stat@2.0.5: 483 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 484 | engines: {node: '>= 8'} 485 | dev: true 486 | 487 | /@nodelib/fs.walk@1.2.8: 488 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 489 | engines: {node: '>= 8'} 490 | dependencies: 491 | '@nodelib/fs.scandir': 2.1.5 492 | fastq: 1.17.1 493 | dev: true 494 | 495 | /@one-ini/wasm@0.1.1: 496 | resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} 497 | dev: true 498 | 499 | /@pkgjs/parseargs@0.11.0: 500 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 501 | engines: {node: '>=14'} 502 | requiresBuild: true 503 | dev: true 504 | optional: true 505 | 506 | /@pkgr/core@0.1.1: 507 | resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} 508 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 509 | dev: true 510 | 511 | /@rollup/pluginutils@5.1.0: 512 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 513 | engines: {node: '>=14.0.0'} 514 | peerDependencies: 515 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 516 | peerDependenciesMeta: 517 | rollup: 518 | optional: true 519 | dependencies: 520 | '@types/estree': 1.0.5 521 | estree-walker: 2.0.2 522 | picomatch: 2.3.1 523 | dev: true 524 | 525 | /@rollup/rollup-android-arm-eabi@4.13.2: 526 | resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} 527 | cpu: [arm] 528 | os: [android] 529 | requiresBuild: true 530 | dev: true 531 | optional: true 532 | 533 | /@rollup/rollup-android-arm64@4.13.2: 534 | resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} 535 | cpu: [arm64] 536 | os: [android] 537 | requiresBuild: true 538 | dev: true 539 | optional: true 540 | 541 | /@rollup/rollup-darwin-arm64@4.13.2: 542 | resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} 543 | cpu: [arm64] 544 | os: [darwin] 545 | requiresBuild: true 546 | dev: true 547 | optional: true 548 | 549 | /@rollup/rollup-darwin-x64@4.13.2: 550 | resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} 551 | cpu: [x64] 552 | os: [darwin] 553 | requiresBuild: true 554 | dev: true 555 | optional: true 556 | 557 | /@rollup/rollup-linux-arm-gnueabihf@4.13.2: 558 | resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} 559 | cpu: [arm] 560 | os: [linux] 561 | requiresBuild: true 562 | dev: true 563 | optional: true 564 | 565 | /@rollup/rollup-linux-arm64-gnu@4.13.2: 566 | resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} 567 | cpu: [arm64] 568 | os: [linux] 569 | requiresBuild: true 570 | dev: true 571 | optional: true 572 | 573 | /@rollup/rollup-linux-arm64-musl@4.13.2: 574 | resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} 575 | cpu: [arm64] 576 | os: [linux] 577 | requiresBuild: true 578 | dev: true 579 | optional: true 580 | 581 | /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: 582 | resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} 583 | cpu: [ppc64le] 584 | os: [linux] 585 | requiresBuild: true 586 | dev: true 587 | optional: true 588 | 589 | /@rollup/rollup-linux-riscv64-gnu@4.13.2: 590 | resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} 591 | cpu: [riscv64] 592 | os: [linux] 593 | requiresBuild: true 594 | dev: true 595 | optional: true 596 | 597 | /@rollup/rollup-linux-s390x-gnu@4.13.2: 598 | resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} 599 | cpu: [s390x] 600 | os: [linux] 601 | requiresBuild: true 602 | dev: true 603 | optional: true 604 | 605 | /@rollup/rollup-linux-x64-gnu@4.13.2: 606 | resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} 607 | cpu: [x64] 608 | os: [linux] 609 | requiresBuild: true 610 | dev: true 611 | optional: true 612 | 613 | /@rollup/rollup-linux-x64-musl@4.13.2: 614 | resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} 615 | cpu: [x64] 616 | os: [linux] 617 | requiresBuild: true 618 | dev: true 619 | optional: true 620 | 621 | /@rollup/rollup-win32-arm64-msvc@4.13.2: 622 | resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} 623 | cpu: [arm64] 624 | os: [win32] 625 | requiresBuild: true 626 | dev: true 627 | optional: true 628 | 629 | /@rollup/rollup-win32-ia32-msvc@4.13.2: 630 | resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} 631 | cpu: [ia32] 632 | os: [win32] 633 | requiresBuild: true 634 | dev: true 635 | optional: true 636 | 637 | /@rollup/rollup-win32-x64-msvc@4.13.2: 638 | resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} 639 | cpu: [x64] 640 | os: [win32] 641 | requiresBuild: true 642 | dev: true 643 | optional: true 644 | 645 | /@rushstack/eslint-patch@1.10.1: 646 | resolution: {integrity: sha512-S3Kq8e7LqxkA9s7HKLqXGTGck1uwis5vAXan3FnU5yw1Ec5hsSGnq4s/UCaSqABPOnOTg7zASLyst7+ohgWexg==} 647 | dev: true 648 | 649 | /@rushstack/node-core-library@4.0.2(@types/node@20.12.2): 650 | resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} 651 | peerDependencies: 652 | '@types/node': '*' 653 | peerDependenciesMeta: 654 | '@types/node': 655 | optional: true 656 | dependencies: 657 | '@types/node': 20.12.2 658 | fs-extra: 7.0.1 659 | import-lazy: 4.0.0 660 | jju: 1.4.0 661 | resolve: 1.22.8 662 | semver: 7.5.4 663 | z-schema: 5.0.5 664 | dev: true 665 | 666 | /@rushstack/rig-package@0.5.2: 667 | resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} 668 | dependencies: 669 | resolve: 1.22.8 670 | strip-json-comments: 3.1.1 671 | dev: true 672 | 673 | /@rushstack/terminal@0.10.0(@types/node@20.12.2): 674 | resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} 675 | peerDependencies: 676 | '@types/node': '*' 677 | peerDependenciesMeta: 678 | '@types/node': 679 | optional: true 680 | dependencies: 681 | '@rushstack/node-core-library': 4.0.2(@types/node@20.12.2) 682 | '@types/node': 20.12.2 683 | supports-color: 8.1.1 684 | dev: true 685 | 686 | /@rushstack/ts-command-line@4.19.1(@types/node@20.12.2): 687 | resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} 688 | dependencies: 689 | '@rushstack/terminal': 0.10.0(@types/node@20.12.2) 690 | '@types/argparse': 1.0.38 691 | argparse: 1.0.10 692 | string-argv: 0.3.2 693 | transitivePeerDependencies: 694 | - '@types/node' 695 | dev: true 696 | 697 | /@sinclair/typebox@0.27.8: 698 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 699 | dev: true 700 | 701 | /@types/argparse@1.0.38: 702 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 703 | dev: true 704 | 705 | /@types/estree@1.0.5: 706 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 707 | dev: true 708 | 709 | /@types/istanbul-lib-coverage@2.0.6: 710 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 711 | dev: true 712 | 713 | /@types/json-schema@7.0.15: 714 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 715 | dev: true 716 | 717 | /@types/node@20.12.2: 718 | resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} 719 | dependencies: 720 | undici-types: 5.26.5 721 | dev: true 722 | 723 | /@types/semver@7.5.8: 724 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 725 | dev: true 726 | 727 | /@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.3): 728 | resolution: {integrity: sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==} 729 | engines: {node: ^18.18.0 || >=20.0.0} 730 | peerDependencies: 731 | '@typescript-eslint/parser': ^7.0.0 732 | eslint: ^8.56.0 733 | typescript: '*' 734 | peerDependenciesMeta: 735 | typescript: 736 | optional: true 737 | dependencies: 738 | '@eslint-community/regexpp': 4.10.0 739 | '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.3) 740 | '@typescript-eslint/scope-manager': 7.5.0 741 | '@typescript-eslint/type-utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) 742 | '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) 743 | '@typescript-eslint/visitor-keys': 7.5.0 744 | debug: 4.3.4 745 | eslint: 8.57.0 746 | graphemer: 1.4.0 747 | ignore: 5.3.1 748 | natural-compare: 1.4.0 749 | semver: 7.6.0 750 | ts-api-utils: 1.3.0(typescript@5.4.3) 751 | typescript: 5.4.3 752 | transitivePeerDependencies: 753 | - supports-color 754 | dev: true 755 | 756 | /@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.4.3): 757 | resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} 758 | engines: {node: ^18.18.0 || >=20.0.0} 759 | peerDependencies: 760 | eslint: ^8.56.0 761 | typescript: '*' 762 | peerDependenciesMeta: 763 | typescript: 764 | optional: true 765 | dependencies: 766 | '@typescript-eslint/scope-manager': 7.5.0 767 | '@typescript-eslint/types': 7.5.0 768 | '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) 769 | '@typescript-eslint/visitor-keys': 7.5.0 770 | debug: 4.3.4 771 | eslint: 8.57.0 772 | typescript: 5.4.3 773 | transitivePeerDependencies: 774 | - supports-color 775 | dev: true 776 | 777 | /@typescript-eslint/scope-manager@7.5.0: 778 | resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} 779 | engines: {node: ^18.18.0 || >=20.0.0} 780 | dependencies: 781 | '@typescript-eslint/types': 7.5.0 782 | '@typescript-eslint/visitor-keys': 7.5.0 783 | dev: true 784 | 785 | /@typescript-eslint/type-utils@7.5.0(eslint@8.57.0)(typescript@5.4.3): 786 | resolution: {integrity: sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==} 787 | engines: {node: ^18.18.0 || >=20.0.0} 788 | peerDependencies: 789 | eslint: ^8.56.0 790 | typescript: '*' 791 | peerDependenciesMeta: 792 | typescript: 793 | optional: true 794 | dependencies: 795 | '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) 796 | '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.4.3) 797 | debug: 4.3.4 798 | eslint: 8.57.0 799 | ts-api-utils: 1.3.0(typescript@5.4.3) 800 | typescript: 5.4.3 801 | transitivePeerDependencies: 802 | - supports-color 803 | dev: true 804 | 805 | /@typescript-eslint/types@7.5.0: 806 | resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} 807 | engines: {node: ^18.18.0 || >=20.0.0} 808 | dev: true 809 | 810 | /@typescript-eslint/typescript-estree@7.5.0(typescript@5.4.3): 811 | resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} 812 | engines: {node: ^18.18.0 || >=20.0.0} 813 | peerDependencies: 814 | typescript: '*' 815 | peerDependenciesMeta: 816 | typescript: 817 | optional: true 818 | dependencies: 819 | '@typescript-eslint/types': 7.5.0 820 | '@typescript-eslint/visitor-keys': 7.5.0 821 | debug: 4.3.4 822 | globby: 11.1.0 823 | is-glob: 4.0.3 824 | minimatch: 9.0.3 825 | semver: 7.6.0 826 | ts-api-utils: 1.3.0(typescript@5.4.3) 827 | typescript: 5.4.3 828 | transitivePeerDependencies: 829 | - supports-color 830 | dev: true 831 | 832 | /@typescript-eslint/utils@7.5.0(eslint@8.57.0)(typescript@5.4.3): 833 | resolution: {integrity: sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==} 834 | engines: {node: ^18.18.0 || >=20.0.0} 835 | peerDependencies: 836 | eslint: ^8.56.0 837 | dependencies: 838 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 839 | '@types/json-schema': 7.0.15 840 | '@types/semver': 7.5.8 841 | '@typescript-eslint/scope-manager': 7.5.0 842 | '@typescript-eslint/types': 7.5.0 843 | '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.4.3) 844 | eslint: 8.57.0 845 | semver: 7.6.0 846 | transitivePeerDependencies: 847 | - supports-color 848 | - typescript 849 | dev: true 850 | 851 | /@typescript-eslint/visitor-keys@7.5.0: 852 | resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} 853 | engines: {node: ^18.18.0 || >=20.0.0} 854 | dependencies: 855 | '@typescript-eslint/types': 7.5.0 856 | eslint-visitor-keys: 3.4.3 857 | dev: true 858 | 859 | /@ungap/structured-clone@1.2.0: 860 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 861 | dev: true 862 | 863 | /@vitejs/plugin-vue@5.0.4(vite@5.2.7)(vue@3.4.21): 864 | resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} 865 | engines: {node: ^18.0.0 || >=20.0.0} 866 | peerDependencies: 867 | vite: ^5.0.0 868 | vue: ^3.2.25 869 | dependencies: 870 | vite: 5.2.7(@types/node@20.12.2) 871 | vue: 3.4.21(typescript@5.4.3) 872 | dev: true 873 | 874 | /@vitest/coverage-v8@1.4.0(vitest@1.4.0): 875 | resolution: {integrity: sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==} 876 | peerDependencies: 877 | vitest: 1.4.0 878 | dependencies: 879 | '@ampproject/remapping': 2.3.0 880 | '@bcoe/v8-coverage': 0.2.3 881 | debug: 4.3.4 882 | istanbul-lib-coverage: 3.2.2 883 | istanbul-lib-report: 3.0.1 884 | istanbul-lib-source-maps: 5.0.4 885 | istanbul-reports: 3.1.7 886 | magic-string: 0.30.8 887 | magicast: 0.3.3 888 | picocolors: 1.0.0 889 | std-env: 3.7.0 890 | strip-literal: 2.1.0 891 | test-exclude: 6.0.0 892 | v8-to-istanbul: 9.2.0 893 | vitest: 1.4.0(@types/node@20.12.2)(happy-dom@14.3.10) 894 | transitivePeerDependencies: 895 | - supports-color 896 | dev: true 897 | 898 | /@vitest/expect@1.4.0: 899 | resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} 900 | dependencies: 901 | '@vitest/spy': 1.4.0 902 | '@vitest/utils': 1.4.0 903 | chai: 4.4.1 904 | dev: true 905 | 906 | /@vitest/runner@1.4.0: 907 | resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} 908 | dependencies: 909 | '@vitest/utils': 1.4.0 910 | p-limit: 5.0.0 911 | pathe: 1.1.2 912 | dev: true 913 | 914 | /@vitest/snapshot@1.4.0: 915 | resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} 916 | dependencies: 917 | magic-string: 0.30.8 918 | pathe: 1.1.2 919 | pretty-format: 29.7.0 920 | dev: true 921 | 922 | /@vitest/spy@1.4.0: 923 | resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} 924 | dependencies: 925 | tinyspy: 2.2.1 926 | dev: true 927 | 928 | /@vitest/utils@1.4.0: 929 | resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} 930 | dependencies: 931 | diff-sequences: 29.6.3 932 | estree-walker: 3.0.3 933 | loupe: 2.3.7 934 | pretty-format: 29.7.0 935 | dev: true 936 | 937 | /@volar/language-core@1.11.1: 938 | resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} 939 | dependencies: 940 | '@volar/source-map': 1.11.1 941 | dev: true 942 | 943 | /@volar/language-core@2.1.6: 944 | resolution: {integrity: sha512-pAlMCGX/HatBSiDFMdMyqUshkbwWbLxpN/RL7HCQDOo2gYBE+uS+nanosLc1qR6pTQ/U8q00xt8bdrrAFPSC0A==} 945 | dependencies: 946 | '@volar/source-map': 2.1.6 947 | dev: true 948 | 949 | /@volar/source-map@1.11.1: 950 | resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} 951 | dependencies: 952 | muggle-string: 0.3.1 953 | dev: true 954 | 955 | /@volar/source-map@2.1.6: 956 | resolution: {integrity: sha512-TeyH8pHHonRCHYI91J7fWUoxi0zWV8whZTVRlsWHSYfjm58Blalkf9LrZ+pj6OiverPTmrHRkBsG17ScQyWECw==} 957 | dependencies: 958 | muggle-string: 0.4.1 959 | dev: true 960 | 961 | /@volar/typescript@1.11.1: 962 | resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} 963 | dependencies: 964 | '@volar/language-core': 1.11.1 965 | path-browserify: 1.0.1 966 | dev: true 967 | 968 | /@volar/typescript@2.1.6: 969 | resolution: {integrity: sha512-JgPGhORHqXuyC3r6skPmPHIZj4LoMmGlYErFTuPNBq9Nhc9VTv7ctHY7A3jMN3ngKEfRrfnUcwXHztvdSQqNfw==} 970 | dependencies: 971 | '@volar/language-core': 2.1.6 972 | path-browserify: 1.0.1 973 | dev: true 974 | 975 | /@vue/compiler-core@3.4.21: 976 | resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} 977 | dependencies: 978 | '@babel/parser': 7.24.1 979 | '@vue/shared': 3.4.21 980 | entities: 4.5.0 981 | estree-walker: 2.0.2 982 | source-map-js: 1.2.0 983 | dev: true 984 | 985 | /@vue/compiler-dom@3.4.21: 986 | resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} 987 | dependencies: 988 | '@vue/compiler-core': 3.4.21 989 | '@vue/shared': 3.4.21 990 | dev: true 991 | 992 | /@vue/compiler-sfc@3.4.21: 993 | resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} 994 | dependencies: 995 | '@babel/parser': 7.24.1 996 | '@vue/compiler-core': 3.4.21 997 | '@vue/compiler-dom': 3.4.21 998 | '@vue/compiler-ssr': 3.4.21 999 | '@vue/shared': 3.4.21 1000 | estree-walker: 2.0.2 1001 | magic-string: 0.30.8 1002 | postcss: 8.4.38 1003 | source-map-js: 1.2.0 1004 | dev: true 1005 | 1006 | /@vue/compiler-ssr@3.4.21: 1007 | resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} 1008 | dependencies: 1009 | '@vue/compiler-dom': 3.4.21 1010 | '@vue/shared': 3.4.21 1011 | dev: true 1012 | 1013 | /@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.24.0)(eslint@8.57.0)(typescript@5.4.3): 1014 | resolution: {integrity: sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==} 1015 | engines: {node: ^18.18.0 || >=20.0.0} 1016 | peerDependencies: 1017 | eslint: ^8.56.0 1018 | eslint-plugin-vue: ^9.0.0 1019 | typescript: '>=4.7.4' 1020 | peerDependenciesMeta: 1021 | typescript: 1022 | optional: true 1023 | dependencies: 1024 | '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.4.3) 1025 | '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.4.3) 1026 | eslint: 8.57.0 1027 | eslint-plugin-vue: 9.24.0(eslint@8.57.0) 1028 | typescript: 5.4.3 1029 | vue-eslint-parser: 9.4.2(eslint@8.57.0) 1030 | transitivePeerDependencies: 1031 | - supports-color 1032 | dev: true 1033 | 1034 | /@vue/language-core@1.8.27(typescript@5.4.3): 1035 | resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} 1036 | peerDependencies: 1037 | typescript: '*' 1038 | peerDependenciesMeta: 1039 | typescript: 1040 | optional: true 1041 | dependencies: 1042 | '@volar/language-core': 1.11.1 1043 | '@volar/source-map': 1.11.1 1044 | '@vue/compiler-dom': 3.4.21 1045 | '@vue/shared': 3.4.21 1046 | computeds: 0.0.1 1047 | minimatch: 9.0.4 1048 | muggle-string: 0.3.1 1049 | path-browserify: 1.0.1 1050 | typescript: 5.4.3 1051 | vue-template-compiler: 2.7.16 1052 | dev: true 1053 | 1054 | /@vue/language-core@2.0.7(typescript@5.4.3): 1055 | resolution: {integrity: sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ==} 1056 | peerDependencies: 1057 | typescript: '*' 1058 | peerDependenciesMeta: 1059 | typescript: 1060 | optional: true 1061 | dependencies: 1062 | '@volar/language-core': 2.1.6 1063 | '@vue/compiler-dom': 3.4.21 1064 | '@vue/shared': 3.4.21 1065 | computeds: 0.0.1 1066 | minimatch: 9.0.4 1067 | path-browserify: 1.0.1 1068 | typescript: 5.4.3 1069 | vue-template-compiler: 2.7.16 1070 | dev: true 1071 | 1072 | /@vue/reactivity@3.4.21: 1073 | resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} 1074 | dependencies: 1075 | '@vue/shared': 3.4.21 1076 | dev: true 1077 | 1078 | /@vue/runtime-core@3.4.21: 1079 | resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} 1080 | dependencies: 1081 | '@vue/reactivity': 3.4.21 1082 | '@vue/shared': 3.4.21 1083 | dev: true 1084 | 1085 | /@vue/runtime-dom@3.4.21: 1086 | resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} 1087 | dependencies: 1088 | '@vue/runtime-core': 3.4.21 1089 | '@vue/shared': 3.4.21 1090 | csstype: 3.1.3 1091 | dev: true 1092 | 1093 | /@vue/server-renderer@3.4.21(vue@3.4.21): 1094 | resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} 1095 | peerDependencies: 1096 | vue: 3.4.21 1097 | dependencies: 1098 | '@vue/compiler-ssr': 3.4.21 1099 | '@vue/shared': 3.4.21 1100 | vue: 3.4.21(typescript@5.4.3) 1101 | dev: true 1102 | 1103 | /@vue/shared@3.4.21: 1104 | resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} 1105 | dev: true 1106 | 1107 | /@vue/test-utils@2.4.5: 1108 | resolution: {integrity: sha512-oo2u7vktOyKUked36R93NB7mg2B+N7Plr8lxp2JBGwr18ch6EggFjixSCdIVVLkT6Qr0z359Xvnafc9dcKyDUg==} 1109 | dependencies: 1110 | js-beautify: 1.15.1 1111 | vue-component-type-helpers: 2.0.7 1112 | dev: true 1113 | 1114 | /abbrev@2.0.0: 1115 | resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} 1116 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1117 | dev: true 1118 | 1119 | /acorn-jsx@5.3.2(acorn@8.11.3): 1120 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1121 | peerDependencies: 1122 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1123 | dependencies: 1124 | acorn: 8.11.3 1125 | dev: true 1126 | 1127 | /acorn-walk@8.3.2: 1128 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 1129 | engines: {node: '>=0.4.0'} 1130 | dev: true 1131 | 1132 | /acorn@8.11.3: 1133 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1134 | engines: {node: '>=0.4.0'} 1135 | hasBin: true 1136 | dev: true 1137 | 1138 | /ajv@6.12.6: 1139 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1140 | dependencies: 1141 | fast-deep-equal: 3.1.3 1142 | fast-json-stable-stringify: 2.1.0 1143 | json-schema-traverse: 0.4.1 1144 | uri-js: 4.4.1 1145 | dev: true 1146 | 1147 | /ansi-regex@5.0.1: 1148 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1149 | engines: {node: '>=8'} 1150 | dev: true 1151 | 1152 | /ansi-regex@6.0.1: 1153 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1154 | engines: {node: '>=12'} 1155 | dev: true 1156 | 1157 | /ansi-styles@4.3.0: 1158 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1159 | engines: {node: '>=8'} 1160 | dependencies: 1161 | color-convert: 2.0.1 1162 | dev: true 1163 | 1164 | /ansi-styles@5.2.0: 1165 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1166 | engines: {node: '>=10'} 1167 | dev: true 1168 | 1169 | /ansi-styles@6.2.1: 1170 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1171 | engines: {node: '>=12'} 1172 | dev: true 1173 | 1174 | /anymatch@3.1.3: 1175 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1176 | engines: {node: '>= 8'} 1177 | dependencies: 1178 | normalize-path: 3.0.0 1179 | picomatch: 2.3.1 1180 | dev: true 1181 | 1182 | /argparse@1.0.10: 1183 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 1184 | dependencies: 1185 | sprintf-js: 1.0.3 1186 | dev: true 1187 | 1188 | /argparse@2.0.1: 1189 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1190 | dev: true 1191 | 1192 | /array-union@2.1.0: 1193 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1194 | engines: {node: '>=8'} 1195 | dev: true 1196 | 1197 | /assertion-error@1.1.0: 1198 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1199 | dev: true 1200 | 1201 | /balanced-match@1.0.2: 1202 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1203 | dev: true 1204 | 1205 | /big-integer@1.6.52: 1206 | resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} 1207 | engines: {node: '>=0.6'} 1208 | dev: true 1209 | 1210 | /binary-extensions@2.3.0: 1211 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1212 | engines: {node: '>=8'} 1213 | dev: true 1214 | 1215 | /boolbase@1.0.0: 1216 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1217 | dev: true 1218 | 1219 | /bplist-parser@0.2.0: 1220 | resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} 1221 | engines: {node: '>= 5.10.0'} 1222 | dependencies: 1223 | big-integer: 1.6.52 1224 | dev: true 1225 | 1226 | /brace-expansion@1.1.11: 1227 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1228 | dependencies: 1229 | balanced-match: 1.0.2 1230 | concat-map: 0.0.1 1231 | dev: true 1232 | 1233 | /brace-expansion@2.0.1: 1234 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1235 | dependencies: 1236 | balanced-match: 1.0.2 1237 | dev: true 1238 | 1239 | /braces@3.0.2: 1240 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1241 | engines: {node: '>=8'} 1242 | dependencies: 1243 | fill-range: 7.0.1 1244 | dev: true 1245 | 1246 | /bundle-name@3.0.0: 1247 | resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} 1248 | engines: {node: '>=12'} 1249 | dependencies: 1250 | run-applescript: 5.0.0 1251 | dev: true 1252 | 1253 | /c12@1.10.0: 1254 | resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} 1255 | dependencies: 1256 | chokidar: 3.6.0 1257 | confbox: 0.1.3 1258 | defu: 6.1.4 1259 | dotenv: 16.4.5 1260 | giget: 1.2.3 1261 | jiti: 1.21.0 1262 | mlly: 1.6.1 1263 | ohash: 1.1.3 1264 | pathe: 1.1.2 1265 | perfect-debounce: 1.0.0 1266 | pkg-types: 1.0.3 1267 | rc9: 2.1.1 1268 | dev: true 1269 | 1270 | /cac@6.7.14: 1271 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1272 | engines: {node: '>=8'} 1273 | dev: true 1274 | 1275 | /callsites@3.1.0: 1276 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1277 | engines: {node: '>=6'} 1278 | dev: true 1279 | 1280 | /chai@4.4.1: 1281 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} 1282 | engines: {node: '>=4'} 1283 | dependencies: 1284 | assertion-error: 1.1.0 1285 | check-error: 1.0.3 1286 | deep-eql: 4.1.3 1287 | get-func-name: 2.0.2 1288 | loupe: 2.3.7 1289 | pathval: 1.1.1 1290 | type-detect: 4.0.8 1291 | dev: true 1292 | 1293 | /chalk@4.1.2: 1294 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1295 | engines: {node: '>=10'} 1296 | dependencies: 1297 | ansi-styles: 4.3.0 1298 | supports-color: 7.2.0 1299 | dev: true 1300 | 1301 | /changelogen@0.5.5: 1302 | resolution: {integrity: sha512-IzgToIJ/R9NhVKmL+PW33ozYkv53bXvufDNUSH3GTKXq1iCHGgkbgbtqEWbo8tnWNnt7nPDpjL8PwSG2iS8RVw==} 1303 | hasBin: true 1304 | dependencies: 1305 | c12: 1.10.0 1306 | colorette: 2.0.20 1307 | consola: 3.2.3 1308 | convert-gitmoji: 0.1.5 1309 | execa: 8.0.1 1310 | mri: 1.2.0 1311 | node-fetch-native: 1.6.4 1312 | ofetch: 1.3.4 1313 | open: 9.1.0 1314 | pathe: 1.1.2 1315 | pkg-types: 1.0.3 1316 | scule: 1.3.0 1317 | semver: 7.6.0 1318 | std-env: 3.7.0 1319 | yaml: 2.4.1 1320 | dev: true 1321 | 1322 | /check-error@1.0.3: 1323 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 1324 | dependencies: 1325 | get-func-name: 2.0.2 1326 | dev: true 1327 | 1328 | /chokidar@3.6.0: 1329 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1330 | engines: {node: '>= 8.10.0'} 1331 | dependencies: 1332 | anymatch: 3.1.3 1333 | braces: 3.0.2 1334 | glob-parent: 5.1.2 1335 | is-binary-path: 2.1.0 1336 | is-glob: 4.0.3 1337 | normalize-path: 3.0.0 1338 | readdirp: 3.6.0 1339 | optionalDependencies: 1340 | fsevents: 2.3.3 1341 | dev: true 1342 | 1343 | /chownr@2.0.0: 1344 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 1345 | engines: {node: '>=10'} 1346 | dev: true 1347 | 1348 | /citty@0.1.6: 1349 | resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} 1350 | dependencies: 1351 | consola: 3.2.3 1352 | dev: true 1353 | 1354 | /color-convert@2.0.1: 1355 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1356 | engines: {node: '>=7.0.0'} 1357 | dependencies: 1358 | color-name: 1.1.4 1359 | dev: true 1360 | 1361 | /color-name@1.1.4: 1362 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1363 | dev: true 1364 | 1365 | /colorette@2.0.20: 1366 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1367 | dev: true 1368 | 1369 | /commander@10.0.1: 1370 | resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} 1371 | engines: {node: '>=14'} 1372 | dev: true 1373 | 1374 | /commander@9.5.0: 1375 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 1376 | engines: {node: ^12.20.0 || >=14} 1377 | requiresBuild: true 1378 | dev: true 1379 | optional: true 1380 | 1381 | /computeds@0.0.1: 1382 | resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} 1383 | dev: true 1384 | 1385 | /concat-map@0.0.1: 1386 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1387 | dev: true 1388 | 1389 | /confbox@0.1.3: 1390 | resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} 1391 | dev: true 1392 | 1393 | /config-chain@1.1.13: 1394 | resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} 1395 | dependencies: 1396 | ini: 1.3.8 1397 | proto-list: 1.2.4 1398 | dev: true 1399 | 1400 | /consola@3.2.3: 1401 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 1402 | engines: {node: ^14.18.0 || >=16.10.0} 1403 | dev: true 1404 | 1405 | /convert-gitmoji@0.1.5: 1406 | resolution: {integrity: sha512-4wqOafJdk2tqZC++cjcbGcaJ13BZ3kwldf06PTiAQRAB76Z1KJwZNL1SaRZMi2w1FM9RYTgZ6QErS8NUl/GBmQ==} 1407 | dev: true 1408 | 1409 | /convert-source-map@2.0.0: 1410 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1411 | dev: true 1412 | 1413 | /cross-spawn@7.0.3: 1414 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1415 | engines: {node: '>= 8'} 1416 | dependencies: 1417 | path-key: 3.1.1 1418 | shebang-command: 2.0.0 1419 | which: 2.0.2 1420 | dev: true 1421 | 1422 | /cssesc@3.0.0: 1423 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1424 | engines: {node: '>=4'} 1425 | hasBin: true 1426 | dev: true 1427 | 1428 | /csstype@3.1.3: 1429 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1430 | dev: true 1431 | 1432 | /de-indent@1.0.2: 1433 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 1434 | dev: true 1435 | 1436 | /debug@4.3.4: 1437 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1438 | engines: {node: '>=6.0'} 1439 | peerDependencies: 1440 | supports-color: '*' 1441 | peerDependenciesMeta: 1442 | supports-color: 1443 | optional: true 1444 | dependencies: 1445 | ms: 2.1.2 1446 | dev: true 1447 | 1448 | /deep-eql@4.1.3: 1449 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1450 | engines: {node: '>=6'} 1451 | dependencies: 1452 | type-detect: 4.0.8 1453 | dev: true 1454 | 1455 | /deep-is@0.1.4: 1456 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1457 | dev: true 1458 | 1459 | /default-browser-id@3.0.0: 1460 | resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} 1461 | engines: {node: '>=12'} 1462 | dependencies: 1463 | bplist-parser: 0.2.0 1464 | untildify: 4.0.0 1465 | dev: true 1466 | 1467 | /default-browser@4.0.0: 1468 | resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} 1469 | engines: {node: '>=14.16'} 1470 | dependencies: 1471 | bundle-name: 3.0.0 1472 | default-browser-id: 3.0.0 1473 | execa: 7.2.0 1474 | titleize: 3.0.0 1475 | dev: true 1476 | 1477 | /define-lazy-prop@3.0.0: 1478 | resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 1479 | engines: {node: '>=12'} 1480 | dev: true 1481 | 1482 | /defu@6.1.4: 1483 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1484 | dev: true 1485 | 1486 | /destr@2.0.3: 1487 | resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} 1488 | dev: true 1489 | 1490 | /diff-sequences@29.6.3: 1491 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 1492 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1493 | dev: true 1494 | 1495 | /dir-glob@3.0.1: 1496 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1497 | engines: {node: '>=8'} 1498 | dependencies: 1499 | path-type: 4.0.0 1500 | dev: true 1501 | 1502 | /doctrine@3.0.0: 1503 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1504 | engines: {node: '>=6.0.0'} 1505 | dependencies: 1506 | esutils: 2.0.3 1507 | dev: true 1508 | 1509 | /dotenv@16.4.5: 1510 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 1511 | engines: {node: '>=12'} 1512 | dev: true 1513 | 1514 | /eastasianwidth@0.2.0: 1515 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1516 | dev: true 1517 | 1518 | /editorconfig@1.0.4: 1519 | resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} 1520 | engines: {node: '>=14'} 1521 | hasBin: true 1522 | dependencies: 1523 | '@one-ini/wasm': 0.1.1 1524 | commander: 10.0.1 1525 | minimatch: 9.0.1 1526 | semver: 7.6.0 1527 | dev: true 1528 | 1529 | /emoji-regex@8.0.0: 1530 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1531 | dev: true 1532 | 1533 | /emoji-regex@9.2.2: 1534 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1535 | dev: true 1536 | 1537 | /entities@4.5.0: 1538 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1539 | engines: {node: '>=0.12'} 1540 | dev: true 1541 | 1542 | /esbuild@0.20.2: 1543 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 1544 | engines: {node: '>=12'} 1545 | hasBin: true 1546 | requiresBuild: true 1547 | optionalDependencies: 1548 | '@esbuild/aix-ppc64': 0.20.2 1549 | '@esbuild/android-arm': 0.20.2 1550 | '@esbuild/android-arm64': 0.20.2 1551 | '@esbuild/android-x64': 0.20.2 1552 | '@esbuild/darwin-arm64': 0.20.2 1553 | '@esbuild/darwin-x64': 0.20.2 1554 | '@esbuild/freebsd-arm64': 0.20.2 1555 | '@esbuild/freebsd-x64': 0.20.2 1556 | '@esbuild/linux-arm': 0.20.2 1557 | '@esbuild/linux-arm64': 0.20.2 1558 | '@esbuild/linux-ia32': 0.20.2 1559 | '@esbuild/linux-loong64': 0.20.2 1560 | '@esbuild/linux-mips64el': 0.20.2 1561 | '@esbuild/linux-ppc64': 0.20.2 1562 | '@esbuild/linux-riscv64': 0.20.2 1563 | '@esbuild/linux-s390x': 0.20.2 1564 | '@esbuild/linux-x64': 0.20.2 1565 | '@esbuild/netbsd-x64': 0.20.2 1566 | '@esbuild/openbsd-x64': 0.20.2 1567 | '@esbuild/sunos-x64': 0.20.2 1568 | '@esbuild/win32-arm64': 0.20.2 1569 | '@esbuild/win32-ia32': 0.20.2 1570 | '@esbuild/win32-x64': 0.20.2 1571 | dev: true 1572 | 1573 | /escape-string-regexp@4.0.0: 1574 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1575 | engines: {node: '>=10'} 1576 | dev: true 1577 | 1578 | /eslint-config-prettier@9.1.0(eslint@8.57.0): 1579 | resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 1580 | hasBin: true 1581 | peerDependencies: 1582 | eslint: '>=7.0.0' 1583 | dependencies: 1584 | eslint: 8.57.0 1585 | dev: true 1586 | 1587 | /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): 1588 | resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} 1589 | engines: {node: ^14.18.0 || >=16.0.0} 1590 | peerDependencies: 1591 | '@types/eslint': '>=8.0.0' 1592 | eslint: '>=8.0.0' 1593 | eslint-config-prettier: '*' 1594 | prettier: '>=3.0.0' 1595 | peerDependenciesMeta: 1596 | '@types/eslint': 1597 | optional: true 1598 | eslint-config-prettier: 1599 | optional: true 1600 | dependencies: 1601 | eslint: 8.57.0 1602 | eslint-config-prettier: 9.1.0(eslint@8.57.0) 1603 | prettier: 3.2.5 1604 | prettier-linter-helpers: 1.0.0 1605 | synckit: 0.8.8 1606 | dev: true 1607 | 1608 | /eslint-plugin-vue@9.24.0(eslint@8.57.0): 1609 | resolution: {integrity: sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw==} 1610 | engines: {node: ^14.17.0 || >=16.0.0} 1611 | peerDependencies: 1612 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 1613 | dependencies: 1614 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1615 | eslint: 8.57.0 1616 | globals: 13.24.0 1617 | natural-compare: 1.4.0 1618 | nth-check: 2.1.1 1619 | postcss-selector-parser: 6.0.16 1620 | semver: 7.6.0 1621 | vue-eslint-parser: 9.4.2(eslint@8.57.0) 1622 | xml-name-validator: 4.0.0 1623 | transitivePeerDependencies: 1624 | - supports-color 1625 | dev: true 1626 | 1627 | /eslint-scope@7.2.2: 1628 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1629 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1630 | dependencies: 1631 | esrecurse: 4.3.0 1632 | estraverse: 5.3.0 1633 | dev: true 1634 | 1635 | /eslint-visitor-keys@3.4.3: 1636 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1637 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1638 | dev: true 1639 | 1640 | /eslint@8.57.0: 1641 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1642 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1643 | hasBin: true 1644 | dependencies: 1645 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1646 | '@eslint-community/regexpp': 4.10.0 1647 | '@eslint/eslintrc': 2.1.4 1648 | '@eslint/js': 8.57.0 1649 | '@humanwhocodes/config-array': 0.11.14 1650 | '@humanwhocodes/module-importer': 1.0.1 1651 | '@nodelib/fs.walk': 1.2.8 1652 | '@ungap/structured-clone': 1.2.0 1653 | ajv: 6.12.6 1654 | chalk: 4.1.2 1655 | cross-spawn: 7.0.3 1656 | debug: 4.3.4 1657 | doctrine: 3.0.0 1658 | escape-string-regexp: 4.0.0 1659 | eslint-scope: 7.2.2 1660 | eslint-visitor-keys: 3.4.3 1661 | espree: 9.6.1 1662 | esquery: 1.5.0 1663 | esutils: 2.0.3 1664 | fast-deep-equal: 3.1.3 1665 | file-entry-cache: 6.0.1 1666 | find-up: 5.0.0 1667 | glob-parent: 6.0.2 1668 | globals: 13.24.0 1669 | graphemer: 1.4.0 1670 | ignore: 5.3.1 1671 | imurmurhash: 0.1.4 1672 | is-glob: 4.0.3 1673 | is-path-inside: 3.0.3 1674 | js-yaml: 4.1.0 1675 | json-stable-stringify-without-jsonify: 1.0.1 1676 | levn: 0.4.1 1677 | lodash.merge: 4.6.2 1678 | minimatch: 3.1.2 1679 | natural-compare: 1.4.0 1680 | optionator: 0.9.3 1681 | strip-ansi: 6.0.1 1682 | text-table: 0.2.0 1683 | transitivePeerDependencies: 1684 | - supports-color 1685 | dev: true 1686 | 1687 | /espree@9.6.1: 1688 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1689 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1690 | dependencies: 1691 | acorn: 8.11.3 1692 | acorn-jsx: 5.3.2(acorn@8.11.3) 1693 | eslint-visitor-keys: 3.4.3 1694 | dev: true 1695 | 1696 | /esquery@1.5.0: 1697 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1698 | engines: {node: '>=0.10'} 1699 | dependencies: 1700 | estraverse: 5.3.0 1701 | dev: true 1702 | 1703 | /esrecurse@4.3.0: 1704 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1705 | engines: {node: '>=4.0'} 1706 | dependencies: 1707 | estraverse: 5.3.0 1708 | dev: true 1709 | 1710 | /estraverse@5.3.0: 1711 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1712 | engines: {node: '>=4.0'} 1713 | dev: true 1714 | 1715 | /estree-walker@2.0.2: 1716 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1717 | dev: true 1718 | 1719 | /estree-walker@3.0.3: 1720 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1721 | dependencies: 1722 | '@types/estree': 1.0.5 1723 | dev: true 1724 | 1725 | /esutils@2.0.3: 1726 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1727 | engines: {node: '>=0.10.0'} 1728 | dev: true 1729 | 1730 | /execa@5.1.1: 1731 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1732 | engines: {node: '>=10'} 1733 | dependencies: 1734 | cross-spawn: 7.0.3 1735 | get-stream: 6.0.1 1736 | human-signals: 2.1.0 1737 | is-stream: 2.0.1 1738 | merge-stream: 2.0.0 1739 | npm-run-path: 4.0.1 1740 | onetime: 5.1.2 1741 | signal-exit: 3.0.7 1742 | strip-final-newline: 2.0.0 1743 | dev: true 1744 | 1745 | /execa@7.2.0: 1746 | resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} 1747 | engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} 1748 | dependencies: 1749 | cross-spawn: 7.0.3 1750 | get-stream: 6.0.1 1751 | human-signals: 4.3.1 1752 | is-stream: 3.0.0 1753 | merge-stream: 2.0.0 1754 | npm-run-path: 5.3.0 1755 | onetime: 6.0.0 1756 | signal-exit: 3.0.7 1757 | strip-final-newline: 3.0.0 1758 | dev: true 1759 | 1760 | /execa@8.0.1: 1761 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 1762 | engines: {node: '>=16.17'} 1763 | dependencies: 1764 | cross-spawn: 7.0.3 1765 | get-stream: 8.0.1 1766 | human-signals: 5.0.0 1767 | is-stream: 3.0.0 1768 | merge-stream: 2.0.0 1769 | npm-run-path: 5.3.0 1770 | onetime: 6.0.0 1771 | signal-exit: 4.1.0 1772 | strip-final-newline: 3.0.0 1773 | dev: true 1774 | 1775 | /fast-deep-equal@3.1.3: 1776 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1777 | dev: true 1778 | 1779 | /fast-diff@1.3.0: 1780 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 1781 | dev: true 1782 | 1783 | /fast-glob@3.3.2: 1784 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1785 | engines: {node: '>=8.6.0'} 1786 | dependencies: 1787 | '@nodelib/fs.stat': 2.0.5 1788 | '@nodelib/fs.walk': 1.2.8 1789 | glob-parent: 5.1.2 1790 | merge2: 1.4.1 1791 | micromatch: 4.0.5 1792 | dev: true 1793 | 1794 | /fast-json-stable-stringify@2.1.0: 1795 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1796 | dev: true 1797 | 1798 | /fast-levenshtein@2.0.6: 1799 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1800 | dev: true 1801 | 1802 | /fastq@1.17.1: 1803 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1804 | dependencies: 1805 | reusify: 1.0.4 1806 | dev: true 1807 | 1808 | /file-entry-cache@6.0.1: 1809 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1810 | engines: {node: ^10.12.0 || >=12.0.0} 1811 | dependencies: 1812 | flat-cache: 3.2.0 1813 | dev: true 1814 | 1815 | /fill-range@7.0.1: 1816 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1817 | engines: {node: '>=8'} 1818 | dependencies: 1819 | to-regex-range: 5.0.1 1820 | dev: true 1821 | 1822 | /find-up@5.0.0: 1823 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1824 | engines: {node: '>=10'} 1825 | dependencies: 1826 | locate-path: 6.0.0 1827 | path-exists: 4.0.0 1828 | dev: true 1829 | 1830 | /flat-cache@3.2.0: 1831 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1832 | engines: {node: ^10.12.0 || >=12.0.0} 1833 | dependencies: 1834 | flatted: 3.3.1 1835 | keyv: 4.5.4 1836 | rimraf: 3.0.2 1837 | dev: true 1838 | 1839 | /flat@5.0.2: 1840 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 1841 | hasBin: true 1842 | dev: true 1843 | 1844 | /flatted@3.3.1: 1845 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1846 | dev: true 1847 | 1848 | /foreground-child@3.1.1: 1849 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 1850 | engines: {node: '>=14'} 1851 | dependencies: 1852 | cross-spawn: 7.0.3 1853 | signal-exit: 4.1.0 1854 | dev: true 1855 | 1856 | /fs-extra@7.0.1: 1857 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1858 | engines: {node: '>=6 <7 || >=8'} 1859 | dependencies: 1860 | graceful-fs: 4.2.11 1861 | jsonfile: 4.0.0 1862 | universalify: 0.1.2 1863 | dev: true 1864 | 1865 | /fs-minipass@2.1.0: 1866 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 1867 | engines: {node: '>= 8'} 1868 | dependencies: 1869 | minipass: 3.3.6 1870 | dev: true 1871 | 1872 | /fs.realpath@1.0.0: 1873 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1874 | dev: true 1875 | 1876 | /fsevents@2.3.3: 1877 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1878 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1879 | os: [darwin] 1880 | requiresBuild: true 1881 | dev: true 1882 | optional: true 1883 | 1884 | /function-bind@1.1.2: 1885 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1886 | dev: true 1887 | 1888 | /get-func-name@2.0.2: 1889 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 1890 | dev: true 1891 | 1892 | /get-stream@6.0.1: 1893 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1894 | engines: {node: '>=10'} 1895 | dev: true 1896 | 1897 | /get-stream@8.0.1: 1898 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 1899 | engines: {node: '>=16'} 1900 | dev: true 1901 | 1902 | /giget@1.2.3: 1903 | resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} 1904 | hasBin: true 1905 | dependencies: 1906 | citty: 0.1.6 1907 | consola: 3.2.3 1908 | defu: 6.1.4 1909 | node-fetch-native: 1.6.4 1910 | nypm: 0.3.8 1911 | ohash: 1.1.3 1912 | pathe: 1.1.2 1913 | tar: 6.2.1 1914 | dev: true 1915 | 1916 | /glob-parent@5.1.2: 1917 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1918 | engines: {node: '>= 6'} 1919 | dependencies: 1920 | is-glob: 4.0.3 1921 | dev: true 1922 | 1923 | /glob-parent@6.0.2: 1924 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1925 | engines: {node: '>=10.13.0'} 1926 | dependencies: 1927 | is-glob: 4.0.3 1928 | dev: true 1929 | 1930 | /glob@10.3.12: 1931 | resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} 1932 | engines: {node: '>=16 || 14 >=14.17'} 1933 | hasBin: true 1934 | dependencies: 1935 | foreground-child: 3.1.1 1936 | jackspeak: 2.3.6 1937 | minimatch: 9.0.4 1938 | minipass: 7.0.4 1939 | path-scurry: 1.10.2 1940 | dev: true 1941 | 1942 | /glob@7.2.3: 1943 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1944 | dependencies: 1945 | fs.realpath: 1.0.0 1946 | inflight: 1.0.6 1947 | inherits: 2.0.4 1948 | minimatch: 3.1.2 1949 | once: 1.4.0 1950 | path-is-absolute: 1.0.1 1951 | dev: true 1952 | 1953 | /globals@13.24.0: 1954 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1955 | engines: {node: '>=8'} 1956 | dependencies: 1957 | type-fest: 0.20.2 1958 | dev: true 1959 | 1960 | /globby@11.1.0: 1961 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1962 | engines: {node: '>=10'} 1963 | dependencies: 1964 | array-union: 2.1.0 1965 | dir-glob: 3.0.1 1966 | fast-glob: 3.3.2 1967 | ignore: 5.3.1 1968 | merge2: 1.4.1 1969 | slash: 3.0.0 1970 | dev: true 1971 | 1972 | /graceful-fs@4.2.11: 1973 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1974 | dev: true 1975 | 1976 | /graphemer@1.4.0: 1977 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1978 | dev: true 1979 | 1980 | /happy-dom@14.3.10: 1981 | resolution: {integrity: sha512-Rh5li9vA9MF9Gkg85CbFABKTa3uoSAByILRNGb92u/vswDd561gBg2p1UW1ZauvDWWwRxPcbACK5zv3BR+gHnQ==} 1982 | engines: {node: '>=16.0.0'} 1983 | dependencies: 1984 | entities: 4.5.0 1985 | webidl-conversions: 7.0.0 1986 | whatwg-mimetype: 3.0.0 1987 | dev: true 1988 | 1989 | /has-flag@4.0.0: 1990 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1991 | engines: {node: '>=8'} 1992 | dev: true 1993 | 1994 | /hasown@2.0.2: 1995 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1996 | engines: {node: '>= 0.4'} 1997 | dependencies: 1998 | function-bind: 1.1.2 1999 | dev: true 2000 | 2001 | /he@1.2.0: 2002 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 2003 | hasBin: true 2004 | dev: true 2005 | 2006 | /html-escaper@2.0.2: 2007 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 2008 | dev: true 2009 | 2010 | /human-signals@2.1.0: 2011 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2012 | engines: {node: '>=10.17.0'} 2013 | dev: true 2014 | 2015 | /human-signals@4.3.1: 2016 | resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} 2017 | engines: {node: '>=14.18.0'} 2018 | dev: true 2019 | 2020 | /human-signals@5.0.0: 2021 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2022 | engines: {node: '>=16.17.0'} 2023 | dev: true 2024 | 2025 | /ignore@5.3.1: 2026 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 2027 | engines: {node: '>= 4'} 2028 | dev: true 2029 | 2030 | /import-fresh@3.3.0: 2031 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2032 | engines: {node: '>=6'} 2033 | dependencies: 2034 | parent-module: 1.0.1 2035 | resolve-from: 4.0.0 2036 | dev: true 2037 | 2038 | /import-lazy@4.0.0: 2039 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 2040 | engines: {node: '>=8'} 2041 | dev: true 2042 | 2043 | /imurmurhash@0.1.4: 2044 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2045 | engines: {node: '>=0.8.19'} 2046 | dev: true 2047 | 2048 | /inflight@1.0.6: 2049 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2050 | dependencies: 2051 | once: 1.4.0 2052 | wrappy: 1.0.2 2053 | dev: true 2054 | 2055 | /inherits@2.0.4: 2056 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2057 | dev: true 2058 | 2059 | /ini@1.3.8: 2060 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 2061 | dev: true 2062 | 2063 | /is-binary-path@2.1.0: 2064 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2065 | engines: {node: '>=8'} 2066 | dependencies: 2067 | binary-extensions: 2.3.0 2068 | dev: true 2069 | 2070 | /is-core-module@2.13.1: 2071 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2072 | dependencies: 2073 | hasown: 2.0.2 2074 | dev: true 2075 | 2076 | /is-docker@2.2.1: 2077 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 2078 | engines: {node: '>=8'} 2079 | hasBin: true 2080 | dev: true 2081 | 2082 | /is-docker@3.0.0: 2083 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 2084 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2085 | hasBin: true 2086 | dev: true 2087 | 2088 | /is-extglob@2.1.1: 2089 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2090 | engines: {node: '>=0.10.0'} 2091 | dev: true 2092 | 2093 | /is-fullwidth-code-point@3.0.0: 2094 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2095 | engines: {node: '>=8'} 2096 | dev: true 2097 | 2098 | /is-glob@4.0.3: 2099 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2100 | engines: {node: '>=0.10.0'} 2101 | dependencies: 2102 | is-extglob: 2.1.1 2103 | dev: true 2104 | 2105 | /is-inside-container@1.0.0: 2106 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 2107 | engines: {node: '>=14.16'} 2108 | hasBin: true 2109 | dependencies: 2110 | is-docker: 3.0.0 2111 | dev: true 2112 | 2113 | /is-number@7.0.0: 2114 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2115 | engines: {node: '>=0.12.0'} 2116 | dev: true 2117 | 2118 | /is-path-inside@3.0.3: 2119 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2120 | engines: {node: '>=8'} 2121 | dev: true 2122 | 2123 | /is-stream@2.0.1: 2124 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2125 | engines: {node: '>=8'} 2126 | dev: true 2127 | 2128 | /is-stream@3.0.0: 2129 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2130 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2131 | dev: true 2132 | 2133 | /is-wsl@2.2.0: 2134 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 2135 | engines: {node: '>=8'} 2136 | dependencies: 2137 | is-docker: 2.2.1 2138 | dev: true 2139 | 2140 | /isexe@2.0.0: 2141 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2142 | dev: true 2143 | 2144 | /istanbul-lib-coverage@3.2.2: 2145 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 2146 | engines: {node: '>=8'} 2147 | dev: true 2148 | 2149 | /istanbul-lib-report@3.0.1: 2150 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 2151 | engines: {node: '>=10'} 2152 | dependencies: 2153 | istanbul-lib-coverage: 3.2.2 2154 | make-dir: 4.0.0 2155 | supports-color: 7.2.0 2156 | dev: true 2157 | 2158 | /istanbul-lib-source-maps@5.0.4: 2159 | resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} 2160 | engines: {node: '>=10'} 2161 | dependencies: 2162 | '@jridgewell/trace-mapping': 0.3.25 2163 | debug: 4.3.4 2164 | istanbul-lib-coverage: 3.2.2 2165 | transitivePeerDependencies: 2166 | - supports-color 2167 | dev: true 2168 | 2169 | /istanbul-reports@3.1.7: 2170 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 2171 | engines: {node: '>=8'} 2172 | dependencies: 2173 | html-escaper: 2.0.2 2174 | istanbul-lib-report: 3.0.1 2175 | dev: true 2176 | 2177 | /jackspeak@2.3.6: 2178 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2179 | engines: {node: '>=14'} 2180 | dependencies: 2181 | '@isaacs/cliui': 8.0.2 2182 | optionalDependencies: 2183 | '@pkgjs/parseargs': 0.11.0 2184 | dev: true 2185 | 2186 | /jiti@1.21.0: 2187 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2188 | hasBin: true 2189 | dev: true 2190 | 2191 | /jju@1.4.0: 2192 | resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} 2193 | dev: true 2194 | 2195 | /js-beautify@1.15.1: 2196 | resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} 2197 | engines: {node: '>=14'} 2198 | hasBin: true 2199 | dependencies: 2200 | config-chain: 1.1.13 2201 | editorconfig: 1.0.4 2202 | glob: 10.3.12 2203 | js-cookie: 3.0.5 2204 | nopt: 7.2.0 2205 | dev: true 2206 | 2207 | /js-cookie@3.0.5: 2208 | resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} 2209 | engines: {node: '>=14'} 2210 | dev: true 2211 | 2212 | /js-tokens@9.0.0: 2213 | resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} 2214 | dev: true 2215 | 2216 | /js-yaml@4.1.0: 2217 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2218 | hasBin: true 2219 | dependencies: 2220 | argparse: 2.0.1 2221 | dev: true 2222 | 2223 | /json-buffer@3.0.1: 2224 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2225 | dev: true 2226 | 2227 | /json-schema-traverse@0.4.1: 2228 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2229 | dev: true 2230 | 2231 | /json-stable-stringify-without-jsonify@1.0.1: 2232 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2233 | dev: true 2234 | 2235 | /jsonc-parser@3.2.1: 2236 | resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} 2237 | dev: true 2238 | 2239 | /jsonfile@4.0.0: 2240 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 2241 | optionalDependencies: 2242 | graceful-fs: 4.2.11 2243 | dev: true 2244 | 2245 | /keyv@4.5.4: 2246 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2247 | dependencies: 2248 | json-buffer: 3.0.1 2249 | dev: true 2250 | 2251 | /kolorist@1.8.0: 2252 | resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 2253 | dev: true 2254 | 2255 | /levn@0.4.1: 2256 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2257 | engines: {node: '>= 0.8.0'} 2258 | dependencies: 2259 | prelude-ls: 1.2.1 2260 | type-check: 0.4.0 2261 | dev: true 2262 | 2263 | /local-pkg@0.5.0: 2264 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 2265 | engines: {node: '>=14'} 2266 | dependencies: 2267 | mlly: 1.6.1 2268 | pkg-types: 1.0.3 2269 | dev: true 2270 | 2271 | /locate-path@6.0.0: 2272 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2273 | engines: {node: '>=10'} 2274 | dependencies: 2275 | p-locate: 5.0.0 2276 | dev: true 2277 | 2278 | /lodash.get@4.4.2: 2279 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} 2280 | dev: true 2281 | 2282 | /lodash.isequal@4.5.0: 2283 | resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} 2284 | dev: true 2285 | 2286 | /lodash.merge@4.6.2: 2287 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2288 | dev: true 2289 | 2290 | /lodash@4.17.21: 2291 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2292 | dev: true 2293 | 2294 | /loupe@2.3.7: 2295 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 2296 | dependencies: 2297 | get-func-name: 2.0.2 2298 | dev: true 2299 | 2300 | /lru-cache@10.2.0: 2301 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2302 | engines: {node: 14 || >=16.14} 2303 | dev: true 2304 | 2305 | /lru-cache@6.0.0: 2306 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2307 | engines: {node: '>=10'} 2308 | dependencies: 2309 | yallist: 4.0.0 2310 | dev: true 2311 | 2312 | /magic-string@0.30.8: 2313 | resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} 2314 | engines: {node: '>=12'} 2315 | dependencies: 2316 | '@jridgewell/sourcemap-codec': 1.4.15 2317 | dev: true 2318 | 2319 | /magicast@0.3.3: 2320 | resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} 2321 | dependencies: 2322 | '@babel/parser': 7.24.1 2323 | '@babel/types': 7.24.0 2324 | source-map-js: 1.2.0 2325 | dev: true 2326 | 2327 | /make-dir@4.0.0: 2328 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 2329 | engines: {node: '>=10'} 2330 | dependencies: 2331 | semver: 7.6.0 2332 | dev: true 2333 | 2334 | /merge-stream@2.0.0: 2335 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2336 | dev: true 2337 | 2338 | /merge2@1.4.1: 2339 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2340 | engines: {node: '>= 8'} 2341 | dev: true 2342 | 2343 | /micromatch@4.0.5: 2344 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2345 | engines: {node: '>=8.6'} 2346 | dependencies: 2347 | braces: 3.0.2 2348 | picomatch: 2.3.1 2349 | dev: true 2350 | 2351 | /mimic-fn@2.1.0: 2352 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2353 | engines: {node: '>=6'} 2354 | dev: true 2355 | 2356 | /mimic-fn@4.0.0: 2357 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2358 | engines: {node: '>=12'} 2359 | dev: true 2360 | 2361 | /minimatch@3.0.8: 2362 | resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} 2363 | dependencies: 2364 | brace-expansion: 1.1.11 2365 | dev: true 2366 | 2367 | /minimatch@3.1.2: 2368 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2369 | dependencies: 2370 | brace-expansion: 1.1.11 2371 | dev: true 2372 | 2373 | /minimatch@9.0.1: 2374 | resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} 2375 | engines: {node: '>=16 || 14 >=14.17'} 2376 | dependencies: 2377 | brace-expansion: 2.0.1 2378 | dev: true 2379 | 2380 | /minimatch@9.0.3: 2381 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2382 | engines: {node: '>=16 || 14 >=14.17'} 2383 | dependencies: 2384 | brace-expansion: 2.0.1 2385 | dev: true 2386 | 2387 | /minimatch@9.0.4: 2388 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 2389 | engines: {node: '>=16 || 14 >=14.17'} 2390 | dependencies: 2391 | brace-expansion: 2.0.1 2392 | dev: true 2393 | 2394 | /minipass@3.3.6: 2395 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 2396 | engines: {node: '>=8'} 2397 | dependencies: 2398 | yallist: 4.0.0 2399 | dev: true 2400 | 2401 | /minipass@5.0.0: 2402 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 2403 | engines: {node: '>=8'} 2404 | dev: true 2405 | 2406 | /minipass@7.0.4: 2407 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2408 | engines: {node: '>=16 || 14 >=14.17'} 2409 | dev: true 2410 | 2411 | /minizlib@2.1.2: 2412 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 2413 | engines: {node: '>= 8'} 2414 | dependencies: 2415 | minipass: 3.3.6 2416 | yallist: 4.0.0 2417 | dev: true 2418 | 2419 | /mkdirp@1.0.4: 2420 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2421 | engines: {node: '>=10'} 2422 | hasBin: true 2423 | dev: true 2424 | 2425 | /mlly@1.6.1: 2426 | resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} 2427 | dependencies: 2428 | acorn: 8.11.3 2429 | pathe: 1.1.2 2430 | pkg-types: 1.0.3 2431 | ufo: 1.5.3 2432 | dev: true 2433 | 2434 | /mri@1.2.0: 2435 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2436 | engines: {node: '>=4'} 2437 | dev: true 2438 | 2439 | /ms@2.1.2: 2440 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2441 | dev: true 2442 | 2443 | /muggle-string@0.3.1: 2444 | resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} 2445 | dev: true 2446 | 2447 | /muggle-string@0.4.1: 2448 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 2449 | dev: true 2450 | 2451 | /nanoid@3.3.7: 2452 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2453 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2454 | hasBin: true 2455 | dev: true 2456 | 2457 | /natural-compare@1.4.0: 2458 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2459 | dev: true 2460 | 2461 | /node-fetch-native@1.6.4: 2462 | resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} 2463 | dev: true 2464 | 2465 | /nopt@7.2.0: 2466 | resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} 2467 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2468 | hasBin: true 2469 | dependencies: 2470 | abbrev: 2.0.0 2471 | dev: true 2472 | 2473 | /normalize-path@3.0.0: 2474 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2475 | engines: {node: '>=0.10.0'} 2476 | dev: true 2477 | 2478 | /npm-run-path@4.0.1: 2479 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2480 | engines: {node: '>=8'} 2481 | dependencies: 2482 | path-key: 3.1.1 2483 | dev: true 2484 | 2485 | /npm-run-path@5.3.0: 2486 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 2487 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2488 | dependencies: 2489 | path-key: 4.0.0 2490 | dev: true 2491 | 2492 | /nth-check@2.1.1: 2493 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2494 | dependencies: 2495 | boolbase: 1.0.0 2496 | dev: true 2497 | 2498 | /nypm@0.3.8: 2499 | resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} 2500 | engines: {node: ^14.16.0 || >=16.10.0} 2501 | hasBin: true 2502 | dependencies: 2503 | citty: 0.1.6 2504 | consola: 3.2.3 2505 | execa: 8.0.1 2506 | pathe: 1.1.2 2507 | ufo: 1.5.3 2508 | dev: true 2509 | 2510 | /ofetch@1.3.4: 2511 | resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} 2512 | dependencies: 2513 | destr: 2.0.3 2514 | node-fetch-native: 1.6.4 2515 | ufo: 1.5.3 2516 | dev: true 2517 | 2518 | /ohash@1.1.3: 2519 | resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} 2520 | dev: true 2521 | 2522 | /once@1.4.0: 2523 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2524 | dependencies: 2525 | wrappy: 1.0.2 2526 | dev: true 2527 | 2528 | /onetime@5.1.2: 2529 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2530 | engines: {node: '>=6'} 2531 | dependencies: 2532 | mimic-fn: 2.1.0 2533 | dev: true 2534 | 2535 | /onetime@6.0.0: 2536 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2537 | engines: {node: '>=12'} 2538 | dependencies: 2539 | mimic-fn: 4.0.0 2540 | dev: true 2541 | 2542 | /open@9.1.0: 2543 | resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} 2544 | engines: {node: '>=14.16'} 2545 | dependencies: 2546 | default-browser: 4.0.0 2547 | define-lazy-prop: 3.0.0 2548 | is-inside-container: 1.0.0 2549 | is-wsl: 2.2.0 2550 | dev: true 2551 | 2552 | /optionator@0.9.3: 2553 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2554 | engines: {node: '>= 0.8.0'} 2555 | dependencies: 2556 | '@aashutoshrathi/word-wrap': 1.2.6 2557 | deep-is: 0.1.4 2558 | fast-levenshtein: 2.0.6 2559 | levn: 0.4.1 2560 | prelude-ls: 1.2.1 2561 | type-check: 0.4.0 2562 | dev: true 2563 | 2564 | /p-limit@3.1.0: 2565 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2566 | engines: {node: '>=10'} 2567 | dependencies: 2568 | yocto-queue: 0.1.0 2569 | dev: true 2570 | 2571 | /p-limit@5.0.0: 2572 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 2573 | engines: {node: '>=18'} 2574 | dependencies: 2575 | yocto-queue: 1.0.0 2576 | dev: true 2577 | 2578 | /p-locate@5.0.0: 2579 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2580 | engines: {node: '>=10'} 2581 | dependencies: 2582 | p-limit: 3.1.0 2583 | dev: true 2584 | 2585 | /parent-module@1.0.1: 2586 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2587 | engines: {node: '>=6'} 2588 | dependencies: 2589 | callsites: 3.1.0 2590 | dev: true 2591 | 2592 | /path-browserify@1.0.1: 2593 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 2594 | dev: true 2595 | 2596 | /path-exists@4.0.0: 2597 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2598 | engines: {node: '>=8'} 2599 | dev: true 2600 | 2601 | /path-is-absolute@1.0.1: 2602 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2603 | engines: {node: '>=0.10.0'} 2604 | dev: true 2605 | 2606 | /path-key@3.1.1: 2607 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2608 | engines: {node: '>=8'} 2609 | dev: true 2610 | 2611 | /path-key@4.0.0: 2612 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2613 | engines: {node: '>=12'} 2614 | dev: true 2615 | 2616 | /path-parse@1.0.7: 2617 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2618 | dev: true 2619 | 2620 | /path-scurry@1.10.2: 2621 | resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} 2622 | engines: {node: '>=16 || 14 >=14.17'} 2623 | dependencies: 2624 | lru-cache: 10.2.0 2625 | minipass: 7.0.4 2626 | dev: true 2627 | 2628 | /path-type@4.0.0: 2629 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2630 | engines: {node: '>=8'} 2631 | dev: true 2632 | 2633 | /pathe@1.1.2: 2634 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 2635 | dev: true 2636 | 2637 | /pathval@1.1.1: 2638 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2639 | dev: true 2640 | 2641 | /perfect-debounce@1.0.0: 2642 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 2643 | dev: true 2644 | 2645 | /picocolors@1.0.0: 2646 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2647 | dev: true 2648 | 2649 | /picomatch@2.3.1: 2650 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2651 | engines: {node: '>=8.6'} 2652 | dev: true 2653 | 2654 | /pkg-types@1.0.3: 2655 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 2656 | dependencies: 2657 | jsonc-parser: 3.2.1 2658 | mlly: 1.6.1 2659 | pathe: 1.1.2 2660 | dev: true 2661 | 2662 | /postcss-selector-parser@6.0.16: 2663 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 2664 | engines: {node: '>=4'} 2665 | dependencies: 2666 | cssesc: 3.0.0 2667 | util-deprecate: 1.0.2 2668 | dev: true 2669 | 2670 | /postcss@8.4.38: 2671 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 2672 | engines: {node: ^10 || ^12 || >=14} 2673 | dependencies: 2674 | nanoid: 3.3.7 2675 | picocolors: 1.0.0 2676 | source-map-js: 1.2.0 2677 | dev: true 2678 | 2679 | /prelude-ls@1.2.1: 2680 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2681 | engines: {node: '>= 0.8.0'} 2682 | dev: true 2683 | 2684 | /prettier-linter-helpers@1.0.0: 2685 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 2686 | engines: {node: '>=6.0.0'} 2687 | dependencies: 2688 | fast-diff: 1.3.0 2689 | dev: true 2690 | 2691 | /prettier@3.2.5: 2692 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 2693 | engines: {node: '>=14'} 2694 | hasBin: true 2695 | dev: true 2696 | 2697 | /pretty-format@29.7.0: 2698 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 2699 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 2700 | dependencies: 2701 | '@jest/schemas': 29.6.3 2702 | ansi-styles: 5.2.0 2703 | react-is: 18.2.0 2704 | dev: true 2705 | 2706 | /proto-list@1.2.4: 2707 | resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} 2708 | dev: true 2709 | 2710 | /punycode@2.3.1: 2711 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2712 | engines: {node: '>=6'} 2713 | dev: true 2714 | 2715 | /queue-microtask@1.2.3: 2716 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2717 | dev: true 2718 | 2719 | /rc9@2.1.1: 2720 | resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} 2721 | dependencies: 2722 | defu: 6.1.4 2723 | destr: 2.0.3 2724 | flat: 5.0.2 2725 | dev: true 2726 | 2727 | /react-is@18.2.0: 2728 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 2729 | dev: true 2730 | 2731 | /readdirp@3.6.0: 2732 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2733 | engines: {node: '>=8.10.0'} 2734 | dependencies: 2735 | picomatch: 2.3.1 2736 | dev: true 2737 | 2738 | /resolve-from@4.0.0: 2739 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2740 | engines: {node: '>=4'} 2741 | dev: true 2742 | 2743 | /resolve@1.19.0: 2744 | resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} 2745 | dependencies: 2746 | is-core-module: 2.13.1 2747 | path-parse: 1.0.7 2748 | dev: true 2749 | 2750 | /resolve@1.22.8: 2751 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2752 | hasBin: true 2753 | dependencies: 2754 | is-core-module: 2.13.1 2755 | path-parse: 1.0.7 2756 | supports-preserve-symlinks-flag: 1.0.0 2757 | dev: true 2758 | 2759 | /reusify@1.0.4: 2760 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2761 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2762 | dev: true 2763 | 2764 | /rimraf@3.0.2: 2765 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2766 | hasBin: true 2767 | dependencies: 2768 | glob: 7.2.3 2769 | dev: true 2770 | 2771 | /rollup@4.13.2: 2772 | resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} 2773 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2774 | hasBin: true 2775 | dependencies: 2776 | '@types/estree': 1.0.5 2777 | optionalDependencies: 2778 | '@rollup/rollup-android-arm-eabi': 4.13.2 2779 | '@rollup/rollup-android-arm64': 4.13.2 2780 | '@rollup/rollup-darwin-arm64': 4.13.2 2781 | '@rollup/rollup-darwin-x64': 4.13.2 2782 | '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 2783 | '@rollup/rollup-linux-arm64-gnu': 4.13.2 2784 | '@rollup/rollup-linux-arm64-musl': 4.13.2 2785 | '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 2786 | '@rollup/rollup-linux-riscv64-gnu': 4.13.2 2787 | '@rollup/rollup-linux-s390x-gnu': 4.13.2 2788 | '@rollup/rollup-linux-x64-gnu': 4.13.2 2789 | '@rollup/rollup-linux-x64-musl': 4.13.2 2790 | '@rollup/rollup-win32-arm64-msvc': 4.13.2 2791 | '@rollup/rollup-win32-ia32-msvc': 4.13.2 2792 | '@rollup/rollup-win32-x64-msvc': 4.13.2 2793 | fsevents: 2.3.3 2794 | dev: true 2795 | 2796 | /run-applescript@5.0.0: 2797 | resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} 2798 | engines: {node: '>=12'} 2799 | dependencies: 2800 | execa: 5.1.1 2801 | dev: true 2802 | 2803 | /run-parallel@1.2.0: 2804 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2805 | dependencies: 2806 | queue-microtask: 1.2.3 2807 | dev: true 2808 | 2809 | /scule@1.3.0: 2810 | resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} 2811 | dev: true 2812 | 2813 | /semver@7.5.4: 2814 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2815 | engines: {node: '>=10'} 2816 | hasBin: true 2817 | dependencies: 2818 | lru-cache: 6.0.0 2819 | dev: true 2820 | 2821 | /semver@7.6.0: 2822 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 2823 | engines: {node: '>=10'} 2824 | hasBin: true 2825 | dependencies: 2826 | lru-cache: 6.0.0 2827 | dev: true 2828 | 2829 | /shebang-command@2.0.0: 2830 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2831 | engines: {node: '>=8'} 2832 | dependencies: 2833 | shebang-regex: 3.0.0 2834 | dev: true 2835 | 2836 | /shebang-regex@3.0.0: 2837 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2838 | engines: {node: '>=8'} 2839 | dev: true 2840 | 2841 | /siginfo@2.0.0: 2842 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 2843 | dev: true 2844 | 2845 | /signal-exit@3.0.7: 2846 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2847 | dev: true 2848 | 2849 | /signal-exit@4.1.0: 2850 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2851 | engines: {node: '>=14'} 2852 | dev: true 2853 | 2854 | /slash@3.0.0: 2855 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2856 | engines: {node: '>=8'} 2857 | dev: true 2858 | 2859 | /source-map-js@1.2.0: 2860 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 2861 | engines: {node: '>=0.10.0'} 2862 | dev: true 2863 | 2864 | /source-map@0.6.1: 2865 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2866 | engines: {node: '>=0.10.0'} 2867 | dev: true 2868 | 2869 | /sprintf-js@1.0.3: 2870 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 2871 | dev: true 2872 | 2873 | /stackback@0.0.2: 2874 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 2875 | dev: true 2876 | 2877 | /std-env@3.7.0: 2878 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 2879 | dev: true 2880 | 2881 | /string-argv@0.3.2: 2882 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 2883 | engines: {node: '>=0.6.19'} 2884 | dev: true 2885 | 2886 | /string-width@4.2.3: 2887 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2888 | engines: {node: '>=8'} 2889 | dependencies: 2890 | emoji-regex: 8.0.0 2891 | is-fullwidth-code-point: 3.0.0 2892 | strip-ansi: 6.0.1 2893 | dev: true 2894 | 2895 | /string-width@5.1.2: 2896 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2897 | engines: {node: '>=12'} 2898 | dependencies: 2899 | eastasianwidth: 0.2.0 2900 | emoji-regex: 9.2.2 2901 | strip-ansi: 7.1.0 2902 | dev: true 2903 | 2904 | /strip-ansi@6.0.1: 2905 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2906 | engines: {node: '>=8'} 2907 | dependencies: 2908 | ansi-regex: 5.0.1 2909 | dev: true 2910 | 2911 | /strip-ansi@7.1.0: 2912 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2913 | engines: {node: '>=12'} 2914 | dependencies: 2915 | ansi-regex: 6.0.1 2916 | dev: true 2917 | 2918 | /strip-final-newline@2.0.0: 2919 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2920 | engines: {node: '>=6'} 2921 | dev: true 2922 | 2923 | /strip-final-newline@3.0.0: 2924 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 2925 | engines: {node: '>=12'} 2926 | dev: true 2927 | 2928 | /strip-json-comments@3.1.1: 2929 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2930 | engines: {node: '>=8'} 2931 | dev: true 2932 | 2933 | /strip-literal@2.1.0: 2934 | resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} 2935 | dependencies: 2936 | js-tokens: 9.0.0 2937 | dev: true 2938 | 2939 | /supports-color@7.2.0: 2940 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2941 | engines: {node: '>=8'} 2942 | dependencies: 2943 | has-flag: 4.0.0 2944 | dev: true 2945 | 2946 | /supports-color@8.1.1: 2947 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 2948 | engines: {node: '>=10'} 2949 | dependencies: 2950 | has-flag: 4.0.0 2951 | dev: true 2952 | 2953 | /supports-preserve-symlinks-flag@1.0.0: 2954 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2955 | engines: {node: '>= 0.4'} 2956 | dev: true 2957 | 2958 | /synckit@0.8.8: 2959 | resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} 2960 | engines: {node: ^14.18.0 || >=16.0.0} 2961 | dependencies: 2962 | '@pkgr/core': 0.1.1 2963 | tslib: 2.6.2 2964 | dev: true 2965 | 2966 | /tar@6.2.1: 2967 | resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} 2968 | engines: {node: '>=10'} 2969 | dependencies: 2970 | chownr: 2.0.0 2971 | fs-minipass: 2.1.0 2972 | minipass: 5.0.0 2973 | minizlib: 2.1.2 2974 | mkdirp: 1.0.4 2975 | yallist: 4.0.0 2976 | dev: true 2977 | 2978 | /test-exclude@6.0.0: 2979 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 2980 | engines: {node: '>=8'} 2981 | dependencies: 2982 | '@istanbuljs/schema': 0.1.3 2983 | glob: 7.2.3 2984 | minimatch: 3.1.2 2985 | dev: true 2986 | 2987 | /text-table@0.2.0: 2988 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2989 | dev: true 2990 | 2991 | /tinybench@2.6.0: 2992 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} 2993 | dev: true 2994 | 2995 | /tinypool@0.8.3: 2996 | resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} 2997 | engines: {node: '>=14.0.0'} 2998 | dev: true 2999 | 3000 | /tinyspy@2.2.1: 3001 | resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} 3002 | engines: {node: '>=14.0.0'} 3003 | dev: true 3004 | 3005 | /titleize@3.0.0: 3006 | resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} 3007 | engines: {node: '>=12'} 3008 | dev: true 3009 | 3010 | /to-fast-properties@2.0.0: 3011 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3012 | engines: {node: '>=4'} 3013 | dev: true 3014 | 3015 | /to-regex-range@5.0.1: 3016 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3017 | engines: {node: '>=8.0'} 3018 | dependencies: 3019 | is-number: 7.0.0 3020 | dev: true 3021 | 3022 | /ts-api-utils@1.3.0(typescript@5.4.3): 3023 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 3024 | engines: {node: '>=16'} 3025 | peerDependencies: 3026 | typescript: '>=4.2.0' 3027 | dependencies: 3028 | typescript: 5.4.3 3029 | dev: true 3030 | 3031 | /tslib@2.6.2: 3032 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3033 | dev: true 3034 | 3035 | /type-check@0.4.0: 3036 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3037 | engines: {node: '>= 0.8.0'} 3038 | dependencies: 3039 | prelude-ls: 1.2.1 3040 | dev: true 3041 | 3042 | /type-detect@4.0.8: 3043 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3044 | engines: {node: '>=4'} 3045 | dev: true 3046 | 3047 | /type-fest@0.20.2: 3048 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3049 | engines: {node: '>=10'} 3050 | dev: true 3051 | 3052 | /typescript@5.4.2: 3053 | resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} 3054 | engines: {node: '>=14.17'} 3055 | hasBin: true 3056 | dev: true 3057 | 3058 | /typescript@5.4.3: 3059 | resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} 3060 | engines: {node: '>=14.17'} 3061 | hasBin: true 3062 | dev: true 3063 | 3064 | /ufo@1.5.3: 3065 | resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} 3066 | dev: true 3067 | 3068 | /undici-types@5.26.5: 3069 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3070 | dev: true 3071 | 3072 | /universalify@0.1.2: 3073 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 3074 | engines: {node: '>= 4.0.0'} 3075 | dev: true 3076 | 3077 | /untildify@4.0.0: 3078 | resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} 3079 | engines: {node: '>=8'} 3080 | dev: true 3081 | 3082 | /uri-js@4.4.1: 3083 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3084 | dependencies: 3085 | punycode: 2.3.1 3086 | dev: true 3087 | 3088 | /util-deprecate@1.0.2: 3089 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3090 | dev: true 3091 | 3092 | /v8-to-istanbul@9.2.0: 3093 | resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} 3094 | engines: {node: '>=10.12.0'} 3095 | dependencies: 3096 | '@jridgewell/trace-mapping': 0.3.25 3097 | '@types/istanbul-lib-coverage': 2.0.6 3098 | convert-source-map: 2.0.0 3099 | dev: true 3100 | 3101 | /validator@13.11.0: 3102 | resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} 3103 | engines: {node: '>= 0.10'} 3104 | dev: true 3105 | 3106 | /vite-node@1.4.0(@types/node@20.12.2): 3107 | resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} 3108 | engines: {node: ^18.0.0 || >=20.0.0} 3109 | hasBin: true 3110 | dependencies: 3111 | cac: 6.7.14 3112 | debug: 4.3.4 3113 | pathe: 1.1.2 3114 | picocolors: 1.0.0 3115 | vite: 5.2.7(@types/node@20.12.2) 3116 | transitivePeerDependencies: 3117 | - '@types/node' 3118 | - less 3119 | - lightningcss 3120 | - sass 3121 | - stylus 3122 | - sugarss 3123 | - supports-color 3124 | - terser 3125 | dev: true 3126 | 3127 | /vite-plugin-dts@3.8.1(@types/node@20.12.2)(typescript@5.4.3)(vite@5.2.7): 3128 | resolution: {integrity: sha512-zEYyQxH7lKto1VTKZHF3ZZeOPkkJgnMrePY4VxDHfDSvDjmYMMfWjZxYmNwW8QxbaItWJQhhXY+geAbyNphI7g==} 3129 | engines: {node: ^14.18.0 || >=16.0.0} 3130 | peerDependencies: 3131 | typescript: '*' 3132 | vite: '*' 3133 | peerDependenciesMeta: 3134 | vite: 3135 | optional: true 3136 | dependencies: 3137 | '@microsoft/api-extractor': 7.43.0(@types/node@20.12.2) 3138 | '@rollup/pluginutils': 5.1.0 3139 | '@vue/language-core': 1.8.27(typescript@5.4.3) 3140 | debug: 4.3.4 3141 | kolorist: 1.8.0 3142 | magic-string: 0.30.8 3143 | typescript: 5.4.3 3144 | vite: 5.2.7(@types/node@20.12.2) 3145 | vue-tsc: 1.8.27(typescript@5.4.3) 3146 | transitivePeerDependencies: 3147 | - '@types/node' 3148 | - rollup 3149 | - supports-color 3150 | dev: true 3151 | 3152 | /vite@5.2.7(@types/node@20.12.2): 3153 | resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} 3154 | engines: {node: ^18.0.0 || >=20.0.0} 3155 | hasBin: true 3156 | peerDependencies: 3157 | '@types/node': ^18.0.0 || >=20.0.0 3158 | less: '*' 3159 | lightningcss: ^1.21.0 3160 | sass: '*' 3161 | stylus: '*' 3162 | sugarss: '*' 3163 | terser: ^5.4.0 3164 | peerDependenciesMeta: 3165 | '@types/node': 3166 | optional: true 3167 | less: 3168 | optional: true 3169 | lightningcss: 3170 | optional: true 3171 | sass: 3172 | optional: true 3173 | stylus: 3174 | optional: true 3175 | sugarss: 3176 | optional: true 3177 | terser: 3178 | optional: true 3179 | dependencies: 3180 | '@types/node': 20.12.2 3181 | esbuild: 0.20.2 3182 | postcss: 8.4.38 3183 | rollup: 4.13.2 3184 | optionalDependencies: 3185 | fsevents: 2.3.3 3186 | dev: true 3187 | 3188 | /vitest@1.4.0(@types/node@20.12.2)(happy-dom@14.3.10): 3189 | resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} 3190 | engines: {node: ^18.0.0 || >=20.0.0} 3191 | hasBin: true 3192 | peerDependencies: 3193 | '@edge-runtime/vm': '*' 3194 | '@types/node': ^18.0.0 || >=20.0.0 3195 | '@vitest/browser': 1.4.0 3196 | '@vitest/ui': 1.4.0 3197 | happy-dom: '*' 3198 | jsdom: '*' 3199 | peerDependenciesMeta: 3200 | '@edge-runtime/vm': 3201 | optional: true 3202 | '@types/node': 3203 | optional: true 3204 | '@vitest/browser': 3205 | optional: true 3206 | '@vitest/ui': 3207 | optional: true 3208 | happy-dom: 3209 | optional: true 3210 | jsdom: 3211 | optional: true 3212 | dependencies: 3213 | '@types/node': 20.12.2 3214 | '@vitest/expect': 1.4.0 3215 | '@vitest/runner': 1.4.0 3216 | '@vitest/snapshot': 1.4.0 3217 | '@vitest/spy': 1.4.0 3218 | '@vitest/utils': 1.4.0 3219 | acorn-walk: 8.3.2 3220 | chai: 4.4.1 3221 | debug: 4.3.4 3222 | execa: 8.0.1 3223 | happy-dom: 14.3.10 3224 | local-pkg: 0.5.0 3225 | magic-string: 0.30.8 3226 | pathe: 1.1.2 3227 | picocolors: 1.0.0 3228 | std-env: 3.7.0 3229 | strip-literal: 2.1.0 3230 | tinybench: 2.6.0 3231 | tinypool: 0.8.3 3232 | vite: 5.2.7(@types/node@20.12.2) 3233 | vite-node: 1.4.0(@types/node@20.12.2) 3234 | why-is-node-running: 2.2.2 3235 | transitivePeerDependencies: 3236 | - less 3237 | - lightningcss 3238 | - sass 3239 | - stylus 3240 | - sugarss 3241 | - supports-color 3242 | - terser 3243 | dev: true 3244 | 3245 | /vue-component-type-helpers@2.0.7: 3246 | resolution: {integrity: sha512-7e12Evdll7JcTIocojgnCgwocX4WzIYStGClBQ+QuWPinZo/vQolv2EMq4a3lg16TKfwWafLimG77bxb56UauA==} 3247 | dev: true 3248 | 3249 | /vue-eslint-parser@9.4.2(eslint@8.57.0): 3250 | resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} 3251 | engines: {node: ^14.17.0 || >=16.0.0} 3252 | peerDependencies: 3253 | eslint: '>=6.0.0' 3254 | dependencies: 3255 | debug: 4.3.4 3256 | eslint: 8.57.0 3257 | eslint-scope: 7.2.2 3258 | eslint-visitor-keys: 3.4.3 3259 | espree: 9.6.1 3260 | esquery: 1.5.0 3261 | lodash: 4.17.21 3262 | semver: 7.6.0 3263 | transitivePeerDependencies: 3264 | - supports-color 3265 | dev: true 3266 | 3267 | /vue-template-compiler@2.7.16: 3268 | resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} 3269 | dependencies: 3270 | de-indent: 1.0.2 3271 | he: 1.2.0 3272 | dev: true 3273 | 3274 | /vue-tsc@1.8.27(typescript@5.4.3): 3275 | resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} 3276 | hasBin: true 3277 | peerDependencies: 3278 | typescript: '*' 3279 | dependencies: 3280 | '@volar/typescript': 1.11.1 3281 | '@vue/language-core': 1.8.27(typescript@5.4.3) 3282 | semver: 7.6.0 3283 | typescript: 5.4.3 3284 | dev: true 3285 | 3286 | /vue-tsc@2.0.7(typescript@5.4.3): 3287 | resolution: {integrity: sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg==} 3288 | hasBin: true 3289 | peerDependencies: 3290 | typescript: '*' 3291 | dependencies: 3292 | '@volar/typescript': 2.1.6 3293 | '@vue/language-core': 2.0.7(typescript@5.4.3) 3294 | semver: 7.6.0 3295 | typescript: 5.4.3 3296 | dev: true 3297 | 3298 | /vue@3.4.21(typescript@5.4.3): 3299 | resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} 3300 | peerDependencies: 3301 | typescript: '*' 3302 | peerDependenciesMeta: 3303 | typescript: 3304 | optional: true 3305 | dependencies: 3306 | '@vue/compiler-dom': 3.4.21 3307 | '@vue/compiler-sfc': 3.4.21 3308 | '@vue/runtime-dom': 3.4.21 3309 | '@vue/server-renderer': 3.4.21(vue@3.4.21) 3310 | '@vue/shared': 3.4.21 3311 | typescript: 5.4.3 3312 | dev: true 3313 | 3314 | /webidl-conversions@7.0.0: 3315 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 3316 | engines: {node: '>=12'} 3317 | dev: true 3318 | 3319 | /whatwg-mimetype@3.0.0: 3320 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} 3321 | engines: {node: '>=12'} 3322 | dev: true 3323 | 3324 | /which@2.0.2: 3325 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3326 | engines: {node: '>= 8'} 3327 | hasBin: true 3328 | dependencies: 3329 | isexe: 2.0.0 3330 | dev: true 3331 | 3332 | /why-is-node-running@2.2.2: 3333 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 3334 | engines: {node: '>=8'} 3335 | hasBin: true 3336 | dependencies: 3337 | siginfo: 2.0.0 3338 | stackback: 0.0.2 3339 | dev: true 3340 | 3341 | /wrap-ansi@7.0.0: 3342 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3343 | engines: {node: '>=10'} 3344 | dependencies: 3345 | ansi-styles: 4.3.0 3346 | string-width: 4.2.3 3347 | strip-ansi: 6.0.1 3348 | dev: true 3349 | 3350 | /wrap-ansi@8.1.0: 3351 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3352 | engines: {node: '>=12'} 3353 | dependencies: 3354 | ansi-styles: 6.2.1 3355 | string-width: 5.1.2 3356 | strip-ansi: 7.1.0 3357 | dev: true 3358 | 3359 | /wrappy@1.0.2: 3360 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3361 | dev: true 3362 | 3363 | /xml-name-validator@4.0.0: 3364 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 3365 | engines: {node: '>=12'} 3366 | dev: true 3367 | 3368 | /yallist@4.0.0: 3369 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3370 | dev: true 3371 | 3372 | /yaml@2.4.1: 3373 | resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 3374 | engines: {node: '>= 14'} 3375 | hasBin: true 3376 | dev: true 3377 | 3378 | /yocto-queue@0.1.0: 3379 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3380 | engines: {node: '>=10'} 3381 | dev: true 3382 | 3383 | /yocto-queue@1.0.0: 3384 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 3385 | engines: {node: '>=12.20'} 3386 | dev: true 3387 | 3388 | /z-schema@5.0.5: 3389 | resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} 3390 | engines: {node: '>=8.0.0'} 3391 | hasBin: true 3392 | dependencies: 3393 | lodash.get: 4.4.2 3394 | lodash.isequal: 4.5.0 3395 | validator: 13.11.0 3396 | optionalDependencies: 3397 | commander: 9.5.0 3398 | dev: true 3399 | --------------------------------------------------------------------------------