├── .gitignore ├── FPS ├── .vscode │ └── settings.json ├── index.html └── index.js ├── common ├── index.ts └── package.json ├── main ├── .gitignore ├── .vscode │ └── extensions.json ├── README.md ├── env.d.ts ├── index.html ├── package.json ├── public │ └── favicon.ico ├── src │ ├── App.vue │ ├── assets │ │ ├── base.css │ │ ├── logo.svg │ │ └── main.css │ ├── components │ │ ├── icons │ │ │ ├── IconCommunity.vue │ │ │ ├── IconDocumentation.vue │ │ │ ├── IconEcosystem.vue │ │ │ ├── IconSupport.vue │ │ │ └── IconTooling.vue │ │ ├── react.vue │ │ └── vue3.vue │ ├── main.ts │ ├── router │ │ └── index.ts │ └── views │ │ ├── AboutView.vue │ │ └── HomeView.vue ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts ├── moudle ├── host │ ├── bootstrap.js │ ├── index.html │ ├── index.js │ ├── package.json │ ├── pnpm-lock.yaml │ └── webpack.config.js └── remote │ ├── bootstrap.js │ ├── index.html │ ├── index.js │ ├── list.js │ ├── package.json │ ├── pnpm-lock.yaml │ └── webpack.config.js ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── web ├── react-demo │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── public │ │ └── vite.svg │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── assets │ │ │ └── react.svg │ │ ├── index.css │ │ ├── main.tsx │ │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts └── vue-demo │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── index.html │ ├── package.json │ ├── public │ └── vite.svg │ ├── src │ ├── App.vue │ ├── assets │ │ └── vue.svg │ ├── components │ │ └── HelloWorld.vue │ ├── main.ts │ ├── style.css │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts └── wujie-vue-setup ├── .swcrc ├── README.md ├── esm └── index.js ├── index.d.ts ├── lib ├── index.js └── index.js.LICENSE.txt ├── package.json ├── pnpm-lock.yaml ├── src ├── index.ts └── type.ts ├── tsconfig.json └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /FPS/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /FPS/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /FPS/index.js: -------------------------------------------------------------------------------- 1 | //60FPS 2 | //1000 / 60 = 16.666666666666668 3 | //一帧就是16.6ms 4 | //1.处理用户的事件,就是event 例如 click,input change 等。 5 | //2.执行定时器任务 6 | //3.执行 requestAnimationFrame 7 | //4.执行dom 的回流与重绘 8 | //5.计算更新图层的绘制指令 9 | //6.绘制指令合并主线程 如果有空余时间会执行 requestidlecallback 10 | 11 | //第二种情况 12 | //第二种情况是没有任务执行浏览器会有50ms空闲时间,这个时间段也会执行 requestidlecallback 13 | 14 | //预加载相关的东西 15 | requestIdleCallback(function (deadline) { 16 | console.log(deadline.timeRemaining()); 17 | }) 18 | 19 | //react相关人员调研 requestIdleCallback 有机会是20ms执行的 polyfill 20 | //react16 postMessage + requestAnimationFrame 21 | //setTimeout 0 是4ms 22 | //react18 MessageChannel 实现了requestIdleCallback 的polyfill 23 | let {port1,port2} = new MessageChannel() 24 | //onmessage 隐试开启start 25 | port1.onmessage = function(e){ 26 | console.log('收到了port2的消息',e) 27 | } 28 | 29 | port2.onmessage = function(e){ 30 | console.log('收到了port1的消息',e) 31 | } 32 | 33 | port1.postMessage('hello') 34 | port2.postMessage('world') -------------------------------------------------------------------------------- /common/index.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | export const a = axios.get('xxxx') 4 | 5 | export const b = axios.post('xxxx') -------------------------------------------------------------------------------- /common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "common", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "axios": "^1.3.4" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /main/.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 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /main/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /main/README.md: -------------------------------------------------------------------------------- 1 | # main 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). 8 | 9 | ## Type Support for `.vue` Imports in TS 10 | 11 | TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. 12 | 13 | If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: 14 | 15 | 1. Disable the built-in TypeScript Extension 16 | 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette 17 | 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` 18 | 2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. 19 | 20 | ## Customize configuration 21 | 22 | See [Vite Configuration Reference](https://vitejs.dev/config/). 23 | 24 | ## Project Setup 25 | 26 | ```sh 27 | npm install 28 | ``` 29 | 30 | ### Compile and Hot-Reload for Development 31 | 32 | ```sh 33 | npm run dev 34 | ``` 35 | 36 | ### Type-Check, Compile and Minify for Production 37 | 38 | ```sh 39 | npm run build 40 | ``` 41 | -------------------------------------------------------------------------------- /main/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /main/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /main/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "main", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "run-p type-check build-only", 8 | "preview": "vite preview", 9 | "build-only": "vite build", 10 | "type-check": "vue-tsc --noEmit" 11 | }, 12 | "dependencies": { 13 | "common": "workspace:^1.0.0", 14 | "vue": "^3.2.47", 15 | "vue-router": "^4.1.6", 16 | "wujie": "^1.0.13", 17 | "wujie-vue-setup": "^0.0.4", 18 | "wujie-vue3": "^1.0.13" 19 | }, 20 | "devDependencies": { 21 | "@types/node": "^18.14.2", 22 | "@vitejs/plugin-vue": "^4.0.0", 23 | "@vitejs/plugin-vue-jsx": "^3.0.0", 24 | "@vue/tsconfig": "^0.1.3", 25 | "npm-run-all": "^4.1.5", 26 | "typescript": "~4.8.4", 27 | "vite": "^4.1.4", 28 | "vue-tsc": "^1.2.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /main/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/message163/wujie-demo/af4287f306c41577755a4cc2425f4464bd6ced9f/main/public/favicon.ico -------------------------------------------------------------------------------- /main/src/App.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 20 | 21 | -------------------------------------------------------------------------------- /main/src/assets/base.css: -------------------------------------------------------------------------------- 1 | /* color palette from */ 2 | :root { 3 | --vt-c-white: #ffffff; 4 | --vt-c-white-soft: #f8f8f8; 5 | --vt-c-white-mute: #f2f2f2; 6 | 7 | --vt-c-black: #181818; 8 | --vt-c-black-soft: #222222; 9 | --vt-c-black-mute: #282828; 10 | 11 | --vt-c-indigo: #2c3e50; 12 | 13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); 14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); 15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); 16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); 17 | 18 | --vt-c-text-light-1: var(--vt-c-indigo); 19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66); 20 | --vt-c-text-dark-1: var(--vt-c-white); 21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); 22 | } 23 | 24 | /* semantic color variables for this project */ 25 | :root { 26 | --color-background: var(--vt-c-white); 27 | --color-background-soft: var(--vt-c-white-soft); 28 | --color-background-mute: var(--vt-c-white-mute); 29 | 30 | --color-border: var(--vt-c-divider-light-2); 31 | --color-border-hover: var(--vt-c-divider-light-1); 32 | 33 | --color-heading: var(--vt-c-text-light-1); 34 | --color-text: var(--vt-c-text-light-1); 35 | 36 | --section-gap: 160px; 37 | } 38 | 39 | @media (prefers-color-scheme: dark) { 40 | :root { 41 | --color-background: var(--vt-c-black); 42 | --color-background-soft: var(--vt-c-black-soft); 43 | --color-background-mute: var(--vt-c-black-mute); 44 | 45 | --color-border: var(--vt-c-divider-dark-2); 46 | --color-border-hover: var(--vt-c-divider-dark-1); 47 | 48 | --color-heading: var(--vt-c-text-dark-1); 49 | --color-text: var(--vt-c-text-dark-2); 50 | } 51 | } 52 | 53 | *, 54 | *::before, 55 | *::after { 56 | box-sizing: border-box; 57 | margin: 0; 58 | position: relative; 59 | font-weight: normal; 60 | } 61 | 62 | body { 63 | min-height: 100vh; 64 | color: var(--color-text); 65 | background: var(--color-background); 66 | transition: color 0.5s, background-color 0.5s; 67 | line-height: 1.6; 68 | font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 69 | Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 70 | font-size: 15px; 71 | text-rendering: optimizeLegibility; 72 | -webkit-font-smoothing: antialiased; 73 | -moz-osx-font-smoothing: grayscale; 74 | } 75 | -------------------------------------------------------------------------------- /main/src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /main/src/assets/main.css: -------------------------------------------------------------------------------- 1 | @import './base.css'; 2 | 3 | #app { 4 | max-width: 1280px; 5 | margin: 0 auto; 6 | padding: 2rem; 7 | 8 | font-weight: normal; 9 | } 10 | 11 | a, 12 | .green { 13 | text-decoration: none; 14 | color: hsla(160, 100%, 37%, 1); 15 | transition: 0.4s; 16 | } 17 | 18 | @media (hover: hover) { 19 | a:hover { 20 | background-color: hsla(160, 100%, 37%, 0.2); 21 | } 22 | } 23 | 24 | @media (min-width: 1024px) { 25 | body { 26 | display: flex; 27 | place-items: center; 28 | } 29 | 30 | #app { 31 | display: grid; 32 | grid-template-columns: 1fr 1fr; 33 | padding: 0 2rem; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /main/src/components/icons/IconCommunity.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /main/src/components/icons/IconDocumentation.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /main/src/components/icons/IconEcosystem.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /main/src/components/icons/IconSupport.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /main/src/components/icons/IconTooling.vue: -------------------------------------------------------------------------------- 1 | 2 | 20 | -------------------------------------------------------------------------------- /main/src/components/react.vue: -------------------------------------------------------------------------------- 1 | 4 | 7 | 79 | -------------------------------------------------------------------------------- /main/src/components/vue3.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 39 | 40 | 43 | -------------------------------------------------------------------------------- /main/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import Wujie from 'wujie-vue3' //引入一下引入对应的框架 5 | //import Wujie from 'wujie-vue-setup' 6 | const { preloadApp } = Wujie 7 | const app = createApp(App) 8 | 9 | 10 | app.use(router).use(Wujie) //注册一下 11 | 12 | app.mount('#app') 13 | 14 | preloadApp({ name: "vue3", url: "http://127.0.0.1:5174/", exec: true }) 15 | preloadApp({ name: "react", url: "http://127.0.0.1:5175/", exec: true }) -------------------------------------------------------------------------------- /main/src/router/index.ts: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from 'vue-router' 2 | 3 | const router = createRouter({ 4 | history: createWebHistory(import.meta.env.BASE_URL), 5 | routes: [ 6 | { 7 | path: '/vue3', 8 | component: ()=> import('@/components/vue3.vue') 9 | }, 10 | { 11 | path: '/react', 12 | // route level code-splitting 13 | // this generates a separate chunk (About.[hash].js) for this route 14 | // which is lazy-loaded when the route is visited. 15 | component: () => import('@/components/react.vue') 16 | } 17 | ] 18 | }) 19 | 20 | export default router 21 | -------------------------------------------------------------------------------- /main/src/views/AboutView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /main/src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /main/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], 4 | "compilerOptions": { 5 | "baseUrl": ".", 6 | "paths": { 7 | "@/*": ["./src/*"] 8 | } 9 | }, 10 | 11 | "references": [ 12 | { 13 | "path": "./tsconfig.node.json" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /main/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.node.json", 3 | "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], 4 | "compilerOptions": { 5 | "composite": true, 6 | "types": ["node"] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /main/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | import vueJsx from '@vitejs/plugin-vue-jsx' 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [vue(), vueJsx()], 10 | resolve: { 11 | alias: { 12 | '@': fileURLToPath(new URL('./src', import.meta.url)) 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /moudle/host/bootstrap.js: -------------------------------------------------------------------------------- 1 | import('remote/addList').then(({ addList }) => { 2 | let app = document.getElementById("app"); 3 | 4 | app.innerHTML = "

host

"; 5 | addList() 6 | }) -------------------------------------------------------------------------------- /moudle/host/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |
11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /moudle/host/index.js: -------------------------------------------------------------------------------- 1 | import('./bootstrap') -------------------------------------------------------------------------------- /moudle/host/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "remote", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "dev":"webpack-dev-server", 9 | "build":"webpack" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "html-webpack-plugin": "^5.5.0", 16 | "webpack": "^5.78.0", 17 | "webpack-cli": "^5.0.1", 18 | "webpack-dev-server": "^4.13.2" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /moudle/host/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { Configuration } = require('webpack') 2 | const HtmlWebpackPlugin = require('html-webpack-plugin') 3 | const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin') 4 | /** 5 | * @type {Configuration} //配置智能提示 6 | */ 7 | const config = { 8 | mode: 'none', 9 | entry: './index.js', 10 | output: { 11 | filename: 'bundle.js' 12 | }, 13 | devServer:{ 14 | port: 9002, //host 15 | }, 16 | plugins: [ 17 | new HtmlWebpackPlugin({ 18 | template: './index.html' 19 | }), 20 | new ModuleFederationPlugin({ 21 | name: 'host', 22 | remotes: { 23 | remote: 'remote@http://localhost:9001/remoteEntry.js' 24 | } 25 | }) 26 | ] 27 | } 28 | module.exports = config -------------------------------------------------------------------------------- /moudle/remote/bootstrap.js: -------------------------------------------------------------------------------- 1 | import { addList } from "./list"; 2 | let app = document.getElementById("app"); 3 | 4 | app.innerHTML = "

remote

