├── .commitlintrc.js ├── .github └── workflows │ └── release.yml ├── .gitignore ├── .lintstagedrc ├── .node-version ├── .npmrc ├── .vscode ├── extensions.json └── settings.json ├── README.CN.md ├── README.md ├── eslint.config.js ├── example ├── react │ ├── .gitignore │ ├── README.md │ ├── eslint.config.js │ ├── index.html │ ├── loading.html │ ├── package.json │ ├── public │ │ └── vite.svg │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── assets │ │ │ └── react.svg │ │ ├── index.css │ │ ├── main.tsx │ │ └── vite-env.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts └── vue │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── index.html │ ├── loading.html │ ├── package.json │ ├── public │ └── vite.svg │ ├── src │ ├── App.vue │ ├── assets │ │ └── vue.svg │ ├── components │ │ └── HelloWorld.vue │ ├── main.ts │ ├── style.css │ └── vite-env.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.app.tsbuildinfo │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── tsconfig.node.tsbuildinfo │ └── vite.config.ts ├── package.json ├── packages └── vite-plugin-app-loading │ ├── README.CN.md │ ├── README.md │ ├── client.d.ts │ ├── loading.html │ ├── package-lock.json │ ├── package.json │ ├── src │ └── index.ts │ └── tsup.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml └── tsconfig.json /.commitlintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('cz-git').UserConfig} */ 2 | export default { 3 | rules: { 4 | // @see: https://commitlint.js.org/#/reference-rules 5 | }, 6 | prompt: { 7 | alias: { fd: 'docs: fix typos' }, 8 | messages: { 9 | type: '选择你要提交的类型 :', 10 | scope: '选择一个提交范围(可选):', 11 | customScope: '请输入自定义的提交范围 :', 12 | subject: '填写简短精炼的变更描述 :\n', 13 | body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n', 14 | breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n', 15 | footerPrefixsSelect: '选择关联issue前缀(可选):', 16 | customFooterPrefixs: '输入自定义issue前缀 :', 17 | footer: '列举关联issue (可选) 例如: #31, #I3244 :\n', 18 | confirmCommit: '是否提交或修改commit ?', 19 | }, 20 | types: [ 21 | { value: 'feat', name: 'feat: ✨ 新增功能 | A new feature', emoji: ':sparkles:' }, 22 | { value: 'fix', name: 'fix: 🐛 修复缺陷 | A bug fix', emoji: ':bug:' }, 23 | { value: 'docs', name: 'docs: 📝 文档更新 | Documentation only changes', emoji: ':memo:' }, 24 | { value: 'style', name: 'style: 💄 代码格式 | Changes that do not affect the meaning of the code', emoji: ':lipstick:' }, 25 | { value: 'refactor', name: 'refactor: ♻️ 代码重构 | A code change that neither fixes a bug nor adds a feature', emoji: ':recycle:' }, 26 | { value: 'perf', name: 'perf: ⚡️ 性能提升 | A code change that improves performance', emoji: ':zap:' }, 27 | { value: 'test', name: 'test: ✅ 测试相关 | Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' }, 28 | { value: 'build', name: 'build: 📦️ 构建相关 | Changes that affect the build system or external dependencies', emoji: ':package:' }, 29 | { value: 'ci', name: 'ci: 🎡 持续集成 | Changes to our CI configuration files and scripts', emoji: ':ferris_wheel:' }, 30 | { value: 'revert', name: 'revert: ⏪️ 回退代码 | Revert to a commit', emoji: ':rewind:' }, 31 | { value: 'chore', name: 'chore: 🔨 其他修改 | Other changes that do not modify src or test files', emoji: ':hammer:' }, 32 | ], 33 | useEmoji: false, 34 | emojiAlign: 'center', 35 | themeColorCode: '', 36 | scopes: [], 37 | allowCustomScopes: true, 38 | allowEmptyScopes: true, 39 | customScopesAlign: 'bottom', 40 | customScopesAlias: 'custom', 41 | emptyScopesAlias: 'empty', 42 | upperCaseSubject: false, 43 | markBreakingChangeMode: true, 44 | allowBreakingChanges: ['feat', 'fix'], 45 | breaklineNumber: 100, 46 | breaklineChar: '|', 47 | skipQuestions: [], 48 | issuePrefixs: [ 49 | // 如果使用 gitee 作为开发管理 50 | { value: 'link', name: 'link: 链接 ISSUES 进行中' }, 51 | { value: 'closed', name: 'closed: 标记 ISSUES 已完成' }, 52 | ], 53 | customIssuePrefixsAlign: 'top', 54 | emptyIssuePrefixsAlias: 'skip', 55 | customIssuePrefixsAlias: 'custom', 56 | allowCustomIssuePrefixs: true, 57 | allowEmptyIssuePrefixs: true, 58 | confirmColorize: true, 59 | maxHeaderLength: Number.POSITIVE_INFINITY, 60 | maxSubjectLength: Number.POSITIVE_INFINITY, 61 | minSubjectLength: 0, 62 | scopeOverrides: undefined, 63 | defaultBody: '', 64 | defaultIssues: '', 65 | defaultScope: '', 66 | defaultSubject: '', 67 | }, 68 | } 69 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | jobs: 9 | release: 10 | permissions: 11 | id-token: write 12 | contents: write 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Install pnpm 20 | uses: pnpm/action-setup@v4 21 | with: 22 | version: 9 23 | 24 | - name: Set node 25 | uses: actions/setup-node@v4 26 | with: 27 | node-version: lts/* 28 | cache: pnpm 29 | registry-url: 'https://registry.npmjs.org' 30 | 31 | - run: npx changelogithub 32 | env: 33 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 34 | 35 | - name: Install Dependencies 36 | run: pnpm i 37 | 38 | - name: PNPM build 39 | run: pnpm run build 40 | 41 | - name: Publish to NPM 42 | run: pnpm -r publish --access public --no-git-checks 43 | env: 44 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 45 | NPM_CONFIG_PROVENANCE: true 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | 5 | .eslintcache -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "*.ts": "eslint --cache --fix", 3 | } 4 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 20 -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | strict-peer-dependencies=false 2 | auto-install-peers=true 3 | dedupe-peer-dependents=true 4 | link-workspace-packages=true -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "EditorConfig.EditorConfig", 4 | "mikestead.dotenv", 5 | "dbaeumer.vscode-eslint" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint.useFlatConfig": true, 3 | "prettier.enable": false, 4 | "editor.formatOnSave": false, 5 | "editor.codeActionsOnSave": { 6 | "source.fixAll.eslint": "explicit", 7 | "source.organizeImports": "never" 8 | }, 9 | "eslint.validate": [ 10 | "javascript", 11 | "javascriptreact", 12 | "typescript", 13 | "typescriptreact", 14 | "vue", 15 | "html", 16 | "markdown", 17 | "json", 18 | "jsonc", 19 | "yaml" 20 | ], 21 | "typescript.tsdk": "node_modules/typescript/lib" 22 | } 23 | -------------------------------------------------------------------------------- /README.CN.md: -------------------------------------------------------------------------------- 1 | # vite-plugin-app-loading 2 | 3 | [![NPM version](https://img.shields.io/npm/v/vite-plugin-app-loading?color=a1b858&label=)](https://www.npmjs.com/package/vite-plugin-app-loading) 4 | 5 | [English](./README.md) | **中文** 6 | 7 | 给网站添加一个加载动画 8 | 9 | ![vite-plugin-app-loading](https://github.com/user-attachments/assets/95217497-7022-43c1-987a-cec101db7671) 10 | 11 | ## 安装 12 | 13 | ```bash 14 | npm i vite-plugin-app-loading -D 15 | ``` 16 | 17 | ## 使用 18 | 19 | ```ts 20 | // vite.config.ts 21 | import AppLoading from 'vite-plugin-app-loading' 22 | 23 | export default defineConfig({ 24 | plugins: [ 25 | AppLoading(), 26 | ], 27 | }) 28 | ``` 29 | 30 | 在合适的时机隐藏加载动画: 31 | 32 | ```ts 33 | // src/main.ts 34 | import { loadingFadeOut } from 'virtual:app-loading' 35 | loadingFadeOut() 36 | ``` 37 | 38 | ## 类型 39 | 40 | 有两种方法可以告诉 TypeScript 虚拟导入的类型: 41 | 42 | - 在你的 `global.d.ts` 文件添加下面这句: 43 | 44 | ```ts 45 | /// 46 | ``` 47 | 48 | - 在你的 `tsconfig.json` 中,将以下内容添加到你的 `compilerOptions.types` 数组中: 49 | 50 | ```json 51 | { 52 | // ... 53 | "compilerOptions": { 54 | // ... 55 | "types": [ 56 | "vite-plugin-app-loading/client" 57 | ] 58 | } 59 | } 60 | ``` 61 | 62 | ## 自定义动画 63 | 64 | 在应用根目录创建 `loading.html` 文件: 65 | 66 | ```html 67 | 79 |
80 | ``` 81 | 82 | ```ts 83 | // vite.config.ts 84 | import AppLoading from 'vite-plugin-app-loading' 85 | 86 | export default defineConfig({ 87 | plugins: [ 88 | AppLoading('loading.html'), 89 | ], 90 | }) 91 | ``` 92 | 93 | ![](https://github.com/user-attachments/assets/b05f8157-2f06-44af-b8bb-fa53701daf29) 94 | 95 | > [!TIP] 96 | > 你可以从下列网站中找找灵感,它们都提供了纯 CSS 的加载动画,非常适合搭配本插件一起使用。 97 | > 98 | > - [CSS Loaders](https://css-loaders.com/) 99 | > - [CSS Loader Generator](https://10015.io/tools/css-loader-generator) 100 | > - [Loaders](https://cssloaders.github.io/) 101 | 102 | ## 范例 103 | 104 | [Fantastic-admin](https://github.com/fantastic-admin/basic) 105 | 106 | ## 致谢 107 | 108 | 感谢 [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin/tree/7bcb973d6595545e2cef6ad4006d781b3176f67b/internal/vite-config/src/plugins/inject-app-loading) 提供的灵感。 109 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vite-plugin-app-loading 2 | 3 | [![NPM version](https://img.shields.io/npm/v/vite-plugin-app-loading?color=a1b858&label=)](https://www.npmjs.com/package/vite-plugin-app-loading) 4 | 5 | **English** | [中文](./README.CN.md) 6 | 7 | Add a loading animation to your website 8 | 9 | ![vite-plugin-app-loading](https://github.com/user-attachments/assets/95217497-7022-43c1-987a-cec101db7671) 10 | 11 | ## Installation 12 | 13 | ```bash 14 | npm i vite-plugin-app-loading -D 15 | ``` 16 | 17 | ## Usage 18 | 19 | ```ts 20 | // vite.config.ts 21 | import AppLoading from 'vite-plugin-app-loading' 22 | 23 | export default defineConfig({ 24 | plugins: [ 25 | AppLoading(), 26 | ], 27 | }) 28 | ``` 29 | 30 | Hide the loading animation at the right time: 31 | 32 | ```ts 33 | // src/main.ts 34 | import { loadingFadeOut } from 'virtual:app-loading' 35 | loadingFadeOut() 36 | ``` 37 | 38 | ## Types 39 | 40 | There are two ways of telling typescript about the types of the virtual import: 41 | 42 | - In your `global.d.ts` file add the following line: 43 | 44 | ```ts 45 | /// 46 | ``` 47 | 48 | - In your `tsconfig.json` add the following to your compilerOptions.types array: 49 | 50 | ```json 51 | { 52 | // ... 53 | "compilerOptions": { 54 | // ... 55 | "types": [ 56 | "vite-plugin-app-loading/client" 57 | ] 58 | } 59 | } 60 | ``` 61 | 62 | ## Custom animations 63 | 64 | Create a `loading.html` file at the root directory: 65 | 66 | ```html 67 | 79 |
80 | ``` 81 | 82 | ```ts 83 | // vite.config.ts 84 | import AppLoading from 'vite-plugin-app-loading' 85 | 86 | export default defineConfig({ 87 | plugins: [ 88 | AppLoading('loading.html'), 89 | ], 90 | }) 91 | ``` 92 | 93 | ![](https://github.com/user-attachments/assets/b05f8157-2f06-44af-b8bb-fa53701daf29) 94 | 95 | > [!TIP] 96 | > You can find inspiration from the following websites, which all provide CSS-only loading animations that are perfect for use with this plugin. 97 | > 98 | > - [CSS Loaders](https://css-loaders.com/) 99 | > - [CSS Loader Generator](https://10015.io/tools/css-loader-generator) 100 | > - [Loaders](https://cssloaders.github.io/) 101 | 102 | ## Example 103 | 104 | [Fantastic-admin](https://github.com/fantastic-admin/basic) 105 | 106 | ## Thanks 107 | 108 | Thanks to [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin/tree/7bcb973d6595545e2cef6ad4006d781b3176f67b/internal/vite-config/src/plugins/inject-app-loading) for the inspiration. 109 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import antfu from '@antfu/eslint-config' 2 | 3 | export default antfu( 4 | { 5 | type: 'lib', 6 | typescript: true, 7 | ignores: ['dist'], 8 | }, 9 | ) 10 | -------------------------------------------------------------------------------- /example/react/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /example/react/README.md: -------------------------------------------------------------------------------- 1 | # React + TypeScript + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | 10 | ## Expanding the ESLint configuration 11 | 12 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: 13 | 14 | - Configure the top-level `parserOptions` property like this: 15 | 16 | ```js 17 | export default tseslint.config({ 18 | languageOptions: { 19 | // other options... 20 | parserOptions: { 21 | project: ['./tsconfig.node.json', './tsconfig.app.json'], 22 | tsconfigRootDir: import.meta.dirname, 23 | }, 24 | }, 25 | }) 26 | ``` 27 | 28 | - Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` 29 | - Optionally add `...tseslint.configs.stylisticTypeChecked` 30 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: 31 | 32 | ```js 33 | // eslint.config.js 34 | import react from 'eslint-plugin-react' 35 | 36 | export default tseslint.config({ 37 | // Set the react version 38 | settings: { react: { version: '18.3' } }, 39 | plugins: { 40 | // Add the react plugin 41 | react, 42 | }, 43 | rules: { 44 | // other rules... 45 | // Enable its recommended rules 46 | ...react.configs.recommended.rules, 47 | ...react.configs['jsx-runtime'].rules, 48 | }, 49 | }) 50 | ``` 51 | -------------------------------------------------------------------------------- /example/react/eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js' 2 | import reactHooks from 'eslint-plugin-react-hooks' 3 | import reactRefresh from 'eslint-plugin-react-refresh' 4 | import globals from 'globals' 5 | import tseslint from 'typescript-eslint' 6 | 7 | export default tseslint.config( 8 | { ignores: ['dist'] }, 9 | { 10 | extends: [js.configs.recommended, ...tseslint.configs.recommended], 11 | files: ['**/*.{ts,tsx}'], 12 | languageOptions: { 13 | ecmaVersion: 2020, 14 | globals: globals.browser, 15 | }, 16 | plugins: { 17 | 'react-hooks': reactHooks, 18 | 'react-refresh': reactRefresh, 19 | }, 20 | rules: { 21 | ...reactHooks.configs.recommended.rules, 22 | 'react-refresh/only-export-components': [ 23 | 'warn', 24 | { allowConstantExport: true }, 25 | ], 26 | }, 27 | }, 28 | ) 29 | -------------------------------------------------------------------------------- /example/react/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /example/react/loading.html: -------------------------------------------------------------------------------- 1 | 13 |
14 | -------------------------------------------------------------------------------- /example/react/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react", 3 | "type": "module", 4 | "version": "0.4.0", 5 | "private": true, 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc -b && vite build", 9 | "lint": "eslint .", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "react": "^18.3.1", 14 | "react-dom": "^18.3.1" 15 | }, 16 | "devDependencies": { 17 | "@eslint/js": "^9.28.0", 18 | "@types/react": "^19.1.6", 19 | "@types/react-dom": "^19.1.5", 20 | "@vitejs/plugin-react": "^4.5.1", 21 | "eslint": "^9.28.0", 22 | "eslint-plugin-react-hooks": "^5.2.0", 23 | "eslint-plugin-react-refresh": "^0.4.20", 24 | "globals": "^15.15.0", 25 | "typescript": "^5.8.3", 26 | "typescript-eslint": "^8.33.1", 27 | "vite": "^6.3.5", 28 | "vite-plugin-app-loading": "workspace:*" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /example/react/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/react/src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | transition: filter 300ms; 13 | } 14 | .logo:hover { 15 | filter: drop-shadow(0 0 2em #646cffaa); 16 | } 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | to { 26 | transform: rotate(360deg); 27 | } 28 | } 29 | 30 | @media (prefers-reduced-motion: no-preference) { 31 | a:nth-of-type(2) .logo { 32 | animation: logo-spin infinite 20s linear; 33 | } 34 | } 35 | 36 | .card { 37 | padding: 2em; 38 | } 39 | 40 | .read-the-docs { 41 | color: #888; 42 | } 43 | -------------------------------------------------------------------------------- /example/react/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import reactLogo from './assets/react.svg' 3 | import './App.css' 4 | import viteLogo from '/vite.svg' 5 | 6 | function App() { 7 | const [count, setCount] = useState(0) 8 | 9 | return ( 10 | <> 11 |
12 | 13 | Vite logo 14 | 15 | 16 | React logo 17 | 18 |
19 |

Vite + React

20 |
21 | 26 |

27 | Edit 28 | {' '} 29 | src/App.tsx 30 | {' '} 31 | and save to test HMR 32 |

33 |
34 |

35 | Click on the Vite and React logos to learn more 36 |

37 | 38 | ) 39 | } 40 | 41 | export default App 42 | -------------------------------------------------------------------------------- /example/react/src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/react/src/index.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | a { 17 | font-weight: 500; 18 | color: #646cff; 19 | text-decoration: inherit; 20 | } 21 | a:hover { 22 | color: #535bf2; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | display: flex; 28 | place-items: center; 29 | min-width: 320px; 30 | min-height: 100vh; 31 | } 32 | 33 | h1 { 34 | font-size: 3.2em; 35 | line-height: 1.1; 36 | } 37 | 38 | button { 39 | border-radius: 8px; 40 | border: 1px solid transparent; 41 | padding: 0.6em 1.2em; 42 | font-size: 1em; 43 | font-weight: 500; 44 | font-family: inherit; 45 | background-color: #1a1a1a; 46 | cursor: pointer; 47 | transition: border-color 0.25s; 48 | } 49 | button:hover { 50 | border-color: #646cff; 51 | } 52 | button:focus, 53 | button:focus-visible { 54 | outline: 4px auto -webkit-focus-ring-color; 55 | } 56 | 57 | @media (prefers-color-scheme: light) { 58 | :root { 59 | color: #213547; 60 | background-color: #ffffff; 61 | } 62 | a:hover { 63 | color: #747bff; 64 | } 65 | button { 66 | background-color: #f9f9f9; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /example/react/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { StrictMode } from 'react' 2 | import { createRoot } from 'react-dom/client' 3 | import { loadingFadeOut } from 'virtual:app-loading' 4 | import App from './App.tsx' 5 | 6 | import './index.css' 7 | 8 | loadingFadeOut() 9 | 10 | createRoot(document.getElementById('root')!).render( 11 | 12 | 13 | , 14 | ) 15 | -------------------------------------------------------------------------------- /example/react/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /example/react/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "jsx": "react-jsx", 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "moduleDetection": "force", 7 | "useDefineForClassFields": true, 8 | "module": "ESNext", 9 | 10 | /* Bundler mode */ 11 | "moduleResolution": "bundler", 12 | "types": [ 13 | "vite-plugin-app-loading/client" 14 | ], 15 | "allowImportingTsExtensions": true, 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noFallthroughCasesInSwitch": true, 20 | "noUnusedLocals": true, 21 | "noEmit": true, 22 | "isolatedModules": true, 23 | "skipLibCheck": true, 24 | "noUnusedParameters": true 25 | }, 26 | "include": ["src"] 27 | } 28 | -------------------------------------------------------------------------------- /example/react/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "references": [ 3 | { "path": "./tsconfig.app.json" }, 4 | { "path": "./tsconfig.node.json" } 5 | ], 6 | "files": [] 7 | } 8 | -------------------------------------------------------------------------------- /example/react/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ES2023"], 5 | "moduleDetection": "force", 6 | "module": "ESNext", 7 | 8 | /* Bundler mode */ 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | 12 | /* Linting */ 13 | "strict": true, 14 | "noFallthroughCasesInSwitch": true, 15 | "noUnusedLocals": true, 16 | "noUnusedParameters": true, 17 | "noEmit": true, 18 | "isolatedModules": true, 19 | "skipLibCheck": true 20 | }, 21 | "include": ["vite.config.ts"] 22 | } 23 | -------------------------------------------------------------------------------- /example/react/vite.config.ts: -------------------------------------------------------------------------------- 1 | import react from '@vitejs/plugin-react' 2 | import { defineConfig } from 'vite' 3 | import appLoading from 'vite-plugin-app-loading' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [react(), appLoading('loading.html')], 8 | }) 9 | -------------------------------------------------------------------------------- /example/vue/.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 | -------------------------------------------------------------------------------- /example/vue/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /example/vue/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + TypeScript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` 12 | 13 | 14 | -------------------------------------------------------------------------------- /example/vue/loading.html: -------------------------------------------------------------------------------- 1 | 13 |
14 | -------------------------------------------------------------------------------- /example/vue/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue", 3 | "type": "module", 4 | "version": "0.4.0", 5 | "private": true, 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc -b && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "vue": "^3.4.37" 13 | }, 14 | "devDependencies": { 15 | "@vitejs/plugin-vue": "^5.2.4", 16 | "typescript": "^5.8.3", 17 | "vite": "^6.3.5", 18 | "vite-plugin-app-loading": "workspace:*", 19 | "vue-tsc": "^2.2.10" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /example/vue/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/vue/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 16 | 17 | 31 | -------------------------------------------------------------------------------- /example/vue/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/vue/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 36 | 37 | 42 | -------------------------------------------------------------------------------- /example/vue/src/main.ts: -------------------------------------------------------------------------------- 1 | import { loadingFadeOut } from 'virtual:app-loading' 2 | import { createApp } from 'vue' 3 | import App from './App.vue' 4 | 5 | import './style.css' 6 | 7 | createApp(App).mount('#app') 8 | 9 | loadingFadeOut() 10 | -------------------------------------------------------------------------------- /example/vue/src/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | a { 17 | font-weight: 500; 18 | color: #646cff; 19 | text-decoration: inherit; 20 | } 21 | a:hover { 22 | color: #535bf2; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | display: flex; 28 | place-items: center; 29 | min-width: 320px; 30 | min-height: 100vh; 31 | } 32 | 33 | h1 { 34 | font-size: 3.2em; 35 | line-height: 1.1; 36 | } 37 | 38 | button { 39 | border-radius: 8px; 40 | border: 1px solid transparent; 41 | padding: 0.6em 1.2em; 42 | font-size: 1em; 43 | font-weight: 500; 44 | font-family: inherit; 45 | background-color: #1a1a1a; 46 | cursor: pointer; 47 | transition: border-color 0.25s; 48 | } 49 | button:hover { 50 | border-color: #646cff; 51 | } 52 | button:focus, 53 | button:focus-visible { 54 | outline: 4px auto -webkit-focus-ring-color; 55 | } 56 | 57 | .card { 58 | padding: 2em; 59 | } 60 | 61 | #app { 62 | max-width: 1280px; 63 | margin: 0 auto; 64 | padding: 2rem; 65 | text-align: center; 66 | } 67 | 68 | @media (prefers-color-scheme: light) { 69 | :root { 70 | color: #213547; 71 | background-color: #ffffff; 72 | } 73 | a:hover { 74 | color: #747bff; 75 | } 76 | button { 77 | background-color: #f9f9f9; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /example/vue/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /example/vue/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "jsx": "preserve", 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "moduleDetection": "force", 7 | "useDefineForClassFields": true, 8 | "module": "ESNext", 9 | "moduleResolution": "bundler", 10 | "types": [ 11 | "vite-plugin-app-loading/client" 12 | ], 13 | "allowImportingTsExtensions": true, 14 | "strict": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "noUnusedLocals": true, 17 | "noUnusedParameters": true, 18 | "noEmit": true, 19 | "isolatedModules": true, 20 | "skipLibCheck": true 21 | }, 22 | "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] 23 | } 24 | -------------------------------------------------------------------------------- /example/vue/tsconfig.app.tsbuildinfo: -------------------------------------------------------------------------------- 1 | {"root":["./src/main.ts","./src/vite-env.d.ts","./src/app.vue","./src/components/helloworld.vue"],"version":"5.6.2"} -------------------------------------------------------------------------------- /example/vue/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "references": [ 3 | { "path": "./tsconfig.app.json" }, 4 | { "path": "./tsconfig.node.json" } 5 | ], 6 | "files": [] 7 | } 8 | -------------------------------------------------------------------------------- /example/vue/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ES2023"], 5 | "moduleDetection": "force", 6 | "module": "ESNext", 7 | "moduleResolution": "bundler", 8 | "allowImportingTsExtensions": true, 9 | "strict": true, 10 | "noFallthroughCasesInSwitch": true, 11 | "noUnusedLocals": true, 12 | "noUnusedParameters": true, 13 | "noEmit": true, 14 | "isolatedModules": true, 15 | "skipLibCheck": true 16 | }, 17 | "include": ["vite.config.ts"] 18 | } 19 | -------------------------------------------------------------------------------- /example/vue/tsconfig.node.tsbuildinfo: -------------------------------------------------------------------------------- 1 | {"root":["./vite.config.ts"],"errors":true,"version":"5.6.2"} -------------------------------------------------------------------------------- /example/vue/vite.config.ts: -------------------------------------------------------------------------------- 1 | import vue from '@vitejs/plugin-vue' 2 | import { defineConfig } from 'vite' 3 | import appLoading from 'vite-plugin-app-loading' 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [vue(), appLoading('loading.html')], 8 | }) 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@hooray/monorepo", 3 | "type": "module", 4 | "version": "0.4.0", 5 | "private": true, 6 | "description": "", 7 | "author": "Hooray <304327508@qq.com>", 8 | "license": "MIT", 9 | "homepage": "https://github.com/hooray/vite-plugin-app-loading", 10 | "keywords": [], 11 | "scripts": { 12 | "dev:vue": "pnpm build && pnpm -F vue dev", 13 | "dev:react": "pnpm build && pnpm -F react dev", 14 | "build": "pnpm -F vite-plugin-app-loading build", 15 | "lint:eslint": "eslint . --cache --fix", 16 | "preinstall": "npx only-allow pnpm", 17 | "postinstall": "simple-git-hooks", 18 | "taze": "taze minor -wIr", 19 | "release": "bumpp -r" 20 | }, 21 | "devDependencies": { 22 | "@antfu/eslint-config": "^4.13.2", 23 | "@types/node": "^22.15.29", 24 | "bumpp": "^10.1.1", 25 | "cz-git": "^1.11.1", 26 | "eslint": "^9.28.0", 27 | "lint-staged": "^16.1.0", 28 | "simple-git-hooks": "^2.13.0", 29 | "taze": "^19.1.0" 30 | }, 31 | "simple-git-hooks": { 32 | "pre-commit": "pnpm lint-staged", 33 | "preserveUnused": true 34 | }, 35 | "config": { 36 | "commitizen": { 37 | "path": "node_modules/cz-git" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/README.CN.md: -------------------------------------------------------------------------------- 1 | # vite-plugin-app-loading 2 | 3 | [![NPM version](https://img.shields.io/npm/v/vite-plugin-app-loading?color=a1b858&label=)](https://www.npmjs.com/package/vite-plugin-app-loading) 4 | 5 | [English](./README.md) | **中文** 6 | 7 | 给网站添加一个加载动画 8 | 9 | ![vite-plugin-app-loading](https://github.com/user-attachments/assets/95217497-7022-43c1-987a-cec101db7671) 10 | 11 | ## 安装 12 | 13 | ```bash 14 | npm i vite-plugin-app-loading -D 15 | ``` 16 | 17 | ## 使用 18 | 19 | ```ts 20 | // vite.config.ts 21 | import AppLoading from 'vite-plugin-app-loading' 22 | 23 | export default defineConfig({ 24 | plugins: [ 25 | AppLoading(), 26 | ], 27 | }) 28 | ``` 29 | 30 | 在合适的时机隐藏加载动画: 31 | 32 | ```ts 33 | // src/main.ts 34 | import { loadingFadeOut } from 'virtual:app-loading' 35 | loadingFadeOut() 36 | ``` 37 | 38 | ## 类型 39 | 40 | 有两种方法可以告诉 TypeScript 虚拟导入的类型: 41 | 42 | - 在你的 `global.d.ts` 文件添加下面这句: 43 | 44 | ```ts 45 | /// 46 | ``` 47 | 48 | - 在你的 `tsconfig.json` 中,将以下内容添加到你的 `compilerOptions.types` 数组中: 49 | 50 | ```json 51 | { 52 | // ... 53 | "compilerOptions": { 54 | // ... 55 | "types": [ 56 | "vite-plugin-app-loading/client" 57 | ] 58 | } 59 | } 60 | ``` 61 | 62 | ## 自定义动画 63 | 64 | 在应用根目录创建 `loading.html` 文件: 65 | 66 | ```html 67 | 79 |
80 | ``` 81 | 82 | ```ts 83 | // vite.config.ts 84 | import AppLoading from 'vite-plugin-app-loading' 85 | 86 | export default defineConfig({ 87 | plugins: [ 88 | AppLoading('loading.html'), 89 | ], 90 | }) 91 | ``` 92 | 93 | ![](https://github.com/user-attachments/assets/b05f8157-2f06-44af-b8bb-fa53701daf29) 94 | 95 | > [!TIP] 96 | > 你可以从下列网站中找找灵感,它们都提供了纯 CSS 的加载动画,非常适合搭配本插件一起使用。 97 | > 98 | > - [CSS Loaders](https://css-loaders.com/) 99 | > - [CSS Loader Generator](https://10015.io/tools/css-loader-generator) 100 | > - [Loaders](https://cssloaders.github.io/) 101 | 102 | ## 范例 103 | 104 | [Fantastic-admin](https://github.com/fantastic-admin/basic) 105 | 106 | ## 致谢 107 | 108 | 感谢 [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin/tree/7bcb973d6595545e2cef6ad4006d781b3176f67b/internal/vite-config/src/plugins/inject-app-loading) 提供的灵感。 109 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/README.md: -------------------------------------------------------------------------------- 1 | # vite-plugin-app-loading 2 | 3 | [![NPM version](https://img.shields.io/npm/v/vite-plugin-app-loading?color=a1b858&label=)](https://www.npmjs.com/package/vite-plugin-app-loading) 4 | 5 | **English** | [中文](./README.CN.md) 6 | 7 | Add a loading animation to your website 8 | 9 | ![vite-plugin-app-loading](https://github.com/user-attachments/assets/95217497-7022-43c1-987a-cec101db7671) 10 | 11 | ## Installation 12 | 13 | ```bash 14 | npm i vite-plugin-app-loading -D 15 | ``` 16 | 17 | ## Usage 18 | 19 | ```ts 20 | // vite.config.ts 21 | import AppLoading from 'vite-plugin-app-loading' 22 | 23 | export default defineConfig({ 24 | plugins: [ 25 | AppLoading(), 26 | ], 27 | }) 28 | ``` 29 | 30 | Hide the loading animation at the right time: 31 | 32 | ```ts 33 | // src/main.ts 34 | import { loadingFadeOut } from 'virtual:app-loading' 35 | loadingFadeOut() 36 | ``` 37 | 38 | ## Types 39 | 40 | There are two ways of telling typescript about the types of the virtual import: 41 | 42 | - In your `global.d.ts` file add the following line: 43 | 44 | ```ts 45 | /// 46 | ``` 47 | 48 | - In your `tsconfig.json` add the following to your compilerOptions.types array: 49 | 50 | ```json 51 | { 52 | // ... 53 | "compilerOptions": { 54 | // ... 55 | "types": [ 56 | "vite-plugin-app-loading/client" 57 | ] 58 | } 59 | } 60 | ``` 61 | 62 | ## Custom animations 63 | 64 | Create a `loading.html` file at the root directory: 65 | 66 | ```html 67 | 79 |
80 | ``` 81 | 82 | ```ts 83 | // vite.config.ts 84 | import AppLoading from 'vite-plugin-app-loading' 85 | 86 | export default defineConfig({ 87 | plugins: [ 88 | AppLoading('loading.html'), 89 | ], 90 | }) 91 | ``` 92 | 93 | ![](https://github.com/user-attachments/assets/b05f8157-2f06-44af-b8bb-fa53701daf29) 94 | 95 | > [!TIP] 96 | > You can find inspiration from the following websites, which all provide CSS-only loading animations that are perfect for use with this plugin. 97 | > 98 | > - [CSS Loaders](https://css-loaders.com/) 99 | > - [CSS Loader Generator](https://10015.io/tools/css-loader-generator) 100 | > - [Loaders](https://cssloaders.github.io/) 101 | 102 | ## Example 103 | 104 | [Fantastic-admin](https://github.com/fantastic-admin/basic) 105 | 106 | ## Thanks 107 | 108 | Thanks to [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin/tree/7bcb973d6595545e2cef6ad4006d781b3176f67b/internal/vite-config/src/plugins/inject-app-loading) for the inspiration. 109 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/client.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'virtual:app-loading' { 2 | const loadingFadeOut: () => void 3 | export { 4 | loadingFadeOut, 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/loading.html: -------------------------------------------------------------------------------- 1 | 163 | 164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-plugin-vue-app-loading", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "vite-plugin-vue-app-loading", 9 | "version": "0.0.0", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "tsup": "^8.2.4", 13 | "vite": "^5.4.4" 14 | } 15 | }, 16 | "../../node_modules/.pnpm/vite@5.4.4/node_modules/vite": { 17 | "version": "5.4.4", 18 | "dev": true, 19 | "license": "MIT", 20 | "dependencies": { 21 | "esbuild": "^0.21.3", 22 | "postcss": "^8.4.43", 23 | "rollup": "^4.20.0" 24 | }, 25 | "bin": { 26 | "vite": "bin/vite.js" 27 | }, 28 | "devDependencies": { 29 | "@ampproject/remapping": "^2.3.0", 30 | "@babel/parser": "^7.25.6", 31 | "@jridgewell/trace-mapping": "^0.3.25", 32 | "@polka/compression": "^1.0.0-next.25", 33 | "@rollup/plugin-alias": "^5.1.0", 34 | "@rollup/plugin-commonjs": "^26.0.1", 35 | "@rollup/plugin-dynamic-import-vars": "^2.1.2", 36 | "@rollup/plugin-json": "^6.1.0", 37 | "@rollup/plugin-node-resolve": "15.2.3", 38 | "@rollup/pluginutils": "^5.1.0", 39 | "@types/escape-html": "^1.0.4", 40 | "@types/pnpapi": "^0.0.5", 41 | "artichokie": "^0.2.1", 42 | "cac": "^6.7.14", 43 | "chokidar": "^3.6.0", 44 | "connect": "^3.7.0", 45 | "convert-source-map": "^2.0.0", 46 | "cors": "^2.8.5", 47 | "cross-spawn": "^7.0.3", 48 | "debug": "^4.3.6", 49 | "dep-types": "link:./src/types", 50 | "dotenv": "^16.4.5", 51 | "dotenv-expand": "^11.0.6", 52 | "es-module-lexer": "^1.5.4", 53 | "escape-html": "^1.0.3", 54 | "estree-walker": "^3.0.3", 55 | "etag": "^1.8.1", 56 | "fast-glob": "^3.3.2", 57 | "http-proxy": "^1.18.1", 58 | "launch-editor-middleware": "^2.8.1", 59 | "lightningcss": "^1.26.0", 60 | "magic-string": "^0.30.11", 61 | "micromatch": "^4.0.8", 62 | "mlly": "^1.7.1", 63 | "mrmime": "^2.0.0", 64 | "open": "^8.4.2", 65 | "parse5": "^7.1.2", 66 | "pathe": "^1.1.2", 67 | "periscopic": "^4.0.2", 68 | "picocolors": "^1.0.1", 69 | "picomatch": "^2.3.1", 70 | "postcss-import": "^16.1.0", 71 | "postcss-load-config": "^4.0.2", 72 | "postcss-modules": "^6.0.0", 73 | "resolve.exports": "^2.0.2", 74 | "rollup-plugin-dts": "^6.1.1", 75 | "rollup-plugin-esbuild": "^6.1.1", 76 | "rollup-plugin-license": "^3.5.2", 77 | "sass": "^1.77.8", 78 | "sass-embedded": "^1.77.8", 79 | "sirv": "^2.0.4", 80 | "source-map-support": "^0.5.21", 81 | "strip-ansi": "^7.1.0", 82 | "strip-literal": "^2.1.0", 83 | "tsconfck": "^3.1.3", 84 | "tslib": "^2.7.0", 85 | "types": "link:./types", 86 | "ufo": "^1.5.4", 87 | "ws": "^8.18.0" 88 | }, 89 | "engines": { 90 | "node": "^18.0.0 || >=20.0.0" 91 | }, 92 | "funding": { 93 | "url": "https://github.com/vitejs/vite?sponsor=1" 94 | }, 95 | "optionalDependencies": { 96 | "fsevents": "~2.3.3" 97 | }, 98 | "peerDependencies": { 99 | "@types/node": "^18.0.0 || >=20.0.0", 100 | "less": "*", 101 | "lightningcss": "^1.21.0", 102 | "sass": "*", 103 | "sass-embedded": "*", 104 | "stylus": "*", 105 | "sugarss": "*", 106 | "terser": "^5.4.0" 107 | }, 108 | "peerDependenciesMeta": { 109 | "@types/node": { 110 | "optional": true 111 | }, 112 | "less": { 113 | "optional": true 114 | }, 115 | "lightningcss": { 116 | "optional": true 117 | }, 118 | "sass": { 119 | "optional": true 120 | }, 121 | "sass-embedded": { 122 | "optional": true 123 | }, 124 | "stylus": { 125 | "optional": true 126 | }, 127 | "sugarss": { 128 | "optional": true 129 | }, 130 | "terser": { 131 | "optional": true 132 | } 133 | } 134 | }, 135 | "node_modules/@esbuild/aix-ppc64": { 136 | "version": "0.23.1", 137 | "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", 138 | "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", 139 | "cpu": [ 140 | "ppc64" 141 | ], 142 | "dev": true, 143 | "license": "MIT", 144 | "optional": true, 145 | "os": [ 146 | "aix" 147 | ], 148 | "engines": { 149 | "node": ">=18" 150 | } 151 | }, 152 | "node_modules/@esbuild/android-arm": { 153 | "version": "0.23.1", 154 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz", 155 | "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", 156 | "cpu": [ 157 | "arm" 158 | ], 159 | "dev": true, 160 | "license": "MIT", 161 | "optional": true, 162 | "os": [ 163 | "android" 164 | ], 165 | "engines": { 166 | "node": ">=18" 167 | } 168 | }, 169 | "node_modules/@esbuild/android-arm64": { 170 | "version": "0.23.1", 171 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", 172 | "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", 173 | "cpu": [ 174 | "arm64" 175 | ], 176 | "dev": true, 177 | "license": "MIT", 178 | "optional": true, 179 | "os": [ 180 | "android" 181 | ], 182 | "engines": { 183 | "node": ">=18" 184 | } 185 | }, 186 | "node_modules/@esbuild/android-x64": { 187 | "version": "0.23.1", 188 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz", 189 | "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", 190 | "cpu": [ 191 | "x64" 192 | ], 193 | "dev": true, 194 | "license": "MIT", 195 | "optional": true, 196 | "os": [ 197 | "android" 198 | ], 199 | "engines": { 200 | "node": ">=18" 201 | } 202 | }, 203 | "node_modules/@esbuild/darwin-arm64": { 204 | "version": "0.23.1", 205 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", 206 | "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", 207 | "cpu": [ 208 | "arm64" 209 | ], 210 | "dev": true, 211 | "license": "MIT", 212 | "optional": true, 213 | "os": [ 214 | "darwin" 215 | ], 216 | "engines": { 217 | "node": ">=18" 218 | } 219 | }, 220 | "node_modules/@esbuild/darwin-x64": { 221 | "version": "0.23.1", 222 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", 223 | "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", 224 | "cpu": [ 225 | "x64" 226 | ], 227 | "dev": true, 228 | "license": "MIT", 229 | "optional": true, 230 | "os": [ 231 | "darwin" 232 | ], 233 | "engines": { 234 | "node": ">=18" 235 | } 236 | }, 237 | "node_modules/@esbuild/freebsd-arm64": { 238 | "version": "0.23.1", 239 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", 240 | "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", 241 | "cpu": [ 242 | "arm64" 243 | ], 244 | "dev": true, 245 | "license": "MIT", 246 | "optional": true, 247 | "os": [ 248 | "freebsd" 249 | ], 250 | "engines": { 251 | "node": ">=18" 252 | } 253 | }, 254 | "node_modules/@esbuild/freebsd-x64": { 255 | "version": "0.23.1", 256 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", 257 | "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", 258 | "cpu": [ 259 | "x64" 260 | ], 261 | "dev": true, 262 | "license": "MIT", 263 | "optional": true, 264 | "os": [ 265 | "freebsd" 266 | ], 267 | "engines": { 268 | "node": ">=18" 269 | } 270 | }, 271 | "node_modules/@esbuild/linux-arm": { 272 | "version": "0.23.1", 273 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", 274 | "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", 275 | "cpu": [ 276 | "arm" 277 | ], 278 | "dev": true, 279 | "license": "MIT", 280 | "optional": true, 281 | "os": [ 282 | "linux" 283 | ], 284 | "engines": { 285 | "node": ">=18" 286 | } 287 | }, 288 | "node_modules/@esbuild/linux-arm64": { 289 | "version": "0.23.1", 290 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", 291 | "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", 292 | "cpu": [ 293 | "arm64" 294 | ], 295 | "dev": true, 296 | "license": "MIT", 297 | "optional": true, 298 | "os": [ 299 | "linux" 300 | ], 301 | "engines": { 302 | "node": ">=18" 303 | } 304 | }, 305 | "node_modules/@esbuild/linux-ia32": { 306 | "version": "0.23.1", 307 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", 308 | "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", 309 | "cpu": [ 310 | "ia32" 311 | ], 312 | "dev": true, 313 | "license": "MIT", 314 | "optional": true, 315 | "os": [ 316 | "linux" 317 | ], 318 | "engines": { 319 | "node": ">=18" 320 | } 321 | }, 322 | "node_modules/@esbuild/linux-loong64": { 323 | "version": "0.23.1", 324 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", 325 | "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", 326 | "cpu": [ 327 | "loong64" 328 | ], 329 | "dev": true, 330 | "license": "MIT", 331 | "optional": true, 332 | "os": [ 333 | "linux" 334 | ], 335 | "engines": { 336 | "node": ">=18" 337 | } 338 | }, 339 | "node_modules/@esbuild/linux-mips64el": { 340 | "version": "0.23.1", 341 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", 342 | "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", 343 | "cpu": [ 344 | "mips64el" 345 | ], 346 | "dev": true, 347 | "license": "MIT", 348 | "optional": true, 349 | "os": [ 350 | "linux" 351 | ], 352 | "engines": { 353 | "node": ">=18" 354 | } 355 | }, 356 | "node_modules/@esbuild/linux-ppc64": { 357 | "version": "0.23.1", 358 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", 359 | "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", 360 | "cpu": [ 361 | "ppc64" 362 | ], 363 | "dev": true, 364 | "license": "MIT", 365 | "optional": true, 366 | "os": [ 367 | "linux" 368 | ], 369 | "engines": { 370 | "node": ">=18" 371 | } 372 | }, 373 | "node_modules/@esbuild/linux-riscv64": { 374 | "version": "0.23.1", 375 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", 376 | "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", 377 | "cpu": [ 378 | "riscv64" 379 | ], 380 | "dev": true, 381 | "license": "MIT", 382 | "optional": true, 383 | "os": [ 384 | "linux" 385 | ], 386 | "engines": { 387 | "node": ">=18" 388 | } 389 | }, 390 | "node_modules/@esbuild/linux-s390x": { 391 | "version": "0.23.1", 392 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", 393 | "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", 394 | "cpu": [ 395 | "s390x" 396 | ], 397 | "dev": true, 398 | "license": "MIT", 399 | "optional": true, 400 | "os": [ 401 | "linux" 402 | ], 403 | "engines": { 404 | "node": ">=18" 405 | } 406 | }, 407 | "node_modules/@esbuild/linux-x64": { 408 | "version": "0.23.1", 409 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", 410 | "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", 411 | "cpu": [ 412 | "x64" 413 | ], 414 | "dev": true, 415 | "license": "MIT", 416 | "optional": true, 417 | "os": [ 418 | "linux" 419 | ], 420 | "engines": { 421 | "node": ">=18" 422 | } 423 | }, 424 | "node_modules/@esbuild/netbsd-x64": { 425 | "version": "0.23.1", 426 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", 427 | "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", 428 | "cpu": [ 429 | "x64" 430 | ], 431 | "dev": true, 432 | "license": "MIT", 433 | "optional": true, 434 | "os": [ 435 | "netbsd" 436 | ], 437 | "engines": { 438 | "node": ">=18" 439 | } 440 | }, 441 | "node_modules/@esbuild/openbsd-arm64": { 442 | "version": "0.23.1", 443 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", 444 | "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", 445 | "cpu": [ 446 | "arm64" 447 | ], 448 | "dev": true, 449 | "license": "MIT", 450 | "optional": true, 451 | "os": [ 452 | "openbsd" 453 | ], 454 | "engines": { 455 | "node": ">=18" 456 | } 457 | }, 458 | "node_modules/@esbuild/openbsd-x64": { 459 | "version": "0.23.1", 460 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", 461 | "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", 462 | "cpu": [ 463 | "x64" 464 | ], 465 | "dev": true, 466 | "license": "MIT", 467 | "optional": true, 468 | "os": [ 469 | "openbsd" 470 | ], 471 | "engines": { 472 | "node": ">=18" 473 | } 474 | }, 475 | "node_modules/@esbuild/sunos-x64": { 476 | "version": "0.23.1", 477 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", 478 | "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", 479 | "cpu": [ 480 | "x64" 481 | ], 482 | "dev": true, 483 | "license": "MIT", 484 | "optional": true, 485 | "os": [ 486 | "sunos" 487 | ], 488 | "engines": { 489 | "node": ">=18" 490 | } 491 | }, 492 | "node_modules/@esbuild/win32-arm64": { 493 | "version": "0.23.1", 494 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", 495 | "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", 496 | "cpu": [ 497 | "arm64" 498 | ], 499 | "dev": true, 500 | "license": "MIT", 501 | "optional": true, 502 | "os": [ 503 | "win32" 504 | ], 505 | "engines": { 506 | "node": ">=18" 507 | } 508 | }, 509 | "node_modules/@esbuild/win32-ia32": { 510 | "version": "0.23.1", 511 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", 512 | "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", 513 | "cpu": [ 514 | "ia32" 515 | ], 516 | "dev": true, 517 | "license": "MIT", 518 | "optional": true, 519 | "os": [ 520 | "win32" 521 | ], 522 | "engines": { 523 | "node": ">=18" 524 | } 525 | }, 526 | "node_modules/@esbuild/win32-x64": { 527 | "version": "0.23.1", 528 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", 529 | "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", 530 | "cpu": [ 531 | "x64" 532 | ], 533 | "dev": true, 534 | "license": "MIT", 535 | "optional": true, 536 | "os": [ 537 | "win32" 538 | ], 539 | "engines": { 540 | "node": ">=18" 541 | } 542 | }, 543 | "node_modules/@isaacs/cliui": { 544 | "version": "8.0.2", 545 | "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", 546 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 547 | "dev": true, 548 | "license": "ISC", 549 | "dependencies": { 550 | "string-width": "^5.1.2", 551 | "string-width-cjs": "npm:string-width@^4.2.0", 552 | "strip-ansi": "^7.0.1", 553 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 554 | "wrap-ansi": "^8.1.0", 555 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 556 | }, 557 | "engines": { 558 | "node": ">=12" 559 | } 560 | }, 561 | "node_modules/@jridgewell/gen-mapping": { 562 | "version": "0.3.5", 563 | "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 564 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 565 | "dev": true, 566 | "license": "MIT", 567 | "dependencies": { 568 | "@jridgewell/set-array": "^1.2.1", 569 | "@jridgewell/sourcemap-codec": "^1.4.10", 570 | "@jridgewell/trace-mapping": "^0.3.24" 571 | }, 572 | "engines": { 573 | "node": ">=6.0.0" 574 | } 575 | }, 576 | "node_modules/@jridgewell/resolve-uri": { 577 | "version": "3.1.2", 578 | "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 579 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 580 | "dev": true, 581 | "license": "MIT", 582 | "engines": { 583 | "node": ">=6.0.0" 584 | } 585 | }, 586 | "node_modules/@jridgewell/set-array": { 587 | "version": "1.2.1", 588 | "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", 589 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 590 | "dev": true, 591 | "license": "MIT", 592 | "engines": { 593 | "node": ">=6.0.0" 594 | } 595 | }, 596 | "node_modules/@jridgewell/sourcemap-codec": { 597 | "version": "1.5.0", 598 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 599 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 600 | "dev": true, 601 | "license": "MIT" 602 | }, 603 | "node_modules/@jridgewell/trace-mapping": { 604 | "version": "0.3.25", 605 | "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 606 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 607 | "dev": true, 608 | "license": "MIT", 609 | "dependencies": { 610 | "@jridgewell/resolve-uri": "^3.1.0", 611 | "@jridgewell/sourcemap-codec": "^1.4.14" 612 | } 613 | }, 614 | "node_modules/@nodelib/fs.scandir": { 615 | "version": "2.1.5", 616 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 617 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 618 | "dev": true, 619 | "license": "MIT", 620 | "dependencies": { 621 | "@nodelib/fs.stat": "2.0.5", 622 | "run-parallel": "^1.1.9" 623 | }, 624 | "engines": { 625 | "node": ">= 8" 626 | } 627 | }, 628 | "node_modules/@nodelib/fs.stat": { 629 | "version": "2.0.5", 630 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 631 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 632 | "dev": true, 633 | "license": "MIT", 634 | "engines": { 635 | "node": ">= 8" 636 | } 637 | }, 638 | "node_modules/@nodelib/fs.walk": { 639 | "version": "1.2.8", 640 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 641 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 642 | "dev": true, 643 | "license": "MIT", 644 | "dependencies": { 645 | "@nodelib/fs.scandir": "2.1.5", 646 | "fastq": "^1.6.0" 647 | }, 648 | "engines": { 649 | "node": ">= 8" 650 | } 651 | }, 652 | "node_modules/@pkgjs/parseargs": { 653 | "version": "0.11.0", 654 | "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 655 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 656 | "dev": true, 657 | "license": "MIT", 658 | "optional": true, 659 | "engines": { 660 | "node": ">=14" 661 | } 662 | }, 663 | "node_modules/@rollup/rollup-android-arm-eabi": { 664 | "version": "4.21.3", 665 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", 666 | "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", 667 | "cpu": [ 668 | "arm" 669 | ], 670 | "dev": true, 671 | "license": "MIT", 672 | "optional": true, 673 | "os": [ 674 | "android" 675 | ] 676 | }, 677 | "node_modules/@rollup/rollup-android-arm64": { 678 | "version": "4.21.3", 679 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", 680 | "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", 681 | "cpu": [ 682 | "arm64" 683 | ], 684 | "dev": true, 685 | "license": "MIT", 686 | "optional": true, 687 | "os": [ 688 | "android" 689 | ] 690 | }, 691 | "node_modules/@rollup/rollup-darwin-arm64": { 692 | "version": "4.21.3", 693 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", 694 | "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", 695 | "cpu": [ 696 | "arm64" 697 | ], 698 | "dev": true, 699 | "license": "MIT", 700 | "optional": true, 701 | "os": [ 702 | "darwin" 703 | ] 704 | }, 705 | "node_modules/@rollup/rollup-darwin-x64": { 706 | "version": "4.21.3", 707 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", 708 | "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", 709 | "cpu": [ 710 | "x64" 711 | ], 712 | "dev": true, 713 | "license": "MIT", 714 | "optional": true, 715 | "os": [ 716 | "darwin" 717 | ] 718 | }, 719 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 720 | "version": "4.21.3", 721 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", 722 | "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", 723 | "cpu": [ 724 | "arm" 725 | ], 726 | "dev": true, 727 | "license": "MIT", 728 | "optional": true, 729 | "os": [ 730 | "linux" 731 | ] 732 | }, 733 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 734 | "version": "4.21.3", 735 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", 736 | "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", 737 | "cpu": [ 738 | "arm" 739 | ], 740 | "dev": true, 741 | "license": "MIT", 742 | "optional": true, 743 | "os": [ 744 | "linux" 745 | ] 746 | }, 747 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 748 | "version": "4.21.3", 749 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", 750 | "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", 751 | "cpu": [ 752 | "arm64" 753 | ], 754 | "dev": true, 755 | "license": "MIT", 756 | "optional": true, 757 | "os": [ 758 | "linux" 759 | ] 760 | }, 761 | "node_modules/@rollup/rollup-linux-arm64-musl": { 762 | "version": "4.21.3", 763 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", 764 | "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", 765 | "cpu": [ 766 | "arm64" 767 | ], 768 | "dev": true, 769 | "license": "MIT", 770 | "optional": true, 771 | "os": [ 772 | "linux" 773 | ] 774 | }, 775 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 776 | "version": "4.21.3", 777 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", 778 | "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", 779 | "cpu": [ 780 | "ppc64" 781 | ], 782 | "dev": true, 783 | "license": "MIT", 784 | "optional": true, 785 | "os": [ 786 | "linux" 787 | ] 788 | }, 789 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 790 | "version": "4.21.3", 791 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", 792 | "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", 793 | "cpu": [ 794 | "riscv64" 795 | ], 796 | "dev": true, 797 | "license": "MIT", 798 | "optional": true, 799 | "os": [ 800 | "linux" 801 | ] 802 | }, 803 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 804 | "version": "4.21.3", 805 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", 806 | "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", 807 | "cpu": [ 808 | "s390x" 809 | ], 810 | "dev": true, 811 | "license": "MIT", 812 | "optional": true, 813 | "os": [ 814 | "linux" 815 | ] 816 | }, 817 | "node_modules/@rollup/rollup-linux-x64-gnu": { 818 | "version": "4.21.3", 819 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", 820 | "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", 821 | "cpu": [ 822 | "x64" 823 | ], 824 | "dev": true, 825 | "license": "MIT", 826 | "optional": true, 827 | "os": [ 828 | "linux" 829 | ] 830 | }, 831 | "node_modules/@rollup/rollup-linux-x64-musl": { 832 | "version": "4.21.3", 833 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", 834 | "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", 835 | "cpu": [ 836 | "x64" 837 | ], 838 | "dev": true, 839 | "license": "MIT", 840 | "optional": true, 841 | "os": [ 842 | "linux" 843 | ] 844 | }, 845 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 846 | "version": "4.21.3", 847 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", 848 | "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", 849 | "cpu": [ 850 | "arm64" 851 | ], 852 | "dev": true, 853 | "license": "MIT", 854 | "optional": true, 855 | "os": [ 856 | "win32" 857 | ] 858 | }, 859 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 860 | "version": "4.21.3", 861 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", 862 | "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", 863 | "cpu": [ 864 | "ia32" 865 | ], 866 | "dev": true, 867 | "license": "MIT", 868 | "optional": true, 869 | "os": [ 870 | "win32" 871 | ] 872 | }, 873 | "node_modules/@rollup/rollup-win32-x64-msvc": { 874 | "version": "4.21.3", 875 | "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", 876 | "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", 877 | "cpu": [ 878 | "x64" 879 | ], 880 | "dev": true, 881 | "license": "MIT", 882 | "optional": true, 883 | "os": [ 884 | "win32" 885 | ] 886 | }, 887 | "node_modules/@types/estree": { 888 | "version": "1.0.5", 889 | "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", 890 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", 891 | "dev": true, 892 | "license": "MIT" 893 | }, 894 | "node_modules/ansi-regex": { 895 | "version": "6.1.0", 896 | "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz", 897 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 898 | "dev": true, 899 | "license": "MIT", 900 | "engines": { 901 | "node": ">=12" 902 | }, 903 | "funding": { 904 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 905 | } 906 | }, 907 | "node_modules/ansi-styles": { 908 | "version": "6.2.1", 909 | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", 910 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 911 | "dev": true, 912 | "license": "MIT", 913 | "engines": { 914 | "node": ">=12" 915 | }, 916 | "funding": { 917 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 918 | } 919 | }, 920 | "node_modules/any-promise": { 921 | "version": "1.3.0", 922 | "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", 923 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 924 | "dev": true, 925 | "license": "MIT" 926 | }, 927 | "node_modules/anymatch": { 928 | "version": "3.1.3", 929 | "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", 930 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 931 | "dev": true, 932 | "license": "ISC", 933 | "dependencies": { 934 | "normalize-path": "^3.0.0", 935 | "picomatch": "^2.0.4" 936 | }, 937 | "engines": { 938 | "node": ">= 8" 939 | } 940 | }, 941 | "node_modules/array-union": { 942 | "version": "2.1.0", 943 | "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", 944 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 945 | "dev": true, 946 | "license": "MIT", 947 | "engines": { 948 | "node": ">=8" 949 | } 950 | }, 951 | "node_modules/balanced-match": { 952 | "version": "1.0.2", 953 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", 954 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 955 | "dev": true, 956 | "license": "MIT" 957 | }, 958 | "node_modules/binary-extensions": { 959 | "version": "2.3.0", 960 | "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", 961 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 962 | "dev": true, 963 | "license": "MIT", 964 | "engines": { 965 | "node": ">=8" 966 | }, 967 | "funding": { 968 | "url": "https://github.com/sponsors/sindresorhus" 969 | } 970 | }, 971 | "node_modules/brace-expansion": { 972 | "version": "2.0.1", 973 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", 974 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 975 | "dev": true, 976 | "license": "MIT", 977 | "dependencies": { 978 | "balanced-match": "^1.0.0" 979 | } 980 | }, 981 | "node_modules/braces": { 982 | "version": "3.0.3", 983 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", 984 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 985 | "dev": true, 986 | "license": "MIT", 987 | "dependencies": { 988 | "fill-range": "^7.1.1" 989 | }, 990 | "engines": { 991 | "node": ">=8" 992 | } 993 | }, 994 | "node_modules/bundle-require": { 995 | "version": "5.0.0", 996 | "resolved": "https://registry.npmmirror.com/bundle-require/-/bundle-require-5.0.0.tgz", 997 | "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", 998 | "dev": true, 999 | "license": "MIT", 1000 | "dependencies": { 1001 | "load-tsconfig": "^0.2.3" 1002 | }, 1003 | "engines": { 1004 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1005 | }, 1006 | "peerDependencies": { 1007 | "esbuild": ">=0.18" 1008 | } 1009 | }, 1010 | "node_modules/cac": { 1011 | "version": "6.7.14", 1012 | "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", 1013 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 1014 | "dev": true, 1015 | "license": "MIT", 1016 | "engines": { 1017 | "node": ">=8" 1018 | } 1019 | }, 1020 | "node_modules/chokidar": { 1021 | "version": "3.6.0", 1022 | "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", 1023 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 1024 | "dev": true, 1025 | "license": "MIT", 1026 | "dependencies": { 1027 | "anymatch": "~3.1.2", 1028 | "braces": "~3.0.2", 1029 | "glob-parent": "~5.1.2", 1030 | "is-binary-path": "~2.1.0", 1031 | "is-glob": "~4.0.1", 1032 | "normalize-path": "~3.0.0", 1033 | "readdirp": "~3.6.0" 1034 | }, 1035 | "engines": { 1036 | "node": ">= 8.10.0" 1037 | }, 1038 | "funding": { 1039 | "url": "https://paulmillr.com/funding/" 1040 | }, 1041 | "optionalDependencies": { 1042 | "fsevents": "~2.3.2" 1043 | } 1044 | }, 1045 | "node_modules/color-convert": { 1046 | "version": "2.0.1", 1047 | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", 1048 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1049 | "dev": true, 1050 | "license": "MIT", 1051 | "dependencies": { 1052 | "color-name": "~1.1.4" 1053 | }, 1054 | "engines": { 1055 | "node": ">=7.0.0" 1056 | } 1057 | }, 1058 | "node_modules/color-name": { 1059 | "version": "1.1.4", 1060 | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", 1061 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1062 | "dev": true, 1063 | "license": "MIT" 1064 | }, 1065 | "node_modules/commander": { 1066 | "version": "4.1.1", 1067 | "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", 1068 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 1069 | "dev": true, 1070 | "license": "MIT", 1071 | "engines": { 1072 | "node": ">= 6" 1073 | } 1074 | }, 1075 | "node_modules/consola": { 1076 | "version": "3.2.3", 1077 | "resolved": "https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz", 1078 | "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", 1079 | "dev": true, 1080 | "license": "MIT", 1081 | "engines": { 1082 | "node": "^14.18.0 || >=16.10.0" 1083 | } 1084 | }, 1085 | "node_modules/cross-spawn": { 1086 | "version": "7.0.3", 1087 | "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", 1088 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1089 | "dev": true, 1090 | "license": "MIT", 1091 | "dependencies": { 1092 | "path-key": "^3.1.0", 1093 | "shebang-command": "^2.0.0", 1094 | "which": "^2.0.1" 1095 | }, 1096 | "engines": { 1097 | "node": ">= 8" 1098 | } 1099 | }, 1100 | "node_modules/debug": { 1101 | "version": "4.3.7", 1102 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz", 1103 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 1104 | "dev": true, 1105 | "license": "MIT", 1106 | "dependencies": { 1107 | "ms": "^2.1.3" 1108 | }, 1109 | "engines": { 1110 | "node": ">=6.0" 1111 | }, 1112 | "peerDependenciesMeta": { 1113 | "supports-color": { 1114 | "optional": true 1115 | } 1116 | } 1117 | }, 1118 | "node_modules/dir-glob": { 1119 | "version": "3.0.1", 1120 | "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", 1121 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1122 | "dev": true, 1123 | "license": "MIT", 1124 | "dependencies": { 1125 | "path-type": "^4.0.0" 1126 | }, 1127 | "engines": { 1128 | "node": ">=8" 1129 | } 1130 | }, 1131 | "node_modules/eastasianwidth": { 1132 | "version": "0.2.0", 1133 | "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1134 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 1135 | "dev": true, 1136 | "license": "MIT" 1137 | }, 1138 | "node_modules/emoji-regex": { 1139 | "version": "9.2.2", 1140 | "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", 1141 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1142 | "dev": true, 1143 | "license": "MIT" 1144 | }, 1145 | "node_modules/esbuild": { 1146 | "version": "0.23.1", 1147 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.23.1.tgz", 1148 | "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", 1149 | "dev": true, 1150 | "hasInstallScript": true, 1151 | "license": "MIT", 1152 | "bin": { 1153 | "esbuild": "bin/esbuild" 1154 | }, 1155 | "engines": { 1156 | "node": ">=18" 1157 | }, 1158 | "optionalDependencies": { 1159 | "@esbuild/aix-ppc64": "0.23.1", 1160 | "@esbuild/android-arm": "0.23.1", 1161 | "@esbuild/android-arm64": "0.23.1", 1162 | "@esbuild/android-x64": "0.23.1", 1163 | "@esbuild/darwin-arm64": "0.23.1", 1164 | "@esbuild/darwin-x64": "0.23.1", 1165 | "@esbuild/freebsd-arm64": "0.23.1", 1166 | "@esbuild/freebsd-x64": "0.23.1", 1167 | "@esbuild/linux-arm": "0.23.1", 1168 | "@esbuild/linux-arm64": "0.23.1", 1169 | "@esbuild/linux-ia32": "0.23.1", 1170 | "@esbuild/linux-loong64": "0.23.1", 1171 | "@esbuild/linux-mips64el": "0.23.1", 1172 | "@esbuild/linux-ppc64": "0.23.1", 1173 | "@esbuild/linux-riscv64": "0.23.1", 1174 | "@esbuild/linux-s390x": "0.23.1", 1175 | "@esbuild/linux-x64": "0.23.1", 1176 | "@esbuild/netbsd-x64": "0.23.1", 1177 | "@esbuild/openbsd-arm64": "0.23.1", 1178 | "@esbuild/openbsd-x64": "0.23.1", 1179 | "@esbuild/sunos-x64": "0.23.1", 1180 | "@esbuild/win32-arm64": "0.23.1", 1181 | "@esbuild/win32-ia32": "0.23.1", 1182 | "@esbuild/win32-x64": "0.23.1" 1183 | } 1184 | }, 1185 | "node_modules/execa": { 1186 | "version": "5.1.1", 1187 | "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", 1188 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 1189 | "dev": true, 1190 | "license": "MIT", 1191 | "dependencies": { 1192 | "cross-spawn": "^7.0.3", 1193 | "get-stream": "^6.0.0", 1194 | "human-signals": "^2.1.0", 1195 | "is-stream": "^2.0.0", 1196 | "merge-stream": "^2.0.0", 1197 | "npm-run-path": "^4.0.1", 1198 | "onetime": "^5.1.2", 1199 | "signal-exit": "^3.0.3", 1200 | "strip-final-newline": "^2.0.0" 1201 | }, 1202 | "engines": { 1203 | "node": ">=10" 1204 | }, 1205 | "funding": { 1206 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 1207 | } 1208 | }, 1209 | "node_modules/fast-glob": { 1210 | "version": "3.3.2", 1211 | "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", 1212 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 1213 | "dev": true, 1214 | "license": "MIT", 1215 | "dependencies": { 1216 | "@nodelib/fs.stat": "^2.0.2", 1217 | "@nodelib/fs.walk": "^1.2.3", 1218 | "glob-parent": "^5.1.2", 1219 | "merge2": "^1.3.0", 1220 | "micromatch": "^4.0.4" 1221 | }, 1222 | "engines": { 1223 | "node": ">=8.6.0" 1224 | } 1225 | }, 1226 | "node_modules/fastq": { 1227 | "version": "1.17.1", 1228 | "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", 1229 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", 1230 | "dev": true, 1231 | "license": "ISC", 1232 | "dependencies": { 1233 | "reusify": "^1.0.4" 1234 | } 1235 | }, 1236 | "node_modules/fill-range": { 1237 | "version": "7.1.1", 1238 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", 1239 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 1240 | "dev": true, 1241 | "license": "MIT", 1242 | "dependencies": { 1243 | "to-regex-range": "^5.0.1" 1244 | }, 1245 | "engines": { 1246 | "node": ">=8" 1247 | } 1248 | }, 1249 | "node_modules/foreground-child": { 1250 | "version": "3.3.0", 1251 | "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.0.tgz", 1252 | "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", 1253 | "dev": true, 1254 | "license": "ISC", 1255 | "dependencies": { 1256 | "cross-spawn": "^7.0.0", 1257 | "signal-exit": "^4.0.1" 1258 | }, 1259 | "engines": { 1260 | "node": ">=14" 1261 | }, 1262 | "funding": { 1263 | "url": "https://github.com/sponsors/isaacs" 1264 | } 1265 | }, 1266 | "node_modules/foreground-child/node_modules/signal-exit": { 1267 | "version": "4.1.0", 1268 | "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", 1269 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1270 | "dev": true, 1271 | "license": "ISC", 1272 | "engines": { 1273 | "node": ">=14" 1274 | }, 1275 | "funding": { 1276 | "url": "https://github.com/sponsors/isaacs" 1277 | } 1278 | }, 1279 | "node_modules/fsevents": { 1280 | "version": "2.3.3", 1281 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", 1282 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1283 | "dev": true, 1284 | "hasInstallScript": true, 1285 | "license": "MIT", 1286 | "optional": true, 1287 | "os": [ 1288 | "darwin" 1289 | ], 1290 | "engines": { 1291 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1292 | } 1293 | }, 1294 | "node_modules/get-stream": { 1295 | "version": "6.0.1", 1296 | "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", 1297 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 1298 | "dev": true, 1299 | "license": "MIT", 1300 | "engines": { 1301 | "node": ">=10" 1302 | }, 1303 | "funding": { 1304 | "url": "https://github.com/sponsors/sindresorhus" 1305 | } 1306 | }, 1307 | "node_modules/glob": { 1308 | "version": "10.4.5", 1309 | "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", 1310 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 1311 | "dev": true, 1312 | "license": "ISC", 1313 | "dependencies": { 1314 | "foreground-child": "^3.1.0", 1315 | "jackspeak": "^3.1.2", 1316 | "minimatch": "^9.0.4", 1317 | "minipass": "^7.1.2", 1318 | "package-json-from-dist": "^1.0.0", 1319 | "path-scurry": "^1.11.1" 1320 | }, 1321 | "bin": { 1322 | "glob": "dist/esm/bin.mjs" 1323 | }, 1324 | "funding": { 1325 | "url": "https://github.com/sponsors/isaacs" 1326 | } 1327 | }, 1328 | "node_modules/glob-parent": { 1329 | "version": "5.1.2", 1330 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", 1331 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1332 | "dev": true, 1333 | "license": "ISC", 1334 | "dependencies": { 1335 | "is-glob": "^4.0.1" 1336 | }, 1337 | "engines": { 1338 | "node": ">= 6" 1339 | } 1340 | }, 1341 | "node_modules/globby": { 1342 | "version": "11.1.0", 1343 | "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", 1344 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1345 | "dev": true, 1346 | "license": "MIT", 1347 | "dependencies": { 1348 | "array-union": "^2.1.0", 1349 | "dir-glob": "^3.0.1", 1350 | "fast-glob": "^3.2.9", 1351 | "ignore": "^5.2.0", 1352 | "merge2": "^1.4.1", 1353 | "slash": "^3.0.0" 1354 | }, 1355 | "engines": { 1356 | "node": ">=10" 1357 | }, 1358 | "funding": { 1359 | "url": "https://github.com/sponsors/sindresorhus" 1360 | } 1361 | }, 1362 | "node_modules/human-signals": { 1363 | "version": "2.1.0", 1364 | "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", 1365 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 1366 | "dev": true, 1367 | "license": "Apache-2.0", 1368 | "engines": { 1369 | "node": ">=10.17.0" 1370 | } 1371 | }, 1372 | "node_modules/ignore": { 1373 | "version": "5.3.2", 1374 | "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", 1375 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 1376 | "dev": true, 1377 | "license": "MIT", 1378 | "engines": { 1379 | "node": ">= 4" 1380 | } 1381 | }, 1382 | "node_modules/is-binary-path": { 1383 | "version": "2.1.0", 1384 | "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", 1385 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1386 | "dev": true, 1387 | "license": "MIT", 1388 | "dependencies": { 1389 | "binary-extensions": "^2.0.0" 1390 | }, 1391 | "engines": { 1392 | "node": ">=8" 1393 | } 1394 | }, 1395 | "node_modules/is-extglob": { 1396 | "version": "2.1.1", 1397 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", 1398 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1399 | "dev": true, 1400 | "license": "MIT", 1401 | "engines": { 1402 | "node": ">=0.10.0" 1403 | } 1404 | }, 1405 | "node_modules/is-fullwidth-code-point": { 1406 | "version": "3.0.0", 1407 | "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1408 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1409 | "dev": true, 1410 | "license": "MIT", 1411 | "engines": { 1412 | "node": ">=8" 1413 | } 1414 | }, 1415 | "node_modules/is-glob": { 1416 | "version": "4.0.3", 1417 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", 1418 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1419 | "dev": true, 1420 | "license": "MIT", 1421 | "dependencies": { 1422 | "is-extglob": "^2.1.1" 1423 | }, 1424 | "engines": { 1425 | "node": ">=0.10.0" 1426 | } 1427 | }, 1428 | "node_modules/is-number": { 1429 | "version": "7.0.0", 1430 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", 1431 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1432 | "dev": true, 1433 | "license": "MIT", 1434 | "engines": { 1435 | "node": ">=0.12.0" 1436 | } 1437 | }, 1438 | "node_modules/is-stream": { 1439 | "version": "2.0.1", 1440 | "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", 1441 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 1442 | "dev": true, 1443 | "license": "MIT", 1444 | "engines": { 1445 | "node": ">=8" 1446 | }, 1447 | "funding": { 1448 | "url": "https://github.com/sponsors/sindresorhus" 1449 | } 1450 | }, 1451 | "node_modules/isexe": { 1452 | "version": "2.0.0", 1453 | "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", 1454 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1455 | "dev": true, 1456 | "license": "ISC" 1457 | }, 1458 | "node_modules/jackspeak": { 1459 | "version": "3.4.3", 1460 | "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", 1461 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 1462 | "dev": true, 1463 | "license": "BlueOak-1.0.0", 1464 | "dependencies": { 1465 | "@isaacs/cliui": "^8.0.2" 1466 | }, 1467 | "funding": { 1468 | "url": "https://github.com/sponsors/isaacs" 1469 | }, 1470 | "optionalDependencies": { 1471 | "@pkgjs/parseargs": "^0.11.0" 1472 | } 1473 | }, 1474 | "node_modules/joycon": { 1475 | "version": "3.1.1", 1476 | "resolved": "https://registry.npmmirror.com/joycon/-/joycon-3.1.1.tgz", 1477 | "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", 1478 | "dev": true, 1479 | "license": "MIT", 1480 | "engines": { 1481 | "node": ">=10" 1482 | } 1483 | }, 1484 | "node_modules/lilconfig": { 1485 | "version": "3.1.2", 1486 | "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.2.tgz", 1487 | "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", 1488 | "dev": true, 1489 | "license": "MIT", 1490 | "engines": { 1491 | "node": ">=14" 1492 | }, 1493 | "funding": { 1494 | "url": "https://github.com/sponsors/antonk52" 1495 | } 1496 | }, 1497 | "node_modules/lines-and-columns": { 1498 | "version": "1.2.4", 1499 | "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 1500 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 1501 | "dev": true, 1502 | "license": "MIT" 1503 | }, 1504 | "node_modules/load-tsconfig": { 1505 | "version": "0.2.5", 1506 | "resolved": "https://registry.npmmirror.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz", 1507 | "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", 1508 | "dev": true, 1509 | "license": "MIT", 1510 | "engines": { 1511 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1512 | } 1513 | }, 1514 | "node_modules/lodash.sortby": { 1515 | "version": "4.7.0", 1516 | "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 1517 | "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", 1518 | "dev": true, 1519 | "license": "MIT" 1520 | }, 1521 | "node_modules/lru-cache": { 1522 | "version": "10.4.3", 1523 | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", 1524 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 1525 | "dev": true, 1526 | "license": "ISC" 1527 | }, 1528 | "node_modules/merge-stream": { 1529 | "version": "2.0.0", 1530 | "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", 1531 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1532 | "dev": true, 1533 | "license": "MIT" 1534 | }, 1535 | "node_modules/merge2": { 1536 | "version": "1.4.1", 1537 | "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", 1538 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1539 | "dev": true, 1540 | "license": "MIT", 1541 | "engines": { 1542 | "node": ">= 8" 1543 | } 1544 | }, 1545 | "node_modules/micromatch": { 1546 | "version": "4.0.8", 1547 | "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", 1548 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 1549 | "dev": true, 1550 | "license": "MIT", 1551 | "dependencies": { 1552 | "braces": "^3.0.3", 1553 | "picomatch": "^2.3.1" 1554 | }, 1555 | "engines": { 1556 | "node": ">=8.6" 1557 | } 1558 | }, 1559 | "node_modules/mimic-fn": { 1560 | "version": "2.1.0", 1561 | "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", 1562 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1563 | "dev": true, 1564 | "license": "MIT", 1565 | "engines": { 1566 | "node": ">=6" 1567 | } 1568 | }, 1569 | "node_modules/minimatch": { 1570 | "version": "9.0.5", 1571 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", 1572 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 1573 | "dev": true, 1574 | "license": "ISC", 1575 | "dependencies": { 1576 | "brace-expansion": "^2.0.1" 1577 | }, 1578 | "engines": { 1579 | "node": ">=16 || 14 >=14.17" 1580 | }, 1581 | "funding": { 1582 | "url": "https://github.com/sponsors/isaacs" 1583 | } 1584 | }, 1585 | "node_modules/minipass": { 1586 | "version": "7.1.2", 1587 | "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", 1588 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 1589 | "dev": true, 1590 | "license": "ISC", 1591 | "engines": { 1592 | "node": ">=16 || 14 >=14.17" 1593 | } 1594 | }, 1595 | "node_modules/ms": { 1596 | "version": "2.1.3", 1597 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", 1598 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1599 | "dev": true, 1600 | "license": "MIT" 1601 | }, 1602 | "node_modules/mz": { 1603 | "version": "2.7.0", 1604 | "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", 1605 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 1606 | "dev": true, 1607 | "license": "MIT", 1608 | "dependencies": { 1609 | "any-promise": "^1.0.0", 1610 | "object-assign": "^4.0.1", 1611 | "thenify-all": "^1.0.0" 1612 | } 1613 | }, 1614 | "node_modules/normalize-path": { 1615 | "version": "3.0.0", 1616 | "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", 1617 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1618 | "dev": true, 1619 | "license": "MIT", 1620 | "engines": { 1621 | "node": ">=0.10.0" 1622 | } 1623 | }, 1624 | "node_modules/npm-run-path": { 1625 | "version": "4.0.1", 1626 | "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", 1627 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 1628 | "dev": true, 1629 | "license": "MIT", 1630 | "dependencies": { 1631 | "path-key": "^3.0.0" 1632 | }, 1633 | "engines": { 1634 | "node": ">=8" 1635 | } 1636 | }, 1637 | "node_modules/object-assign": { 1638 | "version": "4.1.1", 1639 | "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", 1640 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1641 | "dev": true, 1642 | "license": "MIT", 1643 | "engines": { 1644 | "node": ">=0.10.0" 1645 | } 1646 | }, 1647 | "node_modules/onetime": { 1648 | "version": "5.1.2", 1649 | "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", 1650 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1651 | "dev": true, 1652 | "license": "MIT", 1653 | "dependencies": { 1654 | "mimic-fn": "^2.1.0" 1655 | }, 1656 | "engines": { 1657 | "node": ">=6" 1658 | }, 1659 | "funding": { 1660 | "url": "https://github.com/sponsors/sindresorhus" 1661 | } 1662 | }, 1663 | "node_modules/package-json-from-dist": { 1664 | "version": "1.0.0", 1665 | "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", 1666 | "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", 1667 | "dev": true, 1668 | "license": "BlueOak-1.0.0" 1669 | }, 1670 | "node_modules/path-key": { 1671 | "version": "3.1.1", 1672 | "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", 1673 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1674 | "dev": true, 1675 | "license": "MIT", 1676 | "engines": { 1677 | "node": ">=8" 1678 | } 1679 | }, 1680 | "node_modules/path-scurry": { 1681 | "version": "1.11.1", 1682 | "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", 1683 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 1684 | "dev": true, 1685 | "license": "BlueOak-1.0.0", 1686 | "dependencies": { 1687 | "lru-cache": "^10.2.0", 1688 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 1689 | }, 1690 | "engines": { 1691 | "node": ">=16 || 14 >=14.18" 1692 | }, 1693 | "funding": { 1694 | "url": "https://github.com/sponsors/isaacs" 1695 | } 1696 | }, 1697 | "node_modules/path-type": { 1698 | "version": "4.0.0", 1699 | "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", 1700 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1701 | "dev": true, 1702 | "license": "MIT", 1703 | "engines": { 1704 | "node": ">=8" 1705 | } 1706 | }, 1707 | "node_modules/picocolors": { 1708 | "version": "1.1.0", 1709 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz", 1710 | "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", 1711 | "dev": true, 1712 | "license": "ISC" 1713 | }, 1714 | "node_modules/picomatch": { 1715 | "version": "2.3.1", 1716 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", 1717 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1718 | "dev": true, 1719 | "license": "MIT", 1720 | "engines": { 1721 | "node": ">=8.6" 1722 | }, 1723 | "funding": { 1724 | "url": "https://github.com/sponsors/jonschlinkert" 1725 | } 1726 | }, 1727 | "node_modules/pirates": { 1728 | "version": "4.0.6", 1729 | "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", 1730 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 1731 | "dev": true, 1732 | "license": "MIT", 1733 | "engines": { 1734 | "node": ">= 6" 1735 | } 1736 | }, 1737 | "node_modules/postcss-load-config": { 1738 | "version": "6.0.1", 1739 | "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz", 1740 | "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", 1741 | "dev": true, 1742 | "funding": [ 1743 | { 1744 | "type": "opencollective", 1745 | "url": "https://opencollective.com/postcss/" 1746 | }, 1747 | { 1748 | "type": "github", 1749 | "url": "https://github.com/sponsors/ai" 1750 | } 1751 | ], 1752 | "license": "MIT", 1753 | "dependencies": { 1754 | "lilconfig": "^3.1.1" 1755 | }, 1756 | "engines": { 1757 | "node": ">= 18" 1758 | }, 1759 | "peerDependencies": { 1760 | "jiti": ">=1.21.0", 1761 | "postcss": ">=8.0.9", 1762 | "tsx": "^4.8.1", 1763 | "yaml": "^2.4.2" 1764 | }, 1765 | "peerDependenciesMeta": { 1766 | "jiti": { 1767 | "optional": true 1768 | }, 1769 | "postcss": { 1770 | "optional": true 1771 | }, 1772 | "tsx": { 1773 | "optional": true 1774 | }, 1775 | "yaml": { 1776 | "optional": true 1777 | } 1778 | } 1779 | }, 1780 | "node_modules/punycode": { 1781 | "version": "2.3.1", 1782 | "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", 1783 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 1784 | "dev": true, 1785 | "license": "MIT", 1786 | "engines": { 1787 | "node": ">=6" 1788 | } 1789 | }, 1790 | "node_modules/queue-microtask": { 1791 | "version": "1.2.3", 1792 | "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", 1793 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1794 | "dev": true, 1795 | "funding": [ 1796 | { 1797 | "type": "github", 1798 | "url": "https://github.com/sponsors/feross" 1799 | }, 1800 | { 1801 | "type": "patreon", 1802 | "url": "https://www.patreon.com/feross" 1803 | }, 1804 | { 1805 | "type": "consulting", 1806 | "url": "https://feross.org/support" 1807 | } 1808 | ], 1809 | "license": "MIT" 1810 | }, 1811 | "node_modules/readdirp": { 1812 | "version": "3.6.0", 1813 | "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", 1814 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1815 | "dev": true, 1816 | "license": "MIT", 1817 | "dependencies": { 1818 | "picomatch": "^2.2.1" 1819 | }, 1820 | "engines": { 1821 | "node": ">=8.10.0" 1822 | } 1823 | }, 1824 | "node_modules/resolve-from": { 1825 | "version": "5.0.0", 1826 | "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", 1827 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1828 | "dev": true, 1829 | "license": "MIT", 1830 | "engines": { 1831 | "node": ">=8" 1832 | } 1833 | }, 1834 | "node_modules/reusify": { 1835 | "version": "1.0.4", 1836 | "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", 1837 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1838 | "dev": true, 1839 | "license": "MIT", 1840 | "engines": { 1841 | "iojs": ">=1.0.0", 1842 | "node": ">=0.10.0" 1843 | } 1844 | }, 1845 | "node_modules/rollup": { 1846 | "version": "4.21.3", 1847 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.21.3.tgz", 1848 | "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", 1849 | "dev": true, 1850 | "license": "MIT", 1851 | "dependencies": { 1852 | "@types/estree": "1.0.5" 1853 | }, 1854 | "bin": { 1855 | "rollup": "dist/bin/rollup" 1856 | }, 1857 | "engines": { 1858 | "node": ">=18.0.0", 1859 | "npm": ">=8.0.0" 1860 | }, 1861 | "optionalDependencies": { 1862 | "@rollup/rollup-android-arm-eabi": "4.21.3", 1863 | "@rollup/rollup-android-arm64": "4.21.3", 1864 | "@rollup/rollup-darwin-arm64": "4.21.3", 1865 | "@rollup/rollup-darwin-x64": "4.21.3", 1866 | "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", 1867 | "@rollup/rollup-linux-arm-musleabihf": "4.21.3", 1868 | "@rollup/rollup-linux-arm64-gnu": "4.21.3", 1869 | "@rollup/rollup-linux-arm64-musl": "4.21.3", 1870 | "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", 1871 | "@rollup/rollup-linux-riscv64-gnu": "4.21.3", 1872 | "@rollup/rollup-linux-s390x-gnu": "4.21.3", 1873 | "@rollup/rollup-linux-x64-gnu": "4.21.3", 1874 | "@rollup/rollup-linux-x64-musl": "4.21.3", 1875 | "@rollup/rollup-win32-arm64-msvc": "4.21.3", 1876 | "@rollup/rollup-win32-ia32-msvc": "4.21.3", 1877 | "@rollup/rollup-win32-x64-msvc": "4.21.3", 1878 | "fsevents": "~2.3.2" 1879 | } 1880 | }, 1881 | "node_modules/run-parallel": { 1882 | "version": "1.2.0", 1883 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", 1884 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1885 | "dev": true, 1886 | "funding": [ 1887 | { 1888 | "type": "github", 1889 | "url": "https://github.com/sponsors/feross" 1890 | }, 1891 | { 1892 | "type": "patreon", 1893 | "url": "https://www.patreon.com/feross" 1894 | }, 1895 | { 1896 | "type": "consulting", 1897 | "url": "https://feross.org/support" 1898 | } 1899 | ], 1900 | "license": "MIT", 1901 | "dependencies": { 1902 | "queue-microtask": "^1.2.2" 1903 | } 1904 | }, 1905 | "node_modules/shebang-command": { 1906 | "version": "2.0.0", 1907 | "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", 1908 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1909 | "dev": true, 1910 | "license": "MIT", 1911 | "dependencies": { 1912 | "shebang-regex": "^3.0.0" 1913 | }, 1914 | "engines": { 1915 | "node": ">=8" 1916 | } 1917 | }, 1918 | "node_modules/shebang-regex": { 1919 | "version": "3.0.0", 1920 | "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", 1921 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1922 | "dev": true, 1923 | "license": "MIT", 1924 | "engines": { 1925 | "node": ">=8" 1926 | } 1927 | }, 1928 | "node_modules/signal-exit": { 1929 | "version": "3.0.7", 1930 | "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", 1931 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 1932 | "dev": true, 1933 | "license": "ISC" 1934 | }, 1935 | "node_modules/slash": { 1936 | "version": "3.0.0", 1937 | "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", 1938 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1939 | "dev": true, 1940 | "license": "MIT", 1941 | "engines": { 1942 | "node": ">=8" 1943 | } 1944 | }, 1945 | "node_modules/source-map": { 1946 | "version": "0.8.0-beta.0", 1947 | "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz", 1948 | "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", 1949 | "dev": true, 1950 | "license": "BSD-3-Clause", 1951 | "dependencies": { 1952 | "whatwg-url": "^7.0.0" 1953 | }, 1954 | "engines": { 1955 | "node": ">= 8" 1956 | } 1957 | }, 1958 | "node_modules/string-width": { 1959 | "version": "5.1.2", 1960 | "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", 1961 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1962 | "dev": true, 1963 | "license": "MIT", 1964 | "dependencies": { 1965 | "eastasianwidth": "^0.2.0", 1966 | "emoji-regex": "^9.2.2", 1967 | "strip-ansi": "^7.0.1" 1968 | }, 1969 | "engines": { 1970 | "node": ">=12" 1971 | }, 1972 | "funding": { 1973 | "url": "https://github.com/sponsors/sindresorhus" 1974 | } 1975 | }, 1976 | "node_modules/string-width-cjs": { 1977 | "name": "string-width", 1978 | "version": "4.2.3", 1979 | "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", 1980 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1981 | "dev": true, 1982 | "license": "MIT", 1983 | "dependencies": { 1984 | "emoji-regex": "^8.0.0", 1985 | "is-fullwidth-code-point": "^3.0.0", 1986 | "strip-ansi": "^6.0.1" 1987 | }, 1988 | "engines": { 1989 | "node": ">=8" 1990 | } 1991 | }, 1992 | "node_modules/string-width-cjs/node_modules/ansi-regex": { 1993 | "version": "5.0.1", 1994 | "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", 1995 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1996 | "dev": true, 1997 | "license": "MIT", 1998 | "engines": { 1999 | "node": ">=8" 2000 | } 2001 | }, 2002 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 2003 | "version": "8.0.0", 2004 | "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", 2005 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2006 | "dev": true, 2007 | "license": "MIT" 2008 | }, 2009 | "node_modules/string-width-cjs/node_modules/strip-ansi": { 2010 | "version": "6.0.1", 2011 | "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", 2012 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2013 | "dev": true, 2014 | "license": "MIT", 2015 | "dependencies": { 2016 | "ansi-regex": "^5.0.1" 2017 | }, 2018 | "engines": { 2019 | "node": ">=8" 2020 | } 2021 | }, 2022 | "node_modules/strip-ansi": { 2023 | "version": "7.1.0", 2024 | "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", 2025 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2026 | "dev": true, 2027 | "license": "MIT", 2028 | "dependencies": { 2029 | "ansi-regex": "^6.0.1" 2030 | }, 2031 | "engines": { 2032 | "node": ">=12" 2033 | }, 2034 | "funding": { 2035 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2036 | } 2037 | }, 2038 | "node_modules/strip-ansi-cjs": { 2039 | "name": "strip-ansi", 2040 | "version": "6.0.1", 2041 | "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", 2042 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2043 | "dev": true, 2044 | "license": "MIT", 2045 | "dependencies": { 2046 | "ansi-regex": "^5.0.1" 2047 | }, 2048 | "engines": { 2049 | "node": ">=8" 2050 | } 2051 | }, 2052 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 2053 | "version": "5.0.1", 2054 | "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", 2055 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2056 | "dev": true, 2057 | "license": "MIT", 2058 | "engines": { 2059 | "node": ">=8" 2060 | } 2061 | }, 2062 | "node_modules/strip-final-newline": { 2063 | "version": "2.0.0", 2064 | "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2065 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2066 | "dev": true, 2067 | "license": "MIT", 2068 | "engines": { 2069 | "node": ">=6" 2070 | } 2071 | }, 2072 | "node_modules/sucrase": { 2073 | "version": "3.35.0", 2074 | "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz", 2075 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 2076 | "dev": true, 2077 | "license": "MIT", 2078 | "dependencies": { 2079 | "@jridgewell/gen-mapping": "^0.3.2", 2080 | "commander": "^4.0.0", 2081 | "glob": "^10.3.10", 2082 | "lines-and-columns": "^1.1.6", 2083 | "mz": "^2.7.0", 2084 | "pirates": "^4.0.1", 2085 | "ts-interface-checker": "^0.1.9" 2086 | }, 2087 | "bin": { 2088 | "sucrase": "bin/sucrase", 2089 | "sucrase-node": "bin/sucrase-node" 2090 | }, 2091 | "engines": { 2092 | "node": ">=16 || 14 >=14.17" 2093 | } 2094 | }, 2095 | "node_modules/thenify": { 2096 | "version": "3.3.1", 2097 | "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", 2098 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 2099 | "dev": true, 2100 | "license": "MIT", 2101 | "dependencies": { 2102 | "any-promise": "^1.0.0" 2103 | } 2104 | }, 2105 | "node_modules/thenify-all": { 2106 | "version": "1.6.0", 2107 | "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", 2108 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 2109 | "dev": true, 2110 | "license": "MIT", 2111 | "dependencies": { 2112 | "thenify": ">= 3.1.0 < 4" 2113 | }, 2114 | "engines": { 2115 | "node": ">=0.8" 2116 | } 2117 | }, 2118 | "node_modules/to-regex-range": { 2119 | "version": "5.0.1", 2120 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", 2121 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2122 | "dev": true, 2123 | "license": "MIT", 2124 | "dependencies": { 2125 | "is-number": "^7.0.0" 2126 | }, 2127 | "engines": { 2128 | "node": ">=8.0" 2129 | } 2130 | }, 2131 | "node_modules/tr46": { 2132 | "version": "1.0.1", 2133 | "resolved": "https://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz", 2134 | "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", 2135 | "dev": true, 2136 | "license": "MIT", 2137 | "dependencies": { 2138 | "punycode": "^2.1.0" 2139 | } 2140 | }, 2141 | "node_modules/tree-kill": { 2142 | "version": "1.2.2", 2143 | "resolved": "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz", 2144 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 2145 | "dev": true, 2146 | "license": "MIT", 2147 | "bin": { 2148 | "tree-kill": "cli.js" 2149 | } 2150 | }, 2151 | "node_modules/ts-interface-checker": { 2152 | "version": "0.1.13", 2153 | "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 2154 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 2155 | "dev": true, 2156 | "license": "Apache-2.0" 2157 | }, 2158 | "node_modules/tsup": { 2159 | "version": "8.2.4", 2160 | "resolved": "https://registry.npmmirror.com/tsup/-/tsup-8.2.4.tgz", 2161 | "integrity": "sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==", 2162 | "dev": true, 2163 | "license": "MIT", 2164 | "dependencies": { 2165 | "bundle-require": "^5.0.0", 2166 | "cac": "^6.7.14", 2167 | "chokidar": "^3.6.0", 2168 | "consola": "^3.2.3", 2169 | "debug": "^4.3.5", 2170 | "esbuild": "^0.23.0", 2171 | "execa": "^5.1.1", 2172 | "globby": "^11.1.0", 2173 | "joycon": "^3.1.1", 2174 | "picocolors": "^1.0.1", 2175 | "postcss-load-config": "^6.0.1", 2176 | "resolve-from": "^5.0.0", 2177 | "rollup": "^4.19.0", 2178 | "source-map": "0.8.0-beta.0", 2179 | "sucrase": "^3.35.0", 2180 | "tree-kill": "^1.2.2" 2181 | }, 2182 | "bin": { 2183 | "tsup": "dist/cli-default.js", 2184 | "tsup-node": "dist/cli-node.js" 2185 | }, 2186 | "engines": { 2187 | "node": ">=18" 2188 | }, 2189 | "peerDependencies": { 2190 | "@microsoft/api-extractor": "^7.36.0", 2191 | "@swc/core": "^1", 2192 | "postcss": "^8.4.12", 2193 | "typescript": ">=4.5.0" 2194 | }, 2195 | "peerDependenciesMeta": { 2196 | "@microsoft/api-extractor": { 2197 | "optional": true 2198 | }, 2199 | "@swc/core": { 2200 | "optional": true 2201 | }, 2202 | "postcss": { 2203 | "optional": true 2204 | }, 2205 | "typescript": { 2206 | "optional": true 2207 | } 2208 | } 2209 | }, 2210 | "node_modules/vite": { 2211 | "resolved": "../../node_modules/.pnpm/vite@5.4.4/node_modules/vite", 2212 | "link": true 2213 | }, 2214 | "node_modules/webidl-conversions": { 2215 | "version": "4.0.2", 2216 | "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 2217 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 2218 | "dev": true, 2219 | "license": "BSD-2-Clause" 2220 | }, 2221 | "node_modules/whatwg-url": { 2222 | "version": "7.1.0", 2223 | "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz", 2224 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 2225 | "dev": true, 2226 | "license": "MIT", 2227 | "dependencies": { 2228 | "lodash.sortby": "^4.7.0", 2229 | "tr46": "^1.0.1", 2230 | "webidl-conversions": "^4.0.2" 2231 | } 2232 | }, 2233 | "node_modules/which": { 2234 | "version": "2.0.2", 2235 | "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", 2236 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2237 | "dev": true, 2238 | "license": "ISC", 2239 | "dependencies": { 2240 | "isexe": "^2.0.0" 2241 | }, 2242 | "bin": { 2243 | "node-which": "bin/node-which" 2244 | }, 2245 | "engines": { 2246 | "node": ">= 8" 2247 | } 2248 | }, 2249 | "node_modules/wrap-ansi": { 2250 | "version": "8.1.0", 2251 | "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 2252 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 2253 | "dev": true, 2254 | "license": "MIT", 2255 | "dependencies": { 2256 | "ansi-styles": "^6.1.0", 2257 | "string-width": "^5.0.1", 2258 | "strip-ansi": "^7.0.1" 2259 | }, 2260 | "engines": { 2261 | "node": ">=12" 2262 | }, 2263 | "funding": { 2264 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2265 | } 2266 | }, 2267 | "node_modules/wrap-ansi-cjs": { 2268 | "name": "wrap-ansi", 2269 | "version": "7.0.0", 2270 | "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2271 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2272 | "dev": true, 2273 | "license": "MIT", 2274 | "dependencies": { 2275 | "ansi-styles": "^4.0.0", 2276 | "string-width": "^4.1.0", 2277 | "strip-ansi": "^6.0.0" 2278 | }, 2279 | "engines": { 2280 | "node": ">=10" 2281 | }, 2282 | "funding": { 2283 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2284 | } 2285 | }, 2286 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 2287 | "version": "5.0.1", 2288 | "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", 2289 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2290 | "dev": true, 2291 | "license": "MIT", 2292 | "engines": { 2293 | "node": ">=8" 2294 | } 2295 | }, 2296 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 2297 | "version": "4.3.0", 2298 | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", 2299 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2300 | "dev": true, 2301 | "license": "MIT", 2302 | "dependencies": { 2303 | "color-convert": "^2.0.1" 2304 | }, 2305 | "engines": { 2306 | "node": ">=8" 2307 | }, 2308 | "funding": { 2309 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2310 | } 2311 | }, 2312 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 2313 | "version": "8.0.0", 2314 | "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", 2315 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2316 | "dev": true, 2317 | "license": "MIT" 2318 | }, 2319 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 2320 | "version": "4.2.3", 2321 | "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", 2322 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2323 | "dev": true, 2324 | "license": "MIT", 2325 | "dependencies": { 2326 | "emoji-regex": "^8.0.0", 2327 | "is-fullwidth-code-point": "^3.0.0", 2328 | "strip-ansi": "^6.0.1" 2329 | }, 2330 | "engines": { 2331 | "node": ">=8" 2332 | } 2333 | }, 2334 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 2335 | "version": "6.0.1", 2336 | "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", 2337 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2338 | "dev": true, 2339 | "license": "MIT", 2340 | "dependencies": { 2341 | "ansi-regex": "^5.0.1" 2342 | }, 2343 | "engines": { 2344 | "node": ">=8" 2345 | } 2346 | } 2347 | } 2348 | } 2349 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-plugin-app-loading", 3 | "type": "module", 4 | "version": "0.4.0", 5 | "description": "", 6 | "author": "Hooray <304327508@qq.com>", 7 | "license": "MIT", 8 | "homepage": "https://github.com/hooray/vite-plugin-app-loading", 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/hooray/vite-plugin-app-loading.git", 12 | "directory": "packages/vite-plugin-app-loading" 13 | }, 14 | "bugs": { 15 | "url": "https://github.com/hooray/vite-plugin-app-loading/issues" 16 | }, 17 | "keywords": [], 18 | "exports": { 19 | ".": { 20 | "import": "./dist/index.js", 21 | "require": "./dist/index.cjs" 22 | }, 23 | "./client": { 24 | "types": "./client.d.ts" 25 | } 26 | }, 27 | "main": "dist/index.js", 28 | "types": "dist/index.d.ts", 29 | "files": [ 30 | "client.d.ts", 31 | "dist", 32 | "loading.html" 33 | ], 34 | "scripts": { 35 | "build": "tsdown --format esm --format cjs" 36 | }, 37 | "devDependencies": { 38 | "tsdown": "^0.12.6", 39 | "vite": "^6.3.5" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { PluginOption } from 'vite' 2 | import fs from 'node:fs' 3 | import path from 'node:path' 4 | import process from 'node:process' 5 | import url from 'node:url' 6 | 7 | async function getAppLoadingHtml(filePath: string = 'loading.html'): Promise { 8 | let appLoadingHtmlPath = path.join(process.cwd(), filePath) 9 | if (!fs.existsSync(appLoadingHtmlPath)) { 10 | appLoadingHtmlPath = url.fileURLToPath(new URL('../loading.html', import.meta.url)) 11 | } 12 | return await fs.readFileSync(appLoadingHtmlPath, 'utf8') 13 | } 14 | 15 | export default function (appLoadingHtmlPath?: string): PluginOption { 16 | const virtualModuleId = 'virtual:app-loading' 17 | const resolvedVirtualModuleId = `\0${virtualModuleId}` 18 | return { 19 | name: 'vite-plugin-app-loading', 20 | resolveId(id) { 21 | if (id === virtualModuleId) { 22 | return resolvedVirtualModuleId 23 | } 24 | }, 25 | load(id) { 26 | if (id === resolvedVirtualModuleId) { 27 | return { 28 | code: ` 29 | export function loadingFadeOut() { 30 | const loadingEl = document.querySelector('[data-app-loading]') 31 | if (loadingEl) { 32 | loadingEl.style['pointer-events'] = 'none' 33 | loadingEl.style.visibility = 'hidden' 34 | loadingEl.style.opacity = 0 35 | loadingEl.style.transition = 'all 0.5s ease-out' 36 | loadingEl.addEventListener('transitionend', () => loadingEl.remove(), { once: true }) 37 | } 38 | } 39 | `, 40 | map: null, 41 | } 42 | } 43 | }, 44 | enforce: 'pre', 45 | transformIndexHtml: { 46 | handler: async html => html.replace(/<\/body>/, `${ 47 | `
${await getAppLoadingHtml(appLoadingHtmlPath)}
` 48 | }`), 49 | order: 'pre', 50 | }, 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /packages/vite-plugin-app-loading/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | format: ['esm', 'cjs'], 6 | dts: true, 7 | clean: true, 8 | sourcemap: true, 9 | minify: true, 10 | shims: true, 11 | }) 12 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - docs 3 | - example/* 4 | - packages/* 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": ["ESNext"], 5 | "module": "ESNext", 6 | "moduleResolution": "Bundler", 7 | "resolveJsonModule": true, 8 | "strict": true, 9 | "strictNullChecks": true, 10 | "noEmit": true, 11 | "esModuleInterop": true, 12 | "skipDefaultLibCheck": true, 13 | "skipLibCheck": true 14 | } 15 | } 16 | --------------------------------------------------------------------------------