"; 5 | 6 | addList() -------------------------------------------------------------------------------- /moudle/remote/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |
11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /moudle/remote/index.js: -------------------------------------------------------------------------------- 1 | import('./bootstrap') -------------------------------------------------------------------------------- /moudle/remote/list.js: -------------------------------------------------------------------------------- 1 | //这个模块会暴露给 host 项目去使用 2 | 3 | let wrap = document.createElement("div"); 4 | 5 | let list = [ 6 | { name: "张三", age: 18 }, 7 | { name: "李四", age: 19 }, 8 | { name: "王五", age: 20 }, 9 | ] 10 | 11 | list.forEach(item => { 12 | let p = document.createElement("p"); 13 | p.innerHTML = `${item.name} - ${item.age}`; 14 | wrap.appendChild(p); 15 | }) 16 | 17 | export const addList = () => { 18 | document.body.appendChild(wrap); 19 | } -------------------------------------------------------------------------------- /moudle/remote/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "remote", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "dev":"webpack-dev-server", 9 | "build":"webpack" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "html-webpack-plugin": "^5.5.0", 16 | "webpack": "^5.78.0", 17 | "webpack-cli": "^5.0.1", 18 | "webpack-dev-server": "^4.13.2" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /moudle/remote/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { Configuration } = require('webpack') 2 | const HtmlWebpackPlugin = require('html-webpack-plugin') 3 | const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin') 4 | /** 5 | * @type {Configuration} //配置智能提示 6 | */ 7 | const config = { 8 | mode: 'none', 9 | entry: './index.js', 10 | output: { 11 | filename: 'bundle.js' 12 | }, 13 | devServer:{ 14 | port: 9001, //remote 15 | }, 16 | plugins: [ 17 | new HtmlWebpackPlugin({ 18 | template: './index.html' 19 | }), 20 | new ModuleFederationPlugin({ 21 | name: 'remote', 22 | filename: 'remoteEntry.js', 23 | exposes: { 24 | './addList': './list.js' //value 暴露的模块的路径 25 | } 26 | }) 27 | ] 28 | } 29 | module.exports = config -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "monorepo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | # all packages in direct subdirs of packages/ 3 | - 'main' 4 | # all packages in subdirs of components/ 5 | - 'web/**' 6 | 7 | - 'common' 8 | -------------------------------------------------------------------------------- /web/react-demo/.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 | -------------------------------------------------------------------------------- /web/react-demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /web/react-demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-demo", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "common": "workspace:^1.0.0", 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.28", 18 | "@types/react-dom": "^18.0.11", 19 | "@vitejs/plugin-react": "^3.1.0", 20 | "typescript": "^4.9.3", 21 | "vite": "^4.2.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /web/react-demo/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/react-demo/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 | -------------------------------------------------------------------------------- /web/react-demo/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import reactLogo from './assets/react.svg' 3 | import viteLogo from '/vite.svg' 4 | import './App.css' 5 | 6 | 7 | 8 | 9 | 10 | 11 | function App() { 12 | const [count, setCount] = useState(0) 13 | 14 | return ( 15 |
16 |
17 | 18 | Vite logo 19 | 20 | 21 | React logo 22 | 23 |
24 |

Vite + React

25 |
26 | 29 |

30 | Edit src/App.tsx and save to test HMR 31 |

32 |
33 |

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

36 |
37 | ) 38 | } 39 | 40 | export default App 41 | -------------------------------------------------------------------------------- /web/react-demo/src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/react-demo/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 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | a { 18 | font-weight: 500; 19 | color: #646cff; 20 | text-decoration: inherit; 21 | } 22 | a:hover { 23 | color: #535bf2; 24 | } 25 | 26 | body { 27 | margin: 0; 28 | display: flex; 29 | place-items: center; 30 | min-width: 320px; 31 | min-height: 100vh; 32 | } 33 | 34 | h1 { 35 | font-size: 3.2em; 36 | line-height: 1.1; 37 | } 38 | 39 | button { 40 | border-radius: 8px; 41 | border: 1px solid transparent; 42 | padding: 0.6em 1.2em; 43 | font-size: 1em; 44 | font-weight: 500; 45 | font-family: inherit; 46 | background-color: #1a1a1a; 47 | cursor: pointer; 48 | transition: border-color 0.25s; 49 | } 50 | button:hover { 51 | border-color: #646cff; 52 | } 53 | button:focus, 54 | button:focus-visible { 55 | outline: 4px auto -webkit-focus-ring-color; 56 | } 57 | 58 | @media (prefers-color-scheme: light) { 59 | :root { 60 | color: #213547; 61 | background-color: #ffffff; 62 | } 63 | a:hover { 64 | color: #747bff; 65 | } 66 | button { 67 | background-color: #f9f9f9; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /web/react-demo/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /web/react-demo/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /web/react-demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx" 18 | }, 19 | "include": ["src"], 20 | "references": [{ "path": "./tsconfig.node.json" }] 21 | } 22 | -------------------------------------------------------------------------------- /web/react-demo/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /web/react-demo/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /web/vue-demo/.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 | -------------------------------------------------------------------------------- /web/vue-demo/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /web/vue-demo/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 | -------------------------------------------------------------------------------- /web/vue-demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-demo", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "common": "workspace:^1.0.0", 13 | "element-plus": "^2.3.2", 14 | "rxjs": "^7.8.0", 15 | "vue": "^3.2.47" 16 | }, 17 | "devDependencies": { 18 | "@vitejs/plugin-vue": "^4.1.0", 19 | "typescript": "^4.9.3", 20 | "vite": "^4.2.0", 21 | "vue-tsc": "^1.2.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /web/vue-demo/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/vue-demo/src/App.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 26 | 27 | 43 | -------------------------------------------------------------------------------- /web/vue-demo/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/vue-demo/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 33 | 34 | 39 | -------------------------------------------------------------------------------- /web/vue-demo/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import './style.css' 3 | import App from './App.vue' 4 | import ElementUi from 'element-plus' 5 | import 'element-plus/dist/index.css' 6 | 7 | 8 | declare global { 9 | interface Window { 10 | $wujie: { 11 | props: Record 12 | bus: { 13 | $emit: any 14 | } 15 | } 16 | // 是否存在无界 17 | __POWERED_BY_WUJIE__?: boolean; 18 | // 子应用mount函数 19 | __WUJIE_MOUNT: () => void; 20 | // 子应用unmount函数 21 | __WUJIE_UNMOUNT: () => void; 22 | // 子应用无界实例 23 | __WUJIE: { mount: () => void }; 24 | } 25 | } 26 | 27 | let instace: any 28 | if (window.__POWERED_BY_WUJIE__) { 29 | window.__WUJIE_MOUNT = () => { 30 | instace = createApp(App).use(ElementUi) 31 | instace.mount('#app') 32 | } 33 | window.__WUJIE_UNMOUNT = () => { 34 | instace.unmount() 35 | } 36 | window.__WUJIE.mount(); 37 | } -------------------------------------------------------------------------------- /web/vue-demo/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 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | a { 18 | font-weight: 500; 19 | color: #646cff; 20 | text-decoration: inherit; 21 | } 22 | a:hover { 23 | color: #535bf2; 24 | } 25 | 26 | body { 27 | margin: 0; 28 | display: flex; 29 | place-items: center; 30 | min-width: 320px; 31 | min-height: 100vh; 32 | } 33 | 34 | h1 { 35 | font-size: 3.2em; 36 | line-height: 1.1; 37 | } 38 | 39 | button { 40 | border-radius: 8px; 41 | border: 1px solid transparent; 42 | padding: 0.6em 1.2em; 43 | font-size: 1em; 44 | font-weight: 500; 45 | font-family: inherit; 46 | background-color: #1a1a1a; 47 | cursor: pointer; 48 | transition: border-color 0.25s; 49 | } 50 | button:hover { 51 | border-color: #646cff; 52 | } 53 | button:focus, 54 | button:focus-visible { 55 | outline: 4px auto -webkit-focus-ring-color; 56 | } 57 | 58 | .card { 59 | padding: 2em; 60 | } 61 | 62 | #app { 63 | max-width: 1280px; 64 | margin: 0 auto; 65 | padding: 2rem; 66 | text-align: center; 67 | } 68 | 69 | @media (prefers-color-scheme: light) { 70 | :root { 71 | color: #213547; 72 | background-color: #ffffff; 73 | } 74 | a:hover { 75 | color: #747bff; 76 | } 77 | button { 78 | background-color: #f9f9f9; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /web/vue-demo/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /web/vue-demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "resolveJsonModule": true, 10 | "isolatedModules": true, 11 | "esModuleInterop": true, 12 | "lib": ["ESNext", "DOM"], 13 | "skipLibCheck": true, 14 | "noEmit": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [{ "path": "./tsconfig.node.json" }] 18 | } 19 | -------------------------------------------------------------------------------- /web/vue-demo/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /web/vue-demo/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /wujie-vue-setup/.swcrc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/swcrc", 3 | "jsc": { 4 | "parser": { 5 | "syntax": "typescript" 6 | }, 7 | "target": "es5", 8 | "loose": false, 9 | "externalHelpers": false, 10 | // Requires v1.2.50 or upper and requires target to be es2016 or upper. 11 | "keepClassNames": false 12 | }, 13 | "minify": false 14 | } 15 | -------------------------------------------------------------------------------- /wujie-vue-setup/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/message163/wujie-demo/af4287f306c41577755a4cc2425f4464bd6ced9f/wujie-vue-setup/README.md -------------------------------------------------------------------------------- /wujie-vue-setup/esm/index.js: -------------------------------------------------------------------------------- 1 | function _arrayLikeToArray(arr, len) { 2 | if (len == null || len > arr.length) len = arr.length; 3 | for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; 4 | return arr2; 5 | } 6 | function _arrayWithoutHoles(arr) { 7 | if (Array.isArray(arr)) return _arrayLikeToArray(arr); 8 | } 9 | function _iterableToArray(iter) { 10 | if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); 11 | } 12 | function _nonIterableSpread() { 13 | throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 14 | } 15 | function _toConsumableArray(arr) { 16 | return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); 17 | } 18 | function _unsupportedIterableToArray(o, minLen) { 19 | if (!o) return; 20 | if (typeof o === "string") return _arrayLikeToArray(o, minLen); 21 | var n = Object.prototype.toString.call(o).slice(8, -1); 22 | if (n === "Object" && o.constructor) n = o.constructor.name; 23 | if (n === "Map" || n === "Set") return Array.from(n); 24 | if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); 25 | } 26 | import { defineComponent, h, getCurrentInstance, onMounted, watch, onBeforeUnmount } from "vue"; 27 | import { startApp, bus } from "wujie"; 28 | var wujie = defineComponent({ 29 | props: { 30 | width: { 31 | type: String, 32 | default: "" 33 | }, 34 | height: { 35 | type: String, 36 | default: "" 37 | }, 38 | name: { 39 | type: String, 40 | default: "", 41 | required: true 42 | }, 43 | loading: { 44 | type: HTMLElement, 45 | default: undefined 46 | }, 47 | url: { 48 | type: String, 49 | default: "", 50 | required: true 51 | }, 52 | sync: { 53 | type: Boolean, 54 | default: undefined 55 | }, 56 | prefix: { 57 | type: Object, 58 | default: undefined 59 | }, 60 | alive: { 61 | type: Boolean, 62 | default: undefined 63 | }, 64 | props: { 65 | type: Object, 66 | default: undefined 67 | }, 68 | attrs: { 69 | type: Object, 70 | default: undefined 71 | }, 72 | replace: { 73 | type: Function, 74 | default: undefined 75 | }, 76 | fetch: { 77 | type: Function, 78 | default: undefined 79 | }, 80 | fiber: { 81 | type: Boolean, 82 | default: undefined 83 | }, 84 | degrade: { 85 | type: Boolean, 86 | default: undefined 87 | }, 88 | plugins: { 89 | type: Array, 90 | default: null 91 | }, 92 | beforeLoad: { 93 | type: Function, 94 | default: null 95 | }, 96 | beforeMount: { 97 | type: Function, 98 | default: null 99 | }, 100 | afterMount: { 101 | type: Function, 102 | default: null 103 | }, 104 | beforeUnmount: { 105 | type: Function, 106 | default: null 107 | }, 108 | afterUnmount: { 109 | type: Function, 110 | default: null 111 | }, 112 | activated: { 113 | type: Function, 114 | default: null 115 | }, 116 | deactivated: { 117 | type: Function, 118 | default: null 119 | } 120 | }, 121 | setup: function setup(props, param) { 122 | var emit = param.emit; 123 | var instance = getCurrentInstance(); 124 | var init = function() { 125 | //微前端初始化方法就可以了 126 | startApp({ 127 | name: props.name, 128 | url: props.url, 129 | el: instance === null || instance === void 0 ? void 0 : instance.refs.wujie, 130 | loading: props.loading, 131 | alive: props.alive, 132 | fetch: props.fetch, 133 | props: props.props, 134 | attrs: props.attrs, 135 | replace: props.replace, 136 | sync: props.sync, 137 | prefix: props.prefix, 138 | fiber: props.fiber, 139 | degrade: props.degrade, 140 | plugins: props.plugins, 141 | beforeLoad: props.beforeLoad, 142 | beforeMount: props.beforeMount, 143 | afterMount: props.afterMount, 144 | beforeUnmount: props.beforeUnmount, 145 | afterUnmount: props.afterUnmount, 146 | activated: props.activated, 147 | deactivated: props.deactivated 148 | }); 149 | }; 150 | watch([ 151 | props.name, 152 | props.url 153 | ], function() { 154 | init(); 155 | }); 156 | var hanlderEmit = function(event) { 157 | for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ 158 | args[_key - 1] = arguments[_key]; 159 | } 160 | emit.apply(void 0, [ 161 | event 162 | ].concat(_toConsumableArray(args))); 163 | }; 164 | onMounted(function() { 165 | bus.$onAll(hanlderEmit); 166 | init(); 167 | }); 168 | onBeforeUnmount(function() { 169 | bus.$offAll(hanlderEmit); 170 | }); 171 | return function() { 172 | return h("div", { 173 | style: { 174 | width: props.width, 175 | height: props.height 176 | }, 177 | ref: "wujie" //方便之后读取 178 | }); 179 | }; 180 | } 181 | }); 182 | wujie.install = function(app) { 183 | app.component("WujieVue", wujie); 184 | }; 185 | export default wujie; 186 | -------------------------------------------------------------------------------- /wujie-vue-setup/index.d.ts: -------------------------------------------------------------------------------- 1 | // import { bus, preloadApp, destroyApp, setupApp } from "wujie"; 2 | import type { App } from 'vue'; 3 | 4 | declare const WujieVue: { 5 | // bus: typeof bus; 6 | // setupApp: typeof setupApp; 7 | // preloadApp: typeof preloadApp; 8 | // destroyApp: typeof destroyApp; 9 | install: (app: App) => void 10 | }; 11 | 12 | export default WujieVue; 13 | 14 | -------------------------------------------------------------------------------- /wujie-vue-setup/lib/index.js: -------------------------------------------------------------------------------- 1 | (function webpackUniversalModuleDefinition(root, factory) { 2 | if(typeof exports === 'object' && typeof module === 'object') 3 | module.exports = factory(require("vue"), require("wujie")); 4 | else if(typeof define === 'function' && define.amd) 5 | define("wujievue", ["vue", "wujie"], factory); 6 | else if(typeof exports === 'object') 7 | exports["wujievue"] = factory(require("vue"), require("wujie")); 8 | else 9 | root["wujievue"] = factory(root["vue"], root["wujie"]); 10 | })(self, (__WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__2__) => { 11 | return /******/ (() => { // webpackBootstrap 12 | /******/ "use strict"; 13 | /******/ var __webpack_modules__ = ([ 14 | /* 0 */, 15 | /* 1 */ 16 | /***/ ((module) => { 17 | 18 | module.exports = __WEBPACK_EXTERNAL_MODULE__1__; 19 | 20 | /***/ }), 21 | /* 2 */ 22 | /***/ ((module) => { 23 | 24 | module.exports = __WEBPACK_EXTERNAL_MODULE__2__; 25 | 26 | /***/ }) 27 | /******/ ]); 28 | /************************************************************************/ 29 | /******/ // The module cache 30 | /******/ var __webpack_module_cache__ = {}; 31 | /******/ 32 | /******/ // The require function 33 | /******/ function __webpack_require__(moduleId) { 34 | /******/ // Check if module is in cache 35 | /******/ var cachedModule = __webpack_module_cache__[moduleId]; 36 | /******/ if (cachedModule !== undefined) { 37 | /******/ return cachedModule.exports; 38 | /******/ } 39 | /******/ // Create a new module (and put it into the cache) 40 | /******/ var module = __webpack_module_cache__[moduleId] = { 41 | /******/ // no module.id needed 42 | /******/ // no module.loaded needed 43 | /******/ exports: {} 44 | /******/ }; 45 | /******/ 46 | /******/ // Execute the module function 47 | /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 48 | /******/ 49 | /******/ // Return the exports of the module 50 | /******/ return module.exports; 51 | /******/ } 52 | /******/ 53 | /************************************************************************/ 54 | /******/ /* webpack/runtime/compat get default export */ 55 | /******/ (() => { 56 | /******/ // getDefaultExport function for compatibility with non-harmony modules 57 | /******/ __webpack_require__.n = (module) => { 58 | /******/ var getter = module && module.__esModule ? 59 | /******/ () => (module['default']) : 60 | /******/ () => (module); 61 | /******/ __webpack_require__.d(getter, { a: getter }); 62 | /******/ return getter; 63 | /******/ }; 64 | /******/ })(); 65 | /******/ 66 | /******/ /* webpack/runtime/define property getters */ 67 | /******/ (() => { 68 | /******/ // define getter functions for harmony exports 69 | /******/ __webpack_require__.d = (exports, definition) => { 70 | /******/ for(var key in definition) { 71 | /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 72 | /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 73 | /******/ } 74 | /******/ } 75 | /******/ }; 76 | /******/ })(); 77 | /******/ 78 | /******/ /* webpack/runtime/hasOwnProperty shorthand */ 79 | /******/ (() => { 80 | /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 81 | /******/ })(); 82 | /******/ 83 | /******/ /* webpack/runtime/make namespace object */ 84 | /******/ (() => { 85 | /******/ // define __esModule on exports 86 | /******/ __webpack_require__.r = (exports) => { 87 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 88 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 89 | /******/ } 90 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); 91 | /******/ }; 92 | /******/ })(); 93 | /******/ 94 | /************************************************************************/ 95 | var __webpack_exports__ = {}; 96 | // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. 97 | (() => { 98 | __webpack_require__.r(__webpack_exports__); 99 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { 100 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 101 | /* harmony export */ }); 102 | /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); 103 | /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); 104 | /* harmony import */ var wujie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); 105 | /* harmony import */ var wujie__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(wujie__WEBPACK_IMPORTED_MODULE_1__); 106 | function _arrayLikeToArray(arr, len) { 107 | if (len == null || len > arr.length) len = arr.length; 108 | for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; 109 | return arr2; 110 | } 111 | function _arrayWithoutHoles(arr) { 112 | if (Array.isArray(arr)) return _arrayLikeToArray(arr); 113 | } 114 | function _iterableToArray(iter) { 115 | if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); 116 | } 117 | function _nonIterableSpread() { 118 | throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 119 | } 120 | function _toConsumableArray(arr) { 121 | return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); 122 | } 123 | function _unsupportedIterableToArray(o, minLen) { 124 | if (!o) return; 125 | if (typeof o === "string") return _arrayLikeToArray(o, minLen); 126 | var n = Object.prototype.toString.call(o).slice(8, -1); 127 | if (n === "Object" && o.constructor) n = o.constructor.name; 128 | if (n === "Map" || n === "Set") return Array.from(n); 129 | if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); 130 | } 131 | 132 | 133 | var wujie = (0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({ 134 | props: { 135 | width: { 136 | type: String, 137 | default: "" 138 | }, 139 | height: { 140 | type: String, 141 | default: "" 142 | }, 143 | name: { 144 | type: String, 145 | default: "", 146 | required: true 147 | }, 148 | loading: { 149 | type: HTMLElement, 150 | default: undefined 151 | }, 152 | url: { 153 | type: String, 154 | default: "", 155 | required: true 156 | }, 157 | sync: { 158 | type: Boolean, 159 | default: undefined 160 | }, 161 | prefix: { 162 | type: Object, 163 | default: undefined 164 | }, 165 | alive: { 166 | type: Boolean, 167 | default: undefined 168 | }, 169 | props: { 170 | type: Object, 171 | default: undefined 172 | }, 173 | attrs: { 174 | type: Object, 175 | default: undefined 176 | }, 177 | replace: { 178 | type: Function, 179 | default: undefined 180 | }, 181 | fetch: { 182 | type: Function, 183 | default: undefined 184 | }, 185 | fiber: { 186 | type: Boolean, 187 | default: undefined 188 | }, 189 | degrade: { 190 | type: Boolean, 191 | default: undefined 192 | }, 193 | plugins: { 194 | type: Array, 195 | default: null 196 | }, 197 | beforeLoad: { 198 | type: Function, 199 | default: null 200 | }, 201 | beforeMount: { 202 | type: Function, 203 | default: null 204 | }, 205 | afterMount: { 206 | type: Function, 207 | default: null 208 | }, 209 | beforeUnmount: { 210 | type: Function, 211 | default: null 212 | }, 213 | afterUnmount: { 214 | type: Function, 215 | default: null 216 | }, 217 | activated: { 218 | type: Function, 219 | default: null 220 | }, 221 | deactivated: { 222 | type: Function, 223 | default: null 224 | } 225 | }, 226 | setup: function setup(props, param) { 227 | var emit = param.emit; 228 | var instance = (0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)(); 229 | var init = function() { 230 | //微前端初始化方法就可以了 231 | (0,wujie__WEBPACK_IMPORTED_MODULE_1__.startApp)({ 232 | name: props.name, 233 | url: props.url, 234 | el: instance === null || instance === void 0 ? void 0 : instance.refs.wujie, 235 | loading: props.loading, 236 | alive: props.alive, 237 | fetch: props.fetch, 238 | props: props.props, 239 | attrs: props.attrs, 240 | replace: props.replace, 241 | sync: props.sync, 242 | prefix: props.prefix, 243 | fiber: props.fiber, 244 | degrade: props.degrade, 245 | plugins: props.plugins, 246 | beforeLoad: props.beforeLoad, 247 | beforeMount: props.beforeMount, 248 | afterMount: props.afterMount, 249 | beforeUnmount: props.beforeUnmount, 250 | afterUnmount: props.afterUnmount, 251 | activated: props.activated, 252 | deactivated: props.deactivated 253 | }); 254 | }; 255 | (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)([ 256 | props.name, 257 | props.url 258 | ], function() { 259 | init(); 260 | }); 261 | var hanlderEmit = function(event) { 262 | for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){ 263 | args[_key - 1] = arguments[_key]; 264 | } 265 | emit.apply(void 0, [ 266 | event 267 | ].concat(_toConsumableArray(args))); 268 | }; 269 | (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function() { 270 | wujie__WEBPACK_IMPORTED_MODULE_1__.bus.$onAll(hanlderEmit); 271 | init(); 272 | }); 273 | (0,vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUnmount)(function() { 274 | wujie__WEBPACK_IMPORTED_MODULE_1__.bus.$offAll(hanlderEmit); 275 | }); 276 | return function() { 277 | return (0,vue__WEBPACK_IMPORTED_MODULE_0__.h)("div", { 278 | style: { 279 | width: props.width, 280 | height: props.height 281 | }, 282 | ref: "wujie" //方便之后读取 283 | }); 284 | }; 285 | } 286 | }); 287 | wujie.install = function(app) { 288 | app.component("WujieVue", wujie); 289 | }; 290 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (wujie); 291 | 292 | })(); 293 | 294 | /******/ return __webpack_exports__; 295 | /******/ })() 296 | ; 297 | }); -------------------------------------------------------------------------------- /wujie-vue-setup/lib/index.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ 2 | -------------------------------------------------------------------------------- /wujie-vue-setup/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wujie-vue-setup", 3 | "version": "0.0.4", 4 | "description": "", 5 | "main": "lib/index.js", 6 | "module": "esm/index.js", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1", 9 | "lib": "webpack", 10 | "esm": "swc src/index.ts -d esm" 11 | }, 12 | "files": [ 13 | "lib", 14 | "esm", 15 | "index.d.ts" 16 | ], 17 | "keywords": [], 18 | "author": "", 19 | "license": "ISC", 20 | "dependencies": { 21 | "wujie": "^1.0.14" 22 | }, 23 | "devDependencies": { 24 | "@swc/cli": "^0.1.62", 25 | "@swc/core": "^1.3.44", 26 | "swc-loader": "^0.2.3", 27 | "ts-loader": "^9.4.2", 28 | "typescript": "^5.0.3", 29 | "vue": "^3.2.47", 30 | "webpack": "^5.77.0", 31 | "webpack-cli": "^5.0.1" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /wujie-vue-setup/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@swc/cli': ^0.1.62 5 | '@swc/core': ^1.3.44 6 | swc-loader: ^0.2.3 7 | ts-loader: ^9.4.2 8 | typescript: ^5.0.3 9 | vue: ^3.2.47 10 | webpack: ^5.77.0 11 | webpack-cli: ^5.0.1 12 | wujie: ^1.0.14 13 | 14 | dependencies: 15 | wujie: 1.0.14 16 | 17 | devDependencies: 18 | '@swc/cli': 0.1.62_@swc+core@1.3.44 19 | '@swc/core': 1.3.44 20 | swc-loader: 0.2.3_ryemh6gyt4zgswc3glqgvlonbm 21 | ts-loader: 9.4.2_pr6wmn5jxhje6zfixj2z2jacrq 22 | typescript: 5.0.3 23 | vue: 3.2.47 24 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 25 | webpack-cli: 5.0.1_webpack@5.77.0 26 | 27 | packages: 28 | 29 | /@babel/helper-string-parser/7.19.4: 30 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} 31 | engines: {node: '>=6.9.0'} 32 | dev: true 33 | 34 | /@babel/helper-validator-identifier/7.19.1: 35 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 36 | engines: {node: '>=6.9.0'} 37 | dev: true 38 | 39 | /@babel/parser/7.21.4: 40 | resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} 41 | engines: {node: '>=6.0.0'} 42 | hasBin: true 43 | dependencies: 44 | '@babel/types': 7.21.4 45 | dev: true 46 | 47 | /@babel/runtime/7.21.0: 48 | resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} 49 | engines: {node: '>=6.9.0'} 50 | dependencies: 51 | regenerator-runtime: 0.13.11 52 | dev: false 53 | 54 | /@babel/types/7.21.4: 55 | resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} 56 | engines: {node: '>=6.9.0'} 57 | dependencies: 58 | '@babel/helper-string-parser': 7.19.4 59 | '@babel/helper-validator-identifier': 7.19.1 60 | to-fast-properties: 2.0.0 61 | dev: true 62 | 63 | /@discoveryjs/json-ext/0.5.7: 64 | resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} 65 | engines: {node: '>=10.0.0'} 66 | dev: true 67 | 68 | /@jridgewell/gen-mapping/0.3.2: 69 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 70 | engines: {node: '>=6.0.0'} 71 | dependencies: 72 | '@jridgewell/set-array': 1.1.2 73 | '@jridgewell/sourcemap-codec': 1.4.14 74 | '@jridgewell/trace-mapping': 0.3.17 75 | dev: true 76 | 77 | /@jridgewell/resolve-uri/3.1.0: 78 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 79 | engines: {node: '>=6.0.0'} 80 | dev: true 81 | 82 | /@jridgewell/set-array/1.1.2: 83 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 84 | engines: {node: '>=6.0.0'} 85 | dev: true 86 | 87 | /@jridgewell/source-map/0.3.2: 88 | resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} 89 | dependencies: 90 | '@jridgewell/gen-mapping': 0.3.2 91 | '@jridgewell/trace-mapping': 0.3.17 92 | dev: true 93 | 94 | /@jridgewell/sourcemap-codec/1.4.14: 95 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 96 | dev: true 97 | 98 | /@jridgewell/trace-mapping/0.3.17: 99 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 100 | dependencies: 101 | '@jridgewell/resolve-uri': 3.1.0 102 | '@jridgewell/sourcemap-codec': 1.4.14 103 | dev: true 104 | 105 | /@mole-inc/bin-wrapper/8.0.1: 106 | resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} 107 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 108 | dependencies: 109 | bin-check: 4.1.0 110 | bin-version-check: 5.0.0 111 | content-disposition: 0.5.4 112 | ext-name: 5.0.0 113 | file-type: 17.1.6 114 | filenamify: 5.1.1 115 | got: 11.8.6 116 | os-filter-obj: 2.0.0 117 | dev: true 118 | 119 | /@nodelib/fs.scandir/2.1.5: 120 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 121 | engines: {node: '>= 8'} 122 | dependencies: 123 | '@nodelib/fs.stat': 2.0.5 124 | run-parallel: 1.2.0 125 | dev: true 126 | 127 | /@nodelib/fs.stat/2.0.5: 128 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 129 | engines: {node: '>= 8'} 130 | dev: true 131 | 132 | /@nodelib/fs.walk/1.2.8: 133 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 134 | engines: {node: '>= 8'} 135 | dependencies: 136 | '@nodelib/fs.scandir': 2.1.5 137 | fastq: 1.15.0 138 | dev: true 139 | 140 | /@sindresorhus/is/4.6.0: 141 | resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} 142 | engines: {node: '>=10'} 143 | dev: true 144 | 145 | /@swc/cli/0.1.62_@swc+core@1.3.44: 146 | resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==} 147 | engines: {node: '>= 12.13'} 148 | hasBin: true 149 | peerDependencies: 150 | '@swc/core': ^1.2.66 151 | chokidar: ^3.5.1 152 | peerDependenciesMeta: 153 | chokidar: 154 | optional: true 155 | dependencies: 156 | '@mole-inc/bin-wrapper': 8.0.1 157 | '@swc/core': 1.3.44 158 | commander: 7.2.0 159 | fast-glob: 3.2.12 160 | semver: 7.3.8 161 | slash: 3.0.0 162 | source-map: 0.7.4 163 | dev: true 164 | 165 | /@swc/core-darwin-arm64/1.3.44: 166 | resolution: {integrity: sha512-Y+oVsCjXUPvr3D9YLuB1gjP84TseM/CRkbPNrf+3JXQhsPEkgxdIdFP1cl/obeqMQrRgPpvSfK+TOvGuOuV22g==} 167 | engines: {node: '>=10'} 168 | cpu: [arm64] 169 | os: [darwin] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@swc/core-darwin-x64/1.3.44: 175 | resolution: {integrity: sha512-bM0IKBjlSD0yHJbd7bE3il5fTu3oUjUO2zjLkzfIx6tiqbmDyvOX8adaSqse9N+d8Ip9p26b5Vo7pMHq0POGkg==} 176 | engines: {node: '>=10'} 177 | cpu: [x64] 178 | os: [darwin] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@swc/core-linux-arm-gnueabihf/1.3.44: 184 | resolution: {integrity: sha512-D4lfVwCbkWscDTb6btb89+bN0kgvjGBPfOmcvih7nY5hxaorwvp+PefkYAhFw8vKmL92lrnWUFNiTemVFN4bxg==} 185 | engines: {node: '>=10'} 186 | cpu: [arm] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@swc/core-linux-arm64-gnu/1.3.44: 193 | resolution: {integrity: sha512-muExPTrN26MFmtO+5uffkH5v4lmd8GdmyWvlC2tL95h7o9genTIQyr7kcSepGZrDe4fM9G6++5YfENhUpXHo+g==} 194 | engines: {node: '>=10'} 195 | cpu: [arm64] 196 | os: [linux] 197 | libc: [glibc] 198 | requiresBuild: true 199 | dev: true 200 | optional: true 201 | 202 | /@swc/core-linux-arm64-musl/1.3.44: 203 | resolution: {integrity: sha512-MY1wY3kSIosjJKKCfFGniJFFVkt3oPvJLN4Dlj+bMgAt3O7anm8lGbyLqUpJ1Ep4rTsJj7ObO06DQiSWp4Fhcw==} 204 | engines: {node: '>=10'} 205 | cpu: [arm64] 206 | os: [linux] 207 | libc: [musl] 208 | requiresBuild: true 209 | dev: true 210 | optional: true 211 | 212 | /@swc/core-linux-x64-gnu/1.3.44: 213 | resolution: {integrity: sha512-xV4pDxJM06g0yUDTA22ZHgonzGqf/poIlgADRmEkx9cWWm5qLRhmWrrkVX1xZVvdlcXj1ERnia/UkvrDux96lg==} 214 | engines: {node: '>=10'} 215 | cpu: [x64] 216 | os: [linux] 217 | libc: [glibc] 218 | requiresBuild: true 219 | dev: true 220 | optional: true 221 | 222 | /@swc/core-linux-x64-musl/1.3.44: 223 | resolution: {integrity: sha512-NJnnlE8vCkKHoo/wIaoywNN/01vNsvhKUjBgUx865sUM/XWAIanpbV41yfdEkC+Iwd+/zB3ZZnOYql3b+Nn8aQ==} 224 | engines: {node: '>=10'} 225 | cpu: [x64] 226 | os: [linux] 227 | libc: [musl] 228 | requiresBuild: true 229 | dev: true 230 | optional: true 231 | 232 | /@swc/core-win32-arm64-msvc/1.3.44: 233 | resolution: {integrity: sha512-/xOtjZhX25GEOPLN55icjj9E061DDH7G0A9HfUAEilURgBbvm6bIlqK+t8mOKK0tOsDoHftdTBRkYhTAqUtakQ==} 234 | engines: {node: '>=10'} 235 | cpu: [arm64] 236 | os: [win32] 237 | requiresBuild: true 238 | dev: true 239 | optional: true 240 | 241 | /@swc/core-win32-ia32-msvc/1.3.44: 242 | resolution: {integrity: sha512-uKTAWQuMEW1gJnl8F3eiz3kdk8CiaR5dMWWlGbHIq6dRbur2hoKaEnINR4UqkvvAhhY1YB0Xr5DV1H986Xu2EA==} 243 | engines: {node: '>=10'} 244 | cpu: [ia32] 245 | os: [win32] 246 | requiresBuild: true 247 | dev: true 248 | optional: true 249 | 250 | /@swc/core-win32-x64-msvc/1.3.44: 251 | resolution: {integrity: sha512-D9fBRhr44cK4YIKFikpktyUDLkZgVj0ISaSl8IjiTvjqTrE/9+E+dzTNHULn5tc3lHVLLxyVwMjJRr2G0D4O6w==} 252 | engines: {node: '>=10'} 253 | cpu: [x64] 254 | os: [win32] 255 | requiresBuild: true 256 | dev: true 257 | optional: true 258 | 259 | /@swc/core/1.3.44: 260 | resolution: {integrity: sha512-RC25C8nxOCdfGS//F9Q8aHKx4XoCsxvgO+sSUhvt7zDz1Y2ruVUTu2UOH0VeE0WkA8j6oEZH+xH2SUfDUkxXdA==} 261 | engines: {node: '>=10'} 262 | requiresBuild: true 263 | optionalDependencies: 264 | '@swc/core-darwin-arm64': 1.3.44 265 | '@swc/core-darwin-x64': 1.3.44 266 | '@swc/core-linux-arm-gnueabihf': 1.3.44 267 | '@swc/core-linux-arm64-gnu': 1.3.44 268 | '@swc/core-linux-arm64-musl': 1.3.44 269 | '@swc/core-linux-x64-gnu': 1.3.44 270 | '@swc/core-linux-x64-musl': 1.3.44 271 | '@swc/core-win32-arm64-msvc': 1.3.44 272 | '@swc/core-win32-ia32-msvc': 1.3.44 273 | '@swc/core-win32-x64-msvc': 1.3.44 274 | dev: true 275 | 276 | /@szmarczak/http-timer/4.0.6: 277 | resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} 278 | engines: {node: '>=10'} 279 | dependencies: 280 | defer-to-connect: 2.0.1 281 | dev: true 282 | 283 | /@tokenizer/token/0.3.0: 284 | resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} 285 | dev: true 286 | 287 | /@types/cacheable-request/6.0.3: 288 | resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} 289 | dependencies: 290 | '@types/http-cache-semantics': 4.0.1 291 | '@types/keyv': 3.1.4 292 | '@types/node': 18.15.11 293 | '@types/responselike': 1.0.0 294 | dev: true 295 | 296 | /@types/eslint-scope/3.7.4: 297 | resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} 298 | dependencies: 299 | '@types/eslint': 8.37.0 300 | '@types/estree': 0.0.51 301 | dev: true 302 | 303 | /@types/eslint/8.37.0: 304 | resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==} 305 | dependencies: 306 | '@types/estree': 0.0.51 307 | '@types/json-schema': 7.0.11 308 | dev: true 309 | 310 | /@types/estree/0.0.51: 311 | resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} 312 | dev: true 313 | 314 | /@types/http-cache-semantics/4.0.1: 315 | resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} 316 | dev: true 317 | 318 | /@types/json-schema/7.0.11: 319 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 320 | dev: true 321 | 322 | /@types/keyv/3.1.4: 323 | resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} 324 | dependencies: 325 | '@types/node': 18.15.11 326 | dev: true 327 | 328 | /@types/node/18.15.11: 329 | resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} 330 | dev: true 331 | 332 | /@types/responselike/1.0.0: 333 | resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} 334 | dependencies: 335 | '@types/node': 18.15.11 336 | dev: true 337 | 338 | /@vue/compiler-core/3.2.47: 339 | resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} 340 | dependencies: 341 | '@babel/parser': 7.21.4 342 | '@vue/shared': 3.2.47 343 | estree-walker: 2.0.2 344 | source-map: 0.6.1 345 | dev: true 346 | 347 | /@vue/compiler-dom/3.2.47: 348 | resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} 349 | dependencies: 350 | '@vue/compiler-core': 3.2.47 351 | '@vue/shared': 3.2.47 352 | dev: true 353 | 354 | /@vue/compiler-sfc/3.2.47: 355 | resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} 356 | dependencies: 357 | '@babel/parser': 7.21.4 358 | '@vue/compiler-core': 3.2.47 359 | '@vue/compiler-dom': 3.2.47 360 | '@vue/compiler-ssr': 3.2.47 361 | '@vue/reactivity-transform': 3.2.47 362 | '@vue/shared': 3.2.47 363 | estree-walker: 2.0.2 364 | magic-string: 0.25.9 365 | postcss: 8.4.21 366 | source-map: 0.6.1 367 | dev: true 368 | 369 | /@vue/compiler-ssr/3.2.47: 370 | resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} 371 | dependencies: 372 | '@vue/compiler-dom': 3.2.47 373 | '@vue/shared': 3.2.47 374 | dev: true 375 | 376 | /@vue/reactivity-transform/3.2.47: 377 | resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} 378 | dependencies: 379 | '@babel/parser': 7.21.4 380 | '@vue/compiler-core': 3.2.47 381 | '@vue/shared': 3.2.47 382 | estree-walker: 2.0.2 383 | magic-string: 0.25.9 384 | dev: true 385 | 386 | /@vue/reactivity/3.2.47: 387 | resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} 388 | dependencies: 389 | '@vue/shared': 3.2.47 390 | dev: true 391 | 392 | /@vue/runtime-core/3.2.47: 393 | resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} 394 | dependencies: 395 | '@vue/reactivity': 3.2.47 396 | '@vue/shared': 3.2.47 397 | dev: true 398 | 399 | /@vue/runtime-dom/3.2.47: 400 | resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} 401 | dependencies: 402 | '@vue/runtime-core': 3.2.47 403 | '@vue/shared': 3.2.47 404 | csstype: 2.6.21 405 | dev: true 406 | 407 | /@vue/server-renderer/3.2.47_vue@3.2.47: 408 | resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} 409 | peerDependencies: 410 | vue: 3.2.47 411 | dependencies: 412 | '@vue/compiler-ssr': 3.2.47 413 | '@vue/shared': 3.2.47 414 | vue: 3.2.47 415 | dev: true 416 | 417 | /@vue/shared/3.2.47: 418 | resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} 419 | dev: true 420 | 421 | /@webassemblyjs/ast/1.11.1: 422 | resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} 423 | dependencies: 424 | '@webassemblyjs/helper-numbers': 1.11.1 425 | '@webassemblyjs/helper-wasm-bytecode': 1.11.1 426 | dev: true 427 | 428 | /@webassemblyjs/floating-point-hex-parser/1.11.1: 429 | resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} 430 | dev: true 431 | 432 | /@webassemblyjs/helper-api-error/1.11.1: 433 | resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} 434 | dev: true 435 | 436 | /@webassemblyjs/helper-buffer/1.11.1: 437 | resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} 438 | dev: true 439 | 440 | /@webassemblyjs/helper-numbers/1.11.1: 441 | resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} 442 | dependencies: 443 | '@webassemblyjs/floating-point-hex-parser': 1.11.1 444 | '@webassemblyjs/helper-api-error': 1.11.1 445 | '@xtuc/long': 4.2.2 446 | dev: true 447 | 448 | /@webassemblyjs/helper-wasm-bytecode/1.11.1: 449 | resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} 450 | dev: true 451 | 452 | /@webassemblyjs/helper-wasm-section/1.11.1: 453 | resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} 454 | dependencies: 455 | '@webassemblyjs/ast': 1.11.1 456 | '@webassemblyjs/helper-buffer': 1.11.1 457 | '@webassemblyjs/helper-wasm-bytecode': 1.11.1 458 | '@webassemblyjs/wasm-gen': 1.11.1 459 | dev: true 460 | 461 | /@webassemblyjs/ieee754/1.11.1: 462 | resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} 463 | dependencies: 464 | '@xtuc/ieee754': 1.2.0 465 | dev: true 466 | 467 | /@webassemblyjs/leb128/1.11.1: 468 | resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} 469 | dependencies: 470 | '@xtuc/long': 4.2.2 471 | dev: true 472 | 473 | /@webassemblyjs/utf8/1.11.1: 474 | resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} 475 | dev: true 476 | 477 | /@webassemblyjs/wasm-edit/1.11.1: 478 | resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} 479 | dependencies: 480 | '@webassemblyjs/ast': 1.11.1 481 | '@webassemblyjs/helper-buffer': 1.11.1 482 | '@webassemblyjs/helper-wasm-bytecode': 1.11.1 483 | '@webassemblyjs/helper-wasm-section': 1.11.1 484 | '@webassemblyjs/wasm-gen': 1.11.1 485 | '@webassemblyjs/wasm-opt': 1.11.1 486 | '@webassemblyjs/wasm-parser': 1.11.1 487 | '@webassemblyjs/wast-printer': 1.11.1 488 | dev: true 489 | 490 | /@webassemblyjs/wasm-gen/1.11.1: 491 | resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} 492 | dependencies: 493 | '@webassemblyjs/ast': 1.11.1 494 | '@webassemblyjs/helper-wasm-bytecode': 1.11.1 495 | '@webassemblyjs/ieee754': 1.11.1 496 | '@webassemblyjs/leb128': 1.11.1 497 | '@webassemblyjs/utf8': 1.11.1 498 | dev: true 499 | 500 | /@webassemblyjs/wasm-opt/1.11.1: 501 | resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} 502 | dependencies: 503 | '@webassemblyjs/ast': 1.11.1 504 | '@webassemblyjs/helper-buffer': 1.11.1 505 | '@webassemblyjs/wasm-gen': 1.11.1 506 | '@webassemblyjs/wasm-parser': 1.11.1 507 | dev: true 508 | 509 | /@webassemblyjs/wasm-parser/1.11.1: 510 | resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} 511 | dependencies: 512 | '@webassemblyjs/ast': 1.11.1 513 | '@webassemblyjs/helper-api-error': 1.11.1 514 | '@webassemblyjs/helper-wasm-bytecode': 1.11.1 515 | '@webassemblyjs/ieee754': 1.11.1 516 | '@webassemblyjs/leb128': 1.11.1 517 | '@webassemblyjs/utf8': 1.11.1 518 | dev: true 519 | 520 | /@webassemblyjs/wast-printer/1.11.1: 521 | resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} 522 | dependencies: 523 | '@webassemblyjs/ast': 1.11.1 524 | '@xtuc/long': 4.2.2 525 | dev: true 526 | 527 | /@webpack-cli/configtest/2.0.1_kdcgy6q6iscqqjdxycyax7fave: 528 | resolution: {integrity: sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==} 529 | engines: {node: '>=14.15.0'} 530 | peerDependencies: 531 | webpack: 5.x.x 532 | webpack-cli: 5.x.x 533 | dependencies: 534 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 535 | webpack-cli: 5.0.1_webpack@5.77.0 536 | dev: true 537 | 538 | /@webpack-cli/info/2.0.1_kdcgy6q6iscqqjdxycyax7fave: 539 | resolution: {integrity: sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==} 540 | engines: {node: '>=14.15.0'} 541 | peerDependencies: 542 | webpack: 5.x.x 543 | webpack-cli: 5.x.x 544 | dependencies: 545 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 546 | webpack-cli: 5.0.1_webpack@5.77.0 547 | dev: true 548 | 549 | /@webpack-cli/serve/2.0.1_kdcgy6q6iscqqjdxycyax7fave: 550 | resolution: {integrity: sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==} 551 | engines: {node: '>=14.15.0'} 552 | peerDependencies: 553 | webpack: 5.x.x 554 | webpack-cli: 5.x.x 555 | webpack-dev-server: '*' 556 | peerDependenciesMeta: 557 | webpack-dev-server: 558 | optional: true 559 | dependencies: 560 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 561 | webpack-cli: 5.0.1_webpack@5.77.0 562 | dev: true 563 | 564 | /@xtuc/ieee754/1.2.0: 565 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 566 | dev: true 567 | 568 | /@xtuc/long/4.2.2: 569 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 570 | dev: true 571 | 572 | /acorn-import-assertions/1.8.0_acorn@8.8.2: 573 | resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} 574 | peerDependencies: 575 | acorn: ^8 576 | dependencies: 577 | acorn: 8.8.2 578 | dev: true 579 | 580 | /acorn/8.8.2: 581 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 582 | engines: {node: '>=0.4.0'} 583 | hasBin: true 584 | dev: true 585 | 586 | /ajv-keywords/3.5.2_ajv@6.12.6: 587 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} 588 | peerDependencies: 589 | ajv: ^6.9.1 590 | dependencies: 591 | ajv: 6.12.6 592 | dev: true 593 | 594 | /ajv/6.12.6: 595 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 596 | dependencies: 597 | fast-deep-equal: 3.1.3 598 | fast-json-stable-stringify: 2.1.0 599 | json-schema-traverse: 0.4.1 600 | uri-js: 4.4.1 601 | dev: true 602 | 603 | /ansi-styles/4.3.0: 604 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 605 | engines: {node: '>=8'} 606 | dependencies: 607 | color-convert: 2.0.1 608 | dev: true 609 | 610 | /arch/2.2.0: 611 | resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} 612 | dev: true 613 | 614 | /bin-check/4.1.0: 615 | resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} 616 | engines: {node: '>=4'} 617 | dependencies: 618 | execa: 0.7.0 619 | executable: 4.1.1 620 | dev: true 621 | 622 | /bin-version-check/5.0.0: 623 | resolution: {integrity: sha512-Q3FMQnS5eZmrBGqmDXLs4dbAn/f+52voP6ykJYmweSA60t6DyH4UTSwZhtbK5UH+LBoWvDljILUQMLRUtsynsA==} 624 | engines: {node: '>=12'} 625 | dependencies: 626 | bin-version: 6.0.0 627 | semver: 7.3.8 628 | semver-truncate: 2.0.0 629 | dev: true 630 | 631 | /bin-version/6.0.0: 632 | resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==} 633 | engines: {node: '>=12'} 634 | dependencies: 635 | execa: 5.1.1 636 | find-versions: 5.1.0 637 | dev: true 638 | 639 | /braces/3.0.2: 640 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 641 | engines: {node: '>=8'} 642 | dependencies: 643 | fill-range: 7.0.1 644 | dev: true 645 | 646 | /browserslist/4.21.5: 647 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 648 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 649 | hasBin: true 650 | dependencies: 651 | caniuse-lite: 1.0.30001473 652 | electron-to-chromium: 1.4.348 653 | node-releases: 2.0.10 654 | update-browserslist-db: 1.0.10_browserslist@4.21.5 655 | dev: true 656 | 657 | /buffer-from/1.1.2: 658 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 659 | dev: true 660 | 661 | /cacheable-lookup/5.0.4: 662 | resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} 663 | engines: {node: '>=10.6.0'} 664 | dev: true 665 | 666 | /cacheable-request/7.0.2: 667 | resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} 668 | engines: {node: '>=8'} 669 | dependencies: 670 | clone-response: 1.0.3 671 | get-stream: 5.2.0 672 | http-cache-semantics: 4.1.1 673 | keyv: 4.5.2 674 | lowercase-keys: 2.0.0 675 | normalize-url: 6.1.0 676 | responselike: 2.0.1 677 | dev: true 678 | 679 | /caniuse-lite/1.0.30001473: 680 | resolution: {integrity: sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg==} 681 | dev: true 682 | 683 | /chalk/4.1.2: 684 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 685 | engines: {node: '>=10'} 686 | dependencies: 687 | ansi-styles: 4.3.0 688 | supports-color: 7.2.0 689 | dev: true 690 | 691 | /chrome-trace-event/1.0.3: 692 | resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} 693 | engines: {node: '>=6.0'} 694 | dev: true 695 | 696 | /clone-deep/4.0.1: 697 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} 698 | engines: {node: '>=6'} 699 | dependencies: 700 | is-plain-object: 2.0.4 701 | kind-of: 6.0.3 702 | shallow-clone: 3.0.1 703 | dev: true 704 | 705 | /clone-response/1.0.3: 706 | resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} 707 | dependencies: 708 | mimic-response: 1.0.1 709 | dev: true 710 | 711 | /color-convert/2.0.1: 712 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 713 | engines: {node: '>=7.0.0'} 714 | dependencies: 715 | color-name: 1.1.4 716 | dev: true 717 | 718 | /color-name/1.1.4: 719 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 720 | dev: true 721 | 722 | /colorette/2.0.19: 723 | resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} 724 | dev: true 725 | 726 | /commander/2.20.3: 727 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 728 | dev: true 729 | 730 | /commander/7.2.0: 731 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 732 | engines: {node: '>= 10'} 733 | dev: true 734 | 735 | /commander/9.5.0: 736 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 737 | engines: {node: ^12.20.0 || >=14} 738 | dev: true 739 | 740 | /content-disposition/0.5.4: 741 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 742 | engines: {node: '>= 0.6'} 743 | dependencies: 744 | safe-buffer: 5.2.1 745 | dev: true 746 | 747 | /cross-spawn/5.1.0: 748 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 749 | dependencies: 750 | lru-cache: 4.1.5 751 | shebang-command: 1.2.0 752 | which: 1.3.1 753 | dev: true 754 | 755 | /cross-spawn/7.0.3: 756 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 757 | engines: {node: '>= 8'} 758 | dependencies: 759 | path-key: 3.1.1 760 | shebang-command: 2.0.0 761 | which: 2.0.2 762 | dev: true 763 | 764 | /csstype/2.6.21: 765 | resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} 766 | dev: true 767 | 768 | /decompress-response/6.0.0: 769 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 770 | engines: {node: '>=10'} 771 | dependencies: 772 | mimic-response: 3.1.0 773 | dev: true 774 | 775 | /defer-to-connect/2.0.1: 776 | resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} 777 | engines: {node: '>=10'} 778 | dev: true 779 | 780 | /electron-to-chromium/1.4.348: 781 | resolution: {integrity: sha512-gM7TdwuG3amns/1rlgxMbeeyNoBFPa+4Uu0c7FeROWh4qWmvSOnvcslKmWy51ggLKZ2n/F/4i2HJ+PVNxH9uCQ==} 782 | dev: true 783 | 784 | /end-of-stream/1.4.4: 785 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 786 | dependencies: 787 | once: 1.4.0 788 | dev: true 789 | 790 | /enhanced-resolve/5.12.0: 791 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} 792 | engines: {node: '>=10.13.0'} 793 | dependencies: 794 | graceful-fs: 4.2.11 795 | tapable: 2.2.1 796 | dev: true 797 | 798 | /envinfo/7.8.1: 799 | resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} 800 | engines: {node: '>=4'} 801 | hasBin: true 802 | dev: true 803 | 804 | /es-module-lexer/0.9.3: 805 | resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} 806 | dev: true 807 | 808 | /escalade/3.1.1: 809 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 810 | engines: {node: '>=6'} 811 | dev: true 812 | 813 | /escape-string-regexp/5.0.0: 814 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 815 | engines: {node: '>=12'} 816 | dev: true 817 | 818 | /eslint-scope/5.1.1: 819 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 820 | engines: {node: '>=8.0.0'} 821 | dependencies: 822 | esrecurse: 4.3.0 823 | estraverse: 4.3.0 824 | dev: true 825 | 826 | /esrecurse/4.3.0: 827 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 828 | engines: {node: '>=4.0'} 829 | dependencies: 830 | estraverse: 5.3.0 831 | dev: true 832 | 833 | /estraverse/4.3.0: 834 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 835 | engines: {node: '>=4.0'} 836 | dev: true 837 | 838 | /estraverse/5.3.0: 839 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 840 | engines: {node: '>=4.0'} 841 | dev: true 842 | 843 | /estree-walker/2.0.2: 844 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 845 | dev: true 846 | 847 | /events/3.3.0: 848 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 849 | engines: {node: '>=0.8.x'} 850 | dev: true 851 | 852 | /execa/0.7.0: 853 | resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} 854 | engines: {node: '>=4'} 855 | dependencies: 856 | cross-spawn: 5.1.0 857 | get-stream: 3.0.0 858 | is-stream: 1.1.0 859 | npm-run-path: 2.0.2 860 | p-finally: 1.0.0 861 | signal-exit: 3.0.7 862 | strip-eof: 1.0.0 863 | dev: true 864 | 865 | /execa/5.1.1: 866 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 867 | engines: {node: '>=10'} 868 | dependencies: 869 | cross-spawn: 7.0.3 870 | get-stream: 6.0.1 871 | human-signals: 2.1.0 872 | is-stream: 2.0.1 873 | merge-stream: 2.0.0 874 | npm-run-path: 4.0.1 875 | onetime: 5.1.2 876 | signal-exit: 3.0.7 877 | strip-final-newline: 2.0.0 878 | dev: true 879 | 880 | /executable/4.1.1: 881 | resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} 882 | engines: {node: '>=4'} 883 | dependencies: 884 | pify: 2.3.0 885 | dev: true 886 | 887 | /ext-list/2.2.2: 888 | resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} 889 | engines: {node: '>=0.10.0'} 890 | dependencies: 891 | mime-db: 1.52.0 892 | dev: true 893 | 894 | /ext-name/5.0.0: 895 | resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} 896 | engines: {node: '>=4'} 897 | dependencies: 898 | ext-list: 2.2.2 899 | sort-keys-length: 1.0.1 900 | dev: true 901 | 902 | /fast-deep-equal/3.1.3: 903 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 904 | dev: true 905 | 906 | /fast-glob/3.2.12: 907 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 908 | engines: {node: '>=8.6.0'} 909 | dependencies: 910 | '@nodelib/fs.stat': 2.0.5 911 | '@nodelib/fs.walk': 1.2.8 912 | glob-parent: 5.1.2 913 | merge2: 1.4.1 914 | micromatch: 4.0.5 915 | dev: true 916 | 917 | /fast-json-stable-stringify/2.1.0: 918 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 919 | dev: true 920 | 921 | /fastest-levenshtein/1.0.16: 922 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} 923 | engines: {node: '>= 4.9.1'} 924 | dev: true 925 | 926 | /fastq/1.15.0: 927 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 928 | dependencies: 929 | reusify: 1.0.4 930 | dev: true 931 | 932 | /file-type/17.1.6: 933 | resolution: {integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==} 934 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 935 | dependencies: 936 | readable-web-to-node-stream: 3.0.2 937 | strtok3: 7.0.0 938 | token-types: 5.0.1 939 | dev: true 940 | 941 | /filename-reserved-regex/3.0.0: 942 | resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} 943 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 944 | dev: true 945 | 946 | /filenamify/5.1.1: 947 | resolution: {integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==} 948 | engines: {node: '>=12.20'} 949 | dependencies: 950 | filename-reserved-regex: 3.0.0 951 | strip-outer: 2.0.0 952 | trim-repeated: 2.0.0 953 | dev: true 954 | 955 | /fill-range/7.0.1: 956 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 957 | engines: {node: '>=8'} 958 | dependencies: 959 | to-regex-range: 5.0.1 960 | dev: true 961 | 962 | /find-up/4.1.0: 963 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 964 | engines: {node: '>=8'} 965 | dependencies: 966 | locate-path: 5.0.0 967 | path-exists: 4.0.0 968 | dev: true 969 | 970 | /find-versions/5.1.0: 971 | resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} 972 | engines: {node: '>=12'} 973 | dependencies: 974 | semver-regex: 4.0.5 975 | dev: true 976 | 977 | /function-bind/1.1.1: 978 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 979 | dev: true 980 | 981 | /get-stream/3.0.0: 982 | resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} 983 | engines: {node: '>=4'} 984 | dev: true 985 | 986 | /get-stream/5.2.0: 987 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 988 | engines: {node: '>=8'} 989 | dependencies: 990 | pump: 3.0.0 991 | dev: true 992 | 993 | /get-stream/6.0.1: 994 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 995 | engines: {node: '>=10'} 996 | dev: true 997 | 998 | /glob-parent/5.1.2: 999 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1000 | engines: {node: '>= 6'} 1001 | dependencies: 1002 | is-glob: 4.0.3 1003 | dev: true 1004 | 1005 | /glob-to-regexp/0.4.1: 1006 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1007 | dev: true 1008 | 1009 | /got/11.8.6: 1010 | resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} 1011 | engines: {node: '>=10.19.0'} 1012 | dependencies: 1013 | '@sindresorhus/is': 4.6.0 1014 | '@szmarczak/http-timer': 4.0.6 1015 | '@types/cacheable-request': 6.0.3 1016 | '@types/responselike': 1.0.0 1017 | cacheable-lookup: 5.0.4 1018 | cacheable-request: 7.0.2 1019 | decompress-response: 6.0.0 1020 | http2-wrapper: 1.0.3 1021 | lowercase-keys: 2.0.0 1022 | p-cancelable: 2.1.1 1023 | responselike: 2.0.1 1024 | dev: true 1025 | 1026 | /graceful-fs/4.2.11: 1027 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1028 | dev: true 1029 | 1030 | /has-flag/4.0.0: 1031 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1032 | engines: {node: '>=8'} 1033 | dev: true 1034 | 1035 | /has/1.0.3: 1036 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1037 | engines: {node: '>= 0.4.0'} 1038 | dependencies: 1039 | function-bind: 1.1.1 1040 | dev: true 1041 | 1042 | /http-cache-semantics/4.1.1: 1043 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 1044 | dev: true 1045 | 1046 | /http2-wrapper/1.0.3: 1047 | resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} 1048 | engines: {node: '>=10.19.0'} 1049 | dependencies: 1050 | quick-lru: 5.1.1 1051 | resolve-alpn: 1.2.1 1052 | dev: true 1053 | 1054 | /human-signals/2.1.0: 1055 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1056 | engines: {node: '>=10.17.0'} 1057 | dev: true 1058 | 1059 | /ieee754/1.2.1: 1060 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1061 | dev: true 1062 | 1063 | /import-local/3.1.0: 1064 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} 1065 | engines: {node: '>=8'} 1066 | hasBin: true 1067 | dependencies: 1068 | pkg-dir: 4.2.0 1069 | resolve-cwd: 3.0.0 1070 | dev: true 1071 | 1072 | /inherits/2.0.4: 1073 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1074 | dev: true 1075 | 1076 | /interpret/3.1.1: 1077 | resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} 1078 | engines: {node: '>=10.13.0'} 1079 | dev: true 1080 | 1081 | /is-core-module/2.11.0: 1082 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1083 | dependencies: 1084 | has: 1.0.3 1085 | dev: true 1086 | 1087 | /is-extglob/2.1.1: 1088 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1089 | engines: {node: '>=0.10.0'} 1090 | dev: true 1091 | 1092 | /is-glob/4.0.3: 1093 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1094 | engines: {node: '>=0.10.0'} 1095 | dependencies: 1096 | is-extglob: 2.1.1 1097 | dev: true 1098 | 1099 | /is-number/7.0.0: 1100 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1101 | engines: {node: '>=0.12.0'} 1102 | dev: true 1103 | 1104 | /is-plain-obj/1.1.0: 1105 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1106 | engines: {node: '>=0.10.0'} 1107 | dev: true 1108 | 1109 | /is-plain-object/2.0.4: 1110 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 1111 | engines: {node: '>=0.10.0'} 1112 | dependencies: 1113 | isobject: 3.0.1 1114 | dev: true 1115 | 1116 | /is-stream/1.1.0: 1117 | resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} 1118 | engines: {node: '>=0.10.0'} 1119 | dev: true 1120 | 1121 | /is-stream/2.0.1: 1122 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1123 | engines: {node: '>=8'} 1124 | dev: true 1125 | 1126 | /isexe/2.0.0: 1127 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1128 | dev: true 1129 | 1130 | /isobject/3.0.1: 1131 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 1132 | engines: {node: '>=0.10.0'} 1133 | dev: true 1134 | 1135 | /jest-worker/27.5.1: 1136 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1137 | engines: {node: '>= 10.13.0'} 1138 | dependencies: 1139 | '@types/node': 18.15.11 1140 | merge-stream: 2.0.0 1141 | supports-color: 8.1.1 1142 | dev: true 1143 | 1144 | /json-buffer/3.0.1: 1145 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1146 | dev: true 1147 | 1148 | /json-parse-even-better-errors/2.3.1: 1149 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1150 | dev: true 1151 | 1152 | /json-schema-traverse/0.4.1: 1153 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1154 | dev: true 1155 | 1156 | /keyv/4.5.2: 1157 | resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} 1158 | dependencies: 1159 | json-buffer: 3.0.1 1160 | dev: true 1161 | 1162 | /kind-of/6.0.3: 1163 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1164 | engines: {node: '>=0.10.0'} 1165 | dev: true 1166 | 1167 | /loader-runner/4.3.0: 1168 | resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} 1169 | engines: {node: '>=6.11.5'} 1170 | dev: true 1171 | 1172 | /locate-path/5.0.0: 1173 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1174 | engines: {node: '>=8'} 1175 | dependencies: 1176 | p-locate: 4.1.0 1177 | dev: true 1178 | 1179 | /lowercase-keys/2.0.0: 1180 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 1181 | engines: {node: '>=8'} 1182 | dev: true 1183 | 1184 | /lru-cache/4.1.5: 1185 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1186 | dependencies: 1187 | pseudomap: 1.0.2 1188 | yallist: 2.1.2 1189 | dev: true 1190 | 1191 | /lru-cache/6.0.0: 1192 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1193 | engines: {node: '>=10'} 1194 | dependencies: 1195 | yallist: 4.0.0 1196 | dev: true 1197 | 1198 | /magic-string/0.25.9: 1199 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1200 | dependencies: 1201 | sourcemap-codec: 1.4.8 1202 | dev: true 1203 | 1204 | /merge-stream/2.0.0: 1205 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1206 | dev: true 1207 | 1208 | /merge2/1.4.1: 1209 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1210 | engines: {node: '>= 8'} 1211 | dev: true 1212 | 1213 | /micromatch/4.0.5: 1214 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1215 | engines: {node: '>=8.6'} 1216 | dependencies: 1217 | braces: 3.0.2 1218 | picomatch: 2.3.1 1219 | dev: true 1220 | 1221 | /mime-db/1.52.0: 1222 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1223 | engines: {node: '>= 0.6'} 1224 | dev: true 1225 | 1226 | /mime-types/2.1.35: 1227 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1228 | engines: {node: '>= 0.6'} 1229 | dependencies: 1230 | mime-db: 1.52.0 1231 | dev: true 1232 | 1233 | /mimic-fn/2.1.0: 1234 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1235 | engines: {node: '>=6'} 1236 | dev: true 1237 | 1238 | /mimic-response/1.0.1: 1239 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 1240 | engines: {node: '>=4'} 1241 | dev: true 1242 | 1243 | /mimic-response/3.1.0: 1244 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 1245 | engines: {node: '>=10'} 1246 | dev: true 1247 | 1248 | /nanoid/3.3.6: 1249 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1250 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1251 | hasBin: true 1252 | dev: true 1253 | 1254 | /neo-async/2.6.2: 1255 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1256 | dev: true 1257 | 1258 | /node-releases/2.0.10: 1259 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 1260 | dev: true 1261 | 1262 | /normalize-url/6.1.0: 1263 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} 1264 | engines: {node: '>=10'} 1265 | dev: true 1266 | 1267 | /npm-run-path/2.0.2: 1268 | resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} 1269 | engines: {node: '>=4'} 1270 | dependencies: 1271 | path-key: 2.0.1 1272 | dev: true 1273 | 1274 | /npm-run-path/4.0.1: 1275 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1276 | engines: {node: '>=8'} 1277 | dependencies: 1278 | path-key: 3.1.1 1279 | dev: true 1280 | 1281 | /once/1.4.0: 1282 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1283 | dependencies: 1284 | wrappy: 1.0.2 1285 | dev: true 1286 | 1287 | /onetime/5.1.2: 1288 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1289 | engines: {node: '>=6'} 1290 | dependencies: 1291 | mimic-fn: 2.1.0 1292 | dev: true 1293 | 1294 | /os-filter-obj/2.0.0: 1295 | resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==} 1296 | engines: {node: '>=4'} 1297 | dependencies: 1298 | arch: 2.2.0 1299 | dev: true 1300 | 1301 | /p-cancelable/2.1.1: 1302 | resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} 1303 | engines: {node: '>=8'} 1304 | dev: true 1305 | 1306 | /p-finally/1.0.0: 1307 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} 1308 | engines: {node: '>=4'} 1309 | dev: true 1310 | 1311 | /p-limit/2.3.0: 1312 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1313 | engines: {node: '>=6'} 1314 | dependencies: 1315 | p-try: 2.2.0 1316 | dev: true 1317 | 1318 | /p-locate/4.1.0: 1319 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1320 | engines: {node: '>=8'} 1321 | dependencies: 1322 | p-limit: 2.3.0 1323 | dev: true 1324 | 1325 | /p-try/2.2.0: 1326 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1327 | engines: {node: '>=6'} 1328 | dev: true 1329 | 1330 | /path-exists/4.0.0: 1331 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1332 | engines: {node: '>=8'} 1333 | dev: true 1334 | 1335 | /path-key/2.0.1: 1336 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 1337 | engines: {node: '>=4'} 1338 | dev: true 1339 | 1340 | /path-key/3.1.1: 1341 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1342 | engines: {node: '>=8'} 1343 | dev: true 1344 | 1345 | /path-parse/1.0.7: 1346 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1347 | dev: true 1348 | 1349 | /peek-readable/5.0.0: 1350 | resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} 1351 | engines: {node: '>=14.16'} 1352 | dev: true 1353 | 1354 | /picocolors/1.0.0: 1355 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1356 | dev: true 1357 | 1358 | /picomatch/2.3.1: 1359 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1360 | engines: {node: '>=8.6'} 1361 | dev: true 1362 | 1363 | /pify/2.3.0: 1364 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1365 | engines: {node: '>=0.10.0'} 1366 | dev: true 1367 | 1368 | /pkg-dir/4.2.0: 1369 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1370 | engines: {node: '>=8'} 1371 | dependencies: 1372 | find-up: 4.1.0 1373 | dev: true 1374 | 1375 | /postcss/8.4.21: 1376 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 1377 | engines: {node: ^10 || ^12 || >=14} 1378 | dependencies: 1379 | nanoid: 3.3.6 1380 | picocolors: 1.0.0 1381 | source-map-js: 1.0.2 1382 | dev: true 1383 | 1384 | /pseudomap/1.0.2: 1385 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 1386 | dev: true 1387 | 1388 | /pump/3.0.0: 1389 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1390 | dependencies: 1391 | end-of-stream: 1.4.4 1392 | once: 1.4.0 1393 | dev: true 1394 | 1395 | /punycode/2.3.0: 1396 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1397 | engines: {node: '>=6'} 1398 | dev: true 1399 | 1400 | /queue-microtask/1.2.3: 1401 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1402 | dev: true 1403 | 1404 | /quick-lru/5.1.1: 1405 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1406 | engines: {node: '>=10'} 1407 | dev: true 1408 | 1409 | /randombytes/2.1.0: 1410 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1411 | dependencies: 1412 | safe-buffer: 5.2.1 1413 | dev: true 1414 | 1415 | /readable-stream/3.6.2: 1416 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1417 | engines: {node: '>= 6'} 1418 | dependencies: 1419 | inherits: 2.0.4 1420 | string_decoder: 1.3.0 1421 | util-deprecate: 1.0.2 1422 | dev: true 1423 | 1424 | /readable-web-to-node-stream/3.0.2: 1425 | resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} 1426 | engines: {node: '>=8'} 1427 | dependencies: 1428 | readable-stream: 3.6.2 1429 | dev: true 1430 | 1431 | /rechoir/0.8.0: 1432 | resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} 1433 | engines: {node: '>= 10.13.0'} 1434 | dependencies: 1435 | resolve: 1.22.1 1436 | dev: true 1437 | 1438 | /regenerator-runtime/0.13.11: 1439 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 1440 | dev: false 1441 | 1442 | /resolve-alpn/1.2.1: 1443 | resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} 1444 | dev: true 1445 | 1446 | /resolve-cwd/3.0.0: 1447 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 1448 | engines: {node: '>=8'} 1449 | dependencies: 1450 | resolve-from: 5.0.0 1451 | dev: true 1452 | 1453 | /resolve-from/5.0.0: 1454 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1455 | engines: {node: '>=8'} 1456 | dev: true 1457 | 1458 | /resolve/1.22.1: 1459 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1460 | hasBin: true 1461 | dependencies: 1462 | is-core-module: 2.11.0 1463 | path-parse: 1.0.7 1464 | supports-preserve-symlinks-flag: 1.0.0 1465 | dev: true 1466 | 1467 | /responselike/2.0.1: 1468 | resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} 1469 | dependencies: 1470 | lowercase-keys: 2.0.0 1471 | dev: true 1472 | 1473 | /reusify/1.0.4: 1474 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1475 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1476 | dev: true 1477 | 1478 | /run-parallel/1.2.0: 1479 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1480 | dependencies: 1481 | queue-microtask: 1.2.3 1482 | dev: true 1483 | 1484 | /safe-buffer/5.2.1: 1485 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1486 | dev: true 1487 | 1488 | /schema-utils/3.1.1: 1489 | resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} 1490 | engines: {node: '>= 10.13.0'} 1491 | dependencies: 1492 | '@types/json-schema': 7.0.11 1493 | ajv: 6.12.6 1494 | ajv-keywords: 3.5.2_ajv@6.12.6 1495 | dev: true 1496 | 1497 | /semver-regex/4.0.5: 1498 | resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} 1499 | engines: {node: '>=12'} 1500 | dev: true 1501 | 1502 | /semver-truncate/2.0.0: 1503 | resolution: {integrity: sha512-Rh266MLDYNeML5h90ttdMwfXe1+Nc4LAWd9X1KdJe8pPHP4kFmvLZALtsMNHNdvTyQygbEC0D59sIz47DIaq8w==} 1504 | engines: {node: '>=8'} 1505 | dependencies: 1506 | semver: 6.3.0 1507 | dev: true 1508 | 1509 | /semver/6.3.0: 1510 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1511 | hasBin: true 1512 | dev: true 1513 | 1514 | /semver/7.3.8: 1515 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 1516 | engines: {node: '>=10'} 1517 | hasBin: true 1518 | dependencies: 1519 | lru-cache: 6.0.0 1520 | dev: true 1521 | 1522 | /serialize-javascript/6.0.1: 1523 | resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} 1524 | dependencies: 1525 | randombytes: 2.1.0 1526 | dev: true 1527 | 1528 | /shallow-clone/3.0.1: 1529 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} 1530 | engines: {node: '>=8'} 1531 | dependencies: 1532 | kind-of: 6.0.3 1533 | dev: true 1534 | 1535 | /shebang-command/1.2.0: 1536 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1537 | engines: {node: '>=0.10.0'} 1538 | dependencies: 1539 | shebang-regex: 1.0.0 1540 | dev: true 1541 | 1542 | /shebang-command/2.0.0: 1543 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1544 | engines: {node: '>=8'} 1545 | dependencies: 1546 | shebang-regex: 3.0.0 1547 | dev: true 1548 | 1549 | /shebang-regex/1.0.0: 1550 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1551 | engines: {node: '>=0.10.0'} 1552 | dev: true 1553 | 1554 | /shebang-regex/3.0.0: 1555 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1556 | engines: {node: '>=8'} 1557 | dev: true 1558 | 1559 | /signal-exit/3.0.7: 1560 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1561 | dev: true 1562 | 1563 | /slash/3.0.0: 1564 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1565 | engines: {node: '>=8'} 1566 | dev: true 1567 | 1568 | /sort-keys-length/1.0.1: 1569 | resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} 1570 | engines: {node: '>=0.10.0'} 1571 | dependencies: 1572 | sort-keys: 1.1.2 1573 | dev: true 1574 | 1575 | /sort-keys/1.1.2: 1576 | resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} 1577 | engines: {node: '>=0.10.0'} 1578 | dependencies: 1579 | is-plain-obj: 1.1.0 1580 | dev: true 1581 | 1582 | /source-map-js/1.0.2: 1583 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1584 | engines: {node: '>=0.10.0'} 1585 | dev: true 1586 | 1587 | /source-map-support/0.5.21: 1588 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1589 | dependencies: 1590 | buffer-from: 1.1.2 1591 | source-map: 0.6.1 1592 | dev: true 1593 | 1594 | /source-map/0.6.1: 1595 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1596 | engines: {node: '>=0.10.0'} 1597 | dev: true 1598 | 1599 | /source-map/0.7.4: 1600 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1601 | engines: {node: '>= 8'} 1602 | dev: true 1603 | 1604 | /sourcemap-codec/1.4.8: 1605 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1606 | deprecated: Please use @jridgewell/sourcemap-codec instead 1607 | dev: true 1608 | 1609 | /string_decoder/1.3.0: 1610 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1611 | dependencies: 1612 | safe-buffer: 5.2.1 1613 | dev: true 1614 | 1615 | /strip-eof/1.0.0: 1616 | resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} 1617 | engines: {node: '>=0.10.0'} 1618 | dev: true 1619 | 1620 | /strip-final-newline/2.0.0: 1621 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1622 | engines: {node: '>=6'} 1623 | dev: true 1624 | 1625 | /strip-outer/2.0.0: 1626 | resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==} 1627 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1628 | dev: true 1629 | 1630 | /strtok3/7.0.0: 1631 | resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} 1632 | engines: {node: '>=14.16'} 1633 | dependencies: 1634 | '@tokenizer/token': 0.3.0 1635 | peek-readable: 5.0.0 1636 | dev: true 1637 | 1638 | /supports-color/7.2.0: 1639 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1640 | engines: {node: '>=8'} 1641 | dependencies: 1642 | has-flag: 4.0.0 1643 | dev: true 1644 | 1645 | /supports-color/8.1.1: 1646 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1647 | engines: {node: '>=10'} 1648 | dependencies: 1649 | has-flag: 4.0.0 1650 | dev: true 1651 | 1652 | /supports-preserve-symlinks-flag/1.0.0: 1653 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1654 | engines: {node: '>= 0.4'} 1655 | dev: true 1656 | 1657 | /swc-loader/0.2.3_ryemh6gyt4zgswc3glqgvlonbm: 1658 | resolution: {integrity: sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==} 1659 | peerDependencies: 1660 | '@swc/core': ^1.2.147 1661 | webpack: '>=2' 1662 | dependencies: 1663 | '@swc/core': 1.3.44 1664 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 1665 | dev: true 1666 | 1667 | /tapable/2.2.1: 1668 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1669 | engines: {node: '>=6'} 1670 | dev: true 1671 | 1672 | /terser-webpack-plugin/5.3.7_ryemh6gyt4zgswc3glqgvlonbm: 1673 | resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} 1674 | engines: {node: '>= 10.13.0'} 1675 | peerDependencies: 1676 | '@swc/core': '*' 1677 | esbuild: '*' 1678 | uglify-js: '*' 1679 | webpack: ^5.1.0 1680 | peerDependenciesMeta: 1681 | '@swc/core': 1682 | optional: true 1683 | esbuild: 1684 | optional: true 1685 | uglify-js: 1686 | optional: true 1687 | dependencies: 1688 | '@jridgewell/trace-mapping': 0.3.17 1689 | '@swc/core': 1.3.44 1690 | jest-worker: 27.5.1 1691 | schema-utils: 3.1.1 1692 | serialize-javascript: 6.0.1 1693 | terser: 5.16.8 1694 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 1695 | dev: true 1696 | 1697 | /terser/5.16.8: 1698 | resolution: {integrity: sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==} 1699 | engines: {node: '>=10'} 1700 | hasBin: true 1701 | dependencies: 1702 | '@jridgewell/source-map': 0.3.2 1703 | acorn: 8.8.2 1704 | commander: 2.20.3 1705 | source-map-support: 0.5.21 1706 | dev: true 1707 | 1708 | /to-fast-properties/2.0.0: 1709 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1710 | engines: {node: '>=4'} 1711 | dev: true 1712 | 1713 | /to-regex-range/5.0.1: 1714 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1715 | engines: {node: '>=8.0'} 1716 | dependencies: 1717 | is-number: 7.0.0 1718 | dev: true 1719 | 1720 | /token-types/5.0.1: 1721 | resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} 1722 | engines: {node: '>=14.16'} 1723 | dependencies: 1724 | '@tokenizer/token': 0.3.0 1725 | ieee754: 1.2.1 1726 | dev: true 1727 | 1728 | /trim-repeated/2.0.0: 1729 | resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==} 1730 | engines: {node: '>=12'} 1731 | dependencies: 1732 | escape-string-regexp: 5.0.0 1733 | dev: true 1734 | 1735 | /ts-loader/9.4.2_pr6wmn5jxhje6zfixj2z2jacrq: 1736 | resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==} 1737 | engines: {node: '>=12.0.0'} 1738 | peerDependencies: 1739 | typescript: '*' 1740 | webpack: ^5.0.0 1741 | dependencies: 1742 | chalk: 4.1.2 1743 | enhanced-resolve: 5.12.0 1744 | micromatch: 4.0.5 1745 | semver: 7.3.8 1746 | typescript: 5.0.3 1747 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 1748 | dev: true 1749 | 1750 | /typescript/5.0.3: 1751 | resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} 1752 | engines: {node: '>=12.20'} 1753 | hasBin: true 1754 | dev: true 1755 | 1756 | /update-browserslist-db/1.0.10_browserslist@4.21.5: 1757 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 1758 | hasBin: true 1759 | peerDependencies: 1760 | browserslist: '>= 4.21.0' 1761 | dependencies: 1762 | browserslist: 4.21.5 1763 | escalade: 3.1.1 1764 | picocolors: 1.0.0 1765 | dev: true 1766 | 1767 | /uri-js/4.4.1: 1768 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1769 | dependencies: 1770 | punycode: 2.3.0 1771 | dev: true 1772 | 1773 | /util-deprecate/1.0.2: 1774 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1775 | dev: true 1776 | 1777 | /vue/3.2.47: 1778 | resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} 1779 | dependencies: 1780 | '@vue/compiler-dom': 3.2.47 1781 | '@vue/compiler-sfc': 3.2.47 1782 | '@vue/runtime-dom': 3.2.47 1783 | '@vue/server-renderer': 3.2.47_vue@3.2.47 1784 | '@vue/shared': 3.2.47 1785 | dev: true 1786 | 1787 | /watchpack/2.4.0: 1788 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 1789 | engines: {node: '>=10.13.0'} 1790 | dependencies: 1791 | glob-to-regexp: 0.4.1 1792 | graceful-fs: 4.2.11 1793 | dev: true 1794 | 1795 | /webpack-cli/5.0.1_webpack@5.77.0: 1796 | resolution: {integrity: sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==} 1797 | engines: {node: '>=14.15.0'} 1798 | hasBin: true 1799 | peerDependencies: 1800 | '@webpack-cli/generators': '*' 1801 | webpack: 5.x.x 1802 | webpack-bundle-analyzer: '*' 1803 | webpack-dev-server: '*' 1804 | peerDependenciesMeta: 1805 | '@webpack-cli/generators': 1806 | optional: true 1807 | webpack-bundle-analyzer: 1808 | optional: true 1809 | webpack-dev-server: 1810 | optional: true 1811 | dependencies: 1812 | '@discoveryjs/json-ext': 0.5.7 1813 | '@webpack-cli/configtest': 2.0.1_kdcgy6q6iscqqjdxycyax7fave 1814 | '@webpack-cli/info': 2.0.1_kdcgy6q6iscqqjdxycyax7fave 1815 | '@webpack-cli/serve': 2.0.1_kdcgy6q6iscqqjdxycyax7fave 1816 | colorette: 2.0.19 1817 | commander: 9.5.0 1818 | cross-spawn: 7.0.3 1819 | envinfo: 7.8.1 1820 | fastest-levenshtein: 1.0.16 1821 | import-local: 3.1.0 1822 | interpret: 3.1.1 1823 | rechoir: 0.8.0 1824 | webpack: 5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u 1825 | webpack-merge: 5.8.0 1826 | dev: true 1827 | 1828 | /webpack-merge/5.8.0: 1829 | resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} 1830 | engines: {node: '>=10.0.0'} 1831 | dependencies: 1832 | clone-deep: 4.0.1 1833 | wildcard: 2.0.0 1834 | dev: true 1835 | 1836 | /webpack-sources/3.2.3: 1837 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1838 | engines: {node: '>=10.13.0'} 1839 | dev: true 1840 | 1841 | /webpack/5.77.0_tnbe5ndkzgsld4rx5cxo2baw3u: 1842 | resolution: {integrity: sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==} 1843 | engines: {node: '>=10.13.0'} 1844 | hasBin: true 1845 | peerDependencies: 1846 | webpack-cli: '*' 1847 | peerDependenciesMeta: 1848 | webpack-cli: 1849 | optional: true 1850 | dependencies: 1851 | '@types/eslint-scope': 3.7.4 1852 | '@types/estree': 0.0.51 1853 | '@webassemblyjs/ast': 1.11.1 1854 | '@webassemblyjs/wasm-edit': 1.11.1 1855 | '@webassemblyjs/wasm-parser': 1.11.1 1856 | acorn: 8.8.2 1857 | acorn-import-assertions: 1.8.0_acorn@8.8.2 1858 | browserslist: 4.21.5 1859 | chrome-trace-event: 1.0.3 1860 | enhanced-resolve: 5.12.0 1861 | es-module-lexer: 0.9.3 1862 | eslint-scope: 5.1.1 1863 | events: 3.3.0 1864 | glob-to-regexp: 0.4.1 1865 | graceful-fs: 4.2.11 1866 | json-parse-even-better-errors: 2.3.1 1867 | loader-runner: 4.3.0 1868 | mime-types: 2.1.35 1869 | neo-async: 2.6.2 1870 | schema-utils: 3.1.1 1871 | tapable: 2.2.1 1872 | terser-webpack-plugin: 5.3.7_ryemh6gyt4zgswc3glqgvlonbm 1873 | watchpack: 2.4.0 1874 | webpack-cli: 5.0.1_webpack@5.77.0 1875 | webpack-sources: 3.2.3 1876 | transitivePeerDependencies: 1877 | - '@swc/core' 1878 | - esbuild 1879 | - uglify-js 1880 | dev: true 1881 | 1882 | /which/1.3.1: 1883 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1884 | hasBin: true 1885 | dependencies: 1886 | isexe: 2.0.0 1887 | dev: true 1888 | 1889 | /which/2.0.2: 1890 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1891 | engines: {node: '>= 8'} 1892 | hasBin: true 1893 | dependencies: 1894 | isexe: 2.0.0 1895 | dev: true 1896 | 1897 | /wildcard/2.0.0: 1898 | resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} 1899 | dev: true 1900 | 1901 | /wrappy/1.0.2: 1902 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1903 | dev: true 1904 | 1905 | /wujie/1.0.14: 1906 | resolution: {integrity: sha512-KKDcqV0la7SL33A2VCV1noJfUXKVMyWfjEdspccG7VxB6CKqKM5PaCFXT1u4RsmPTC+e5jI3GPKsFqQqYGp/9w==} 1907 | dependencies: 1908 | '@babel/runtime': 7.21.0 1909 | dev: false 1910 | 1911 | /yallist/2.1.2: 1912 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 1913 | dev: true 1914 | 1915 | /yallist/4.0.0: 1916 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1917 | dev: true 1918 | -------------------------------------------------------------------------------- /wujie-vue-setup/src/index.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h, getCurrentInstance, onMounted, watch, onBeforeUnmount } from 'vue' 2 | import type { PropType } from 'vue' 3 | import { startApp, bus } from 'wujie' 4 | import { Props } from './type' 5 | const wujie = defineComponent({ 6 | props: { 7 | width: { type: String, default: "" }, 8 | height: { type: String, default: "" }, 9 | name: { type: String, default: "", required: true }, 10 | loading: { type: HTMLElement, default: undefined }, 11 | url: { type: String, default: "", required: true }, 12 | sync: { type: Boolean, default: undefined }, 13 | prefix: { type: Object, default: undefined }, 14 | alive: { type: Boolean, default: undefined }, 15 | props: { type: Object, default: undefined }, 16 | attrs: { type: Object, default: undefined }, 17 | replace: { type: Function as PropType, default: undefined }, 18 | fetch: { type: Function as PropType, default: undefined }, 19 | fiber: { type: Boolean, default: undefined }, 20 | degrade: { type: Boolean, default: undefined }, 21 | plugins: { type: Array as PropType, default: null }, 22 | beforeLoad: { type: Function as PropType, default: null }, 23 | beforeMount: { type: Function as PropType, default: null }, 24 | afterMount: { type: Function as PropType, default: null }, 25 | beforeUnmount: { type: Function as PropType, default: null }, 26 | afterUnmount: { type: Function as PropType, default: null }, 27 | activated: { type: Function as PropType, default: null }, 28 | deactivated: { type: Function as PropType, default: null }, 29 | }, 30 | setup(props, { emit }) { 31 | const instance = getCurrentInstance() 32 | const init = () => { 33 | //微前端初始化方法就可以了 34 | startApp({ 35 | name: props.name, 36 | url: props.url, 37 | el: instance?.refs.wujie as HTMLElement, 38 | loading: props.loading, 39 | alive: props.alive, 40 | fetch: props.fetch, 41 | props: props.props, 42 | attrs: props.attrs, 43 | replace: props.replace, 44 | sync: props.sync, 45 | prefix: props.prefix, 46 | fiber: props.fiber, 47 | degrade: props.degrade, 48 | plugins: props.plugins, 49 | beforeLoad: props.beforeLoad, 50 | beforeMount: props.beforeMount, 51 | afterMount: props.afterMount, 52 | beforeUnmount: props.beforeUnmount, 53 | afterUnmount: props.afterUnmount, 54 | activated: props.activated, 55 | deactivated: props.deactivated, 56 | 57 | }) 58 | } 59 | 60 | watch([props.name, props.url], () => { 61 | init() 62 | }) 63 | 64 | const hanlderEmit = (event: string, ...args: any[]) => { 65 | emit(event, ...args) 66 | } 67 | 68 | onMounted(() => { 69 | bus.$onAll(hanlderEmit) 70 | init() 71 | }) 72 | 73 | onBeforeUnmount(() => { 74 | bus.$offAll(hanlderEmit) 75 | }) 76 | 77 | return () => h('div', { 78 | style: { 79 | width: props.width, 80 | height: props.height 81 | }, 82 | ref: "wujie" //方便之后读取 83 | }) 84 | } 85 | }) 86 | 87 | wujie.install = function (app) { 88 | app.component("WujieVue", wujie); 89 | }; 90 | export default wujie -------------------------------------------------------------------------------- /wujie-vue-setup/src/type.ts: -------------------------------------------------------------------------------- 1 | import type { plugin } from 'wujie' 2 | type lifecycle = (appWindow: Window) => any; 3 | interface Props { 4 | /** 唯一性用户必须保证 */ 5 | name: string; 6 | /** 需要渲染的url */ 7 | url: string; 8 | /** 需要渲染的html, 如果用户已有则无需从url请求 */ 9 | html?: string; 10 | /** 渲染的容器 */ 11 | loading?: HTMLElement; 12 | /** 路由同步开关, false刷新无效,但是前进后退依然有效 */ 13 | sync?: boolean; 14 | /** 子应用短路径替换,路由同步时生效 */ 15 | prefix?: { [key: string]: string }; 16 | /** 子应用保活模式,state不会丢失 */ 17 | alive?: boolean; 18 | /** 注入给子应用的数据 */ 19 | props?: { [key: string]: any }; 20 | /** js采用fiber模式执行 */ 21 | fiber?: boolean; 22 | /** 子应用采用降级iframe方案 */ 23 | degrade?: boolean; 24 | /** 自定义运行iframe的属性 */ 25 | attrs?: { [key: string]: any }; 26 | /** 自定义降级渲染iframe的属性 */ 27 | degradeAttrs?: { [key: string]: any }; 28 | /** 代码替换钩子 */ 29 | replace?: (codeText: string) => string; 30 | /** 自定义fetch,资源和接口 */ 31 | fetch?: (input: RequestInfo, init?: RequestInit) => Promise; 32 | /** 子应插件 */ 33 | plugins: Array; 34 | /** 子应用生命周期 */ 35 | beforeLoad?: lifecycle; 36 | /** 没有做生命周期改造的子应用不会调用 */ 37 | beforeMount?: lifecycle; 38 | afterMount?: lifecycle; 39 | beforeUnmount?: lifecycle; 40 | afterUnmount?: lifecycle; 41 | /** 非保活应用不会调用 */ 42 | activated?: lifecycle; 43 | deactivated?: lifecycle; 44 | }; 45 | 46 | export { Props } 47 | 48 | -------------------------------------------------------------------------------- /wujie-vue-setup/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "resolveJsonModule": true, /* Enable importing .json files. */ 39 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 40 | 41 | /* JavaScript Support */ 42 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 43 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 44 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 45 | 46 | /* Emit */ 47 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 48 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 49 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 50 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 51 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 52 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 53 | // "removeComments": true, /* Disable emitting comments. */ 54 | // "noEmit": true, /* Disable emitting files from a compilation. */ 55 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 56 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 57 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 58 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 59 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 60 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 61 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 62 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 63 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 64 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 65 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 66 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 67 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 68 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 69 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 70 | 71 | /* Interop Constraints */ 72 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 73 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 74 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 75 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 76 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 77 | 78 | /* Type Checking */ 79 | "strict": false, /* Enable all strict type-checking options. */ 80 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 81 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 82 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 83 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 84 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 85 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 86 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 87 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 88 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 89 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 90 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 91 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 92 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 93 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 94 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 95 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 96 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 97 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 98 | 99 | /* Completeness */ 100 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 101 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /wujie-vue-setup/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { Configuration } = require('webpack') 2 | const path = require('path') 3 | /** 4 | * @type {Configuration} //配置智能提示 5 | */ 6 | const config = { 7 | entry:"./src/index.ts", 8 | mode:"none", 9 | output:{ 10 | filename:"index.js", 11 | path:path.resolve(__dirname,'lib'), 12 | library:"wujievue", 13 | libraryTarget:"umd", 14 | umdNamedDefine:true 15 | }, 16 | externals:{ 17 | vue:"vue", 18 | wujie:"wujie" 19 | }, 20 | module:{ 21 | rules:[ 22 | { 23 | test:/\.ts$/, 24 | use:"swc-loader" 25 | } 26 | ] 27 | } 28 | } 29 | 30 | 31 | module.exports = config --------------------------------------------------------------------------------