├── .eslintignore ├── .eslintrc.cjs ├── .gitignore ├── .npmrc ├── .vscode └── extensions.json ├── LICENSE ├── README.md ├── lib-vue2 ├── LICENSE ├── README.md ├── app ├── index.html ├── package.json └── vite.config.ts ├── lib-vue3 ├── LICENSE ├── README.md ├── app │ ├── App.vue │ ├── main.vue2.ts │ └── main.vue3.ts ├── index.html ├── package.json ├── src │ ├── __tests__ │ │ └── Input.spec.ts │ ├── components │ │ └── MyInput.vue │ ├── env.d.ts │ └── main.ts └── vite.config.ts ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── scripts └── symlink.js ├── tsconfig.json ├── tsconfig ├── README.md ├── tsconfig.node.json ├── tsconfig.vue2.app.json ├── tsconfig.vue2.lib.json ├── tsconfig.vue2.vitest.json ├── tsconfig.vue3.app.json ├── tsconfig.vue3.lib.json └── tsconfig.vue3.vitest.json └── vite.config.shared.ts /.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | lib-vue2/dist 3 | lib-vue2/typings 4 | lib-vue3/dist 5 | lib-vue3/typings 6 | node_modules/ -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | rules: { 4 | 'vue/multi-word-component-names': 'off', 5 | }, 6 | extends: [ 7 | 'eslint:recommended', 8 | 'plugin:@typescript-eslint/eslint-recommended', 9 | 'plugin:vue/vue3-essential', 10 | // make sure to always include this plugin *after* plugin:vue to it can override rules 11 | '@vue-bridge/eslint-config', 12 | ], 13 | parserOptions: { 14 | parser: require.resolve('@typescript-eslint/parser'), 15 | extraFileExtensions: ['.vue'], 16 | ecmaFeatures: { 17 | jsx: true, 18 | }, 19 | }, 20 | env: { 21 | 'vue/setup-compiler-macros': true, 22 | es2022: true, 23 | }, 24 | overrides: [ 25 | // Treat root js/ts files as node files 26 | { 27 | files: ['*.{cjs,js,jsx,ts,tsx}', 'lib-*/*.{cjs,js,jsx,ts,tsx}'], 28 | env: { 29 | node: true, 30 | }, 31 | }, 32 | // Test files have both node and browser APIs available 33 | { 34 | files: ['**/*spec.{js,ts}'], 35 | env: { 36 | node: true, 37 | browser: true, 38 | }, 39 | }, 40 | ], 41 | }; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | 6 | lib-vue2/dist 7 | lib-vue3/dist 8 | # This is a symlink added in postinstall so we don't commit it 9 | lib-vue2/src 10 | lib-vue2/typings 11 | lib-vue3/typings 12 | 13 | tsconfig/logs 14 | 15 | *.local 16 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | strict-peer-dependencies=false -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 PUT YOUR NAME HERE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue-Bridge Template 2 | 3 | > Full Documentation for Vue-Bridge can be found at https://vue-bridge-docs.netlify.app 4 | ## Features of this template 5 | 6 | * Build, Test and Publish a component library for both Vue 2 and Vue 3 from *one* codebase 7 | * Workspaces with [PNPM](https://www.pnpm.io) 8 | * [Typescript](https://www.typescriptlang.org) (Easily [removable](#removing-typescript) for JS-Users) 9 | * Linting with [Eslint](https://) 8 10 | * Unit-Tests with [Vitest](https://vitest.dev) 11 | * Bundling and local dev with [Vite](https://vitejs.dev) 12 | * Interoperability supported by the `@vue-bridge/*` packages: 13 | * `@vue-bridge/eslint-config` : eslint rules that support you in writing interoperable code 14 | * `@vue-bridge/runtime` : tiny runtime enhancements for interoperability between Vue 2 and Vue 3 15 | * `@vue-bridge/vite-plugin` : Vite plugin for build-time optimizations 16 | * `@vue-bridge/testing` : Harmonized API for `@vue/test-utils` versions `1` and `2` 17 | 18 | Roadmap TODOs: 19 | 20 | * _TODO_ ⚙️: E2E Tests with Cypress 21 | 22 | ## Getting Started 23 | 24 | Install the template by running the following command in a folder of your choice: 25 | 26 | ```bash 27 | # create in the current directory: 28 | npx degit vue-bridge/template-monorepo 29 | # create in a new subfolder called "my-library": 30 | npx degit vue-bridge/template-monorepo my-library 31 | ``` 32 | 33 | ...or just click the big green button labeled "use this template" in the github repo. 34 | 35 | We recommend starting with the docs at `https://vue-bridge-docs.netlify.app`, but you can also dive right into this repo and come back to the docs whenever you need them. 36 | 37 | At the very least, make sure to go through this short todo list and then read the rest of the README to have a smooth start. 38 | 39 | - [ ] Install dependencies by running `pnpm i`. Not using pnpm yet? Get started at https://pnpm.io 40 | - [ ] Give this monorepo a proper name, description and your author details (`/package.json`) 41 | - [ ] Give your packages a proper name, description and your author details (`/lib-vue*/package.json`) 42 | - [ ] Give your package a real global Name in each `vite.config.ts` (look for the `libraryGlobalName` - it should be the **same** in both configs) 43 | - [ ] Add your name to the LICENSE files in the root folder as well as the package folders (`/lib-vue*`) 44 | - [ ] Run `pnpm build-all` and inspect the build output in `/lib-vue{2,3}/dist`. Take a look at the package exports defined in `package.json` to get a picture of what's being exported by your package. 45 | - [ ] Congrats, you're ready - start coding! 46 | 47 | 48 | ## Recommended Reading 49 | 50 | TODO: Links to Vue-Bridge docs 51 | 52 | ## Project Structure 53 | 54 | This is an overview meant to give you an idea about the general layout and the important files and folders. Some files and folders left out for brevity 55 | ``` 56 | lib-vue2/ 57 | ├─ app/ # Symlink to /lib-vue3/app 58 | ├─ dist/ # `pnpm build` output of Vue 2 version of library 59 | ├─ typings/ # generated type declarations of this version 60 | ├─ src/ # Symlink to /lib-vue3/src 61 | ├─ index.html # Entry point for demo app (`pnpm dev`) 62 | ├─ package.json # contains Vue 2 dev deps and runtime deps 63 | ├─ vite.config.js # Build & test config for Vue 2 version 64 | 65 | lib-vue3/ 66 | ├─ app/ # Demo application consuming /src, for Vue2&3 67 | ├─ dist/ # build output of Vue 3 version of library 68 | ├─ src/ # Source files of your library 69 | ├─ index.html # Entry point for demo app (`pnpm dev`) 70 | ├─ package.json # contains Vue 3 dev deps and runtime deps 71 | ├─ vite.config.js # Build & test config for Vue 2 version 72 | 73 | package.json # contains shared dev dependencies a d scripts 74 | pnpm-workspace.yaml # Config of workspace directories 75 | vite.config.shared.js # shared config for vite used by both packages 76 | ``` 77 | 78 | ## Commands 79 | 80 | This template comes preconfigured with npm scripts to develop, test and build your library for Vue 3 and Vue 2 at the same time. Here's an overview: 81 | 82 | ### Root `package.json` 83 | 84 | You can run the following commands from the project root. 85 | 86 | |Command|Description| 87 | |-------|-----------| 88 | | `pnpm dev-vue2` | Start a small app that you can use to demo/test/play with your library. See `/lib-vue2/app` | 89 | | `pnpm dev-vue3` | Start a small app that you can use to demo/test/play with your library. See `/lib-vue3/app` | 90 | | `pnpm build-all`| Build both packages, and generate type declarations | 91 | | `pnpm test-all` | Run unit tests in both packages | 92 | | `pnpm lint` | Run eslint on all files, with auto-fixing | 93 | 94 | ## Commands in Workspaces (`/lib-vue2` & `/lib-vue3`) 95 | 96 | These commands can be used in the two package directories. They are the same for both. 97 | 98 | |Command |Description| 99 | |-------------------|-----------| 100 | | `pnpm dev` | Start a small app that you can use to demo/test/play with your library. | 101 | | `pnpm build` | Build the package and generate type declarations | 102 | | `pnpm build-watch`| Build the package in watch mode, re-bundling on file changes | 103 | | `pnpm tsc-watch` | run `vue-tsc` in watch mode, getting type checks run on file change | 104 | | `pnpm test` | Run unit tests in both packages | 105 | | `pnpm test-watch` | Build both packages, and generate type declarations | 106 | 107 | ## Workflow 108 | 109 | Here's a rough outline of the workflow of developing: 110 | 111 | * Edit source files in `/lib-vue3` to write your library. 112 | * `pnpm dev` provides a dev-server with a demo app in which you can test your library/components with HMR. 113 | * Write Tests in `/lib-vue3/src/__tests__` using `@vite-bridge/testing` as a cross-compatible drop-in replacement for `@vue/test-utils` 114 | * `pnpm test-watch` runs your tests in watch mode for instant feedback while writing your tests, thanks to Vitest. 115 | * If you want to run/test your library in Vue 2, you can run the same commands in `/lib-vue2` anytime. 116 | * To run all tests against both versions, you can use `pnpm test-all` from the root folder. 117 | * Build both packages, you can use `pnpm build-all` from the root folder, 118 | * After those commands have run, you can publish both packages. (We may provide guidance on this as well in the Vue-Bridge docs at a later time. PRs welcome) 119 | 120 | ## Dependencies 121 | 122 | When developing your library, you might need to introduce new dependencies, let's say [`lodah-es`](https://www.npmjs.com/package/lodash-es). You need to install this dependency in **both** packages, as you will build and publish both packages (provided you stick to the default config of this template). 123 | 124 | PNPM allows you to run commands on multiple package with [filters](https://pnpm.io/filtering), which is amazing. Herer are two usefule commands to add or remove dependencies to your two packages (the `--filter` matches the package names, so change it accordingly): 125 | 126 | ```bash 127 | # Add dependency 128 | pnpm add --filter "example-vue-library-*" lodash-es 129 | # Add dev dependency 130 | pnpm add -D --filter "example-vue-library-*" lodash-es 131 | # Remoe dependency 132 | pnpm remove --filter "example-vue-library-*" lodash-es 133 | ``` 134 | 135 | ## Typescript 136 | 137 | This template comes with Typescript support pre-configured. Vite & Vitest can read TS out of the box, but don't do type-checking or generate declaration files. For that, we use `vue-tsc`. 138 | 139 | The tsconfig file structure was taken from the official [`create-vue`](https://github.com/vuejs/create-vue) package, so if you already created a Vue 3 project with that tool, it should look familiar. 140 | 141 | ### Removing Typescript 142 | 143 | 1. Install the following dependencies from root: 144 | 145 | ```json 146 | "devDependencies": { 147 | "@types/node": "16", 148 | "@typescript-eslint/eslint-plugin": "^5.23.0", 149 | "@typescript-eslint/parser": "^5.23.0", 150 | "tslib": "^2.4.0", 151 | "typescript": "~4.6.4", 152 | } 153 | ``` 154 | 155 | 2. remove Typescript from .eslintrc.cjs 156 | 157 | ```diff 158 | module.exports = { 159 | root: true, 160 | extends: [ 161 | "eslint:recommended", 162 | - "plugin:@typescript-eslint/eslint-recommended", 163 | "plugin:vue/vue3-essential", 164 | "@vue-bridge/eslint-config", 165 | ], 166 | parserOptions: { 167 | - parser: require.resolve("@typescript-eslint/parser"), 168 | - extraFileExtensions: [".vue"], 169 | ecmaFeatures: { 170 | jsx: true, 171 | }, 172 | }, 173 | ``` 174 | 175 | 3. remove all tsconfig*.json files, and replace them with a simple jsconfig.json in the project root: 176 | 177 | ```json 178 | { 179 | "include": [ 180 | "lib-*/src/**/*.{ts,tsx,js,jsx,vue}", 181 | "lib-*/src/**/*.d.ts", 182 | "lib-*/*.{js,ts}" 183 | ] 184 | } 185 | ``` 186 | 187 | You can leave all of these *.ts references in there because Vite, using esbuild internally, can still deal with Typescript files and treat them as JS, basically. -------------------------------------------------------------------------------- /lib-vue2/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 PUT YOUR NAME HERE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib-vue2/README.md: -------------------------------------------------------------------------------- 1 | # Vue 2 Compat Build Package 2 | 3 | This package is the Vue 2 version of your library. It can 4 | 5 | * test 6 | * build 7 | * publish 8 | 9 | the code symlinked from `/lib-vue3/src` as a Vue 2 plugin library. 10 | 11 | ## Things to be aware of. 12 | 13 | * The src folder is just a symlink to `/lib-vue3/src`. So both packages share the same source. 14 | * You need to synchronize the dependencies between both packages. if you add a new dependency to `/lib-vue3`, you likely also want to install it here. pnpm can help doing that in a single command: running i.e. `pnpm add lodash-es --filter="example-*"` in the project root will add the package `lodash-es` as a dependencies to both `/lib-vue2` and `/lib-vue3` packages, as their package names both start with `example-*`. 15 | 16 | ## Alternative Publishing Strategy 17 | 18 | This template is preconfigured to publish the Vue 2 and Vue 3 versions in individual packages. This is generally the recommended approach so you don't have to mix dependencies for Vue 2 and Vue 3 in package.json. 19 | 20 | However, you can alternatively decide to publish just one package, including both the Vue 2 and Vue 3 bundles. Just be aware that you might encounter trouble if you need different versions of a dependency for each version. 21 | 22 | Here's what you would have to change for that: 23 | 24 | ### `/lib-vue2/package.json` 25 | 26 | * give a distinct name 27 | * make it private so it won't be published. 28 | * Optionally remove module exports & entry points 29 | 30 | ```diff 31 | { 32 | "name": "some-name-different-from-lib-vue3", 33 | + "private": "false", 34 | "type": "module", 35 | - "main": "dist/index.cjs.cjs", 36 | - "module": "dist/index.es.js", 37 | - "typings": "index.vue2.d.ts", 38 | - "exports": { 39 | - ".": { 40 | -- "script": "dist/index.iife.js", 41 | - "import": "dist/index.es.js", 42 | - "require": "dist/index.cjs.cjs" 43 | - }, 44 | - }, 45 | - "files": [ 46 | - "dist", 47 | - "src", 48 | - "index.vue2.d.ts", 49 | - "README.md", 50 | - ] 51 | } 52 | ``` 53 | 54 | ### `/lib-vue2/vite.config.ts` 55 | 56 | change build output to `../lib-vue3/dist`: 57 | 58 | ```diff 59 | // ... 60 | build: buildConfig({ 61 | - outDir: "./dist", 62 | + outDir: "../lib-vue3/dist-vue2", 63 | }), 64 | //... 65 | ``` 66 | 67 | ### Setup src folder 68 | 69 | Right now, `/lib-vue2` is a symlink to `/lib-vue3/src`. For types, we need to publish the src folder with out package, not just a symlink. so instead, we need an actual copy of the source folder 70 | 71 | 1. Remove symlink - just delete the `/lib-vue2/src` folder. 72 | 2. install `rimraf` && `cpy-cli` 73 | 74 | ```bash 75 | # in /lib-vue2 76 | pnpm add -D cpy-cli 77 | ``` 78 | 79 | 3. Adjust these scripts in package.json - we don't need the copy script anymore: 80 | 81 | ```diff 82 | "script": { 83 | "dev": "vite build --watch", 84 | - "build": "pnpm prepare-src && copy-src", 85 | + "build": "vite build", 86 | - "copy-src: "cpy ../lib-vue3/src/* ./dist/src/" 87 | # .... 88 | } 89 | ``` 90 | 91 | ### `index.vue2.d.ts` 92 | 93 | Move `/lib-vue2/index.d.ts` to `/lib-vue3/index.vue2.d.ts` and make it export the src directory there. 94 | 95 | ## module exports in `/lib-vue3` 96 | 97 | ```json 98 | { 99 | "main": "dist/index.cjs.cjs", 100 | "module": "dist/index.es.js", 101 | "jsdelivr": "dist/index.iife.js", 102 | "unpkg": "dist/index.iife.js", 103 | "typings": "./typings/main.d.ts", 104 | "exports": { 105 | ".": { 106 | "types": "./typings/main.d.ts", 107 | "script": "./dist/index.iife.js", 108 | "import": "./dist/index.es.js", 109 | "require": "./dist/index.cjs.cjs", 110 | "default": "./dist/index.es.js" 111 | }, 112 | "./vue3": { 113 | "types": "./typings/main.d.ts", 114 | "script": "./dist/index.iife.js", 115 | "import": "./dist/index.es.js", 116 | "require": "./dist/index.cjs.cjs", 117 | "default": "./dist/index.es.js" 118 | }, 119 | "./vue2": { 120 | "types": "./index.vue2.d.ts", 121 | "script": "./dist-vue2/index.iife.js", 122 | "import": "./dist-vue2/index.es.js", 123 | "require": "./dist-vue2/index.cjs.cjs", 124 | "default": "./dist-vue2/index.es.js" 125 | }, 126 | "./style.css": "./dist/style.css", 127 | "./src/": "./src/", 128 | "./package.json": "./package.json" 129 | } 130 | ``` 131 | 132 | ### That's it! 133 | 134 | Now you can run `pnpm release` and pnpm will test, build and publish both version in one package! -------------------------------------------------------------------------------- /lib-vue2/app: -------------------------------------------------------------------------------- 1 | ../lib-vue3/app/ -------------------------------------------------------------------------------- /lib-vue2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vite App 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /lib-vue2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-vue-library-vue2", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build && pnpm build-types", 7 | "build-watch": "vite build --watch", 8 | "build-types": "vue-tsc --declaration --emitDeclarationOnly -p ../tsconfig/tsconfig.vue2.lib.json", 9 | "tsc-watch": "vue-tsc --watch", 10 | "test": "vitest --reporter=verbose --run", 11 | "test-watch": "vitest --reporter=verbose" 12 | }, 13 | "type": "module", 14 | "main": "dist/index.umd.cjs", 15 | "module": "dist/index.es.mjs", 16 | "jsdelivr": "dist/index.umd.js", 17 | "unpkg": "dist/index.umd.js", 18 | "typings": "./typings/main.d.ts", 19 | "exports": { 20 | ".": { 21 | "types": "./typings/main.d.ts", 22 | "script": "./dist/index.umd.js", 23 | "import": "./dist/index.es.mjs", 24 | "require": "./dist/index.cjs.cjs", 25 | "default": "./dist/index.umd.js" 26 | }, 27 | "./style.css": "./dist/style.css", 28 | "./package.json": "./package.json", 29 | "./src/": "./src/", 30 | "./typings/": "./typings/" 31 | }, 32 | "files": [ 33 | "dist", 34 | "src", 35 | "README.md" 36 | ], 37 | "browserslist": [ 38 | "IE 11, >3%, last 2 versions" 39 | ], 40 | "dependencies": { 41 | "@swc/helpers": "^0.4.11", 42 | "@vue-bridge/runtime": "^0.1.1", 43 | "core-js": "^3.25.0", 44 | "regenerator-runtime": "^0.13.9" 45 | }, 46 | "devDependencies": { 47 | "@vitejs/plugin-vue2": "^1.1.2", 48 | "@vue-bridge/testing": "^0.2.1", 49 | "@vue-bridge/vite-plugin": "^0.2.0", 50 | "@vue/test-utils": "^1.3.0", 51 | "browserslist": "^4.21.3", 52 | "vite": "^3.0.9", 53 | "vue": "^2.7.10", 54 | "vue-template-compiler": "^2.7.10" 55 | }, 56 | "peerDependencies": { 57 | "vue": "^2.7" 58 | }, 59 | "peerDependenciesMeta": { 60 | "vue": { 61 | "optional": true 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /lib-vue2/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import vue from "@vitejs/plugin-vue2"; 3 | import { vueBridge } from "@vue-bridge/vite-plugin"; 4 | import { buildConfig } from "../vite.config.shared"; 5 | 6 | // This is the name of the global you library is accessible in the iife build 7 | // (window.ExampleLibrary) 8 | const libraryGlobalName = "ExampleLibrary"; 9 | 10 | // https://vitejs.dev/config/ 11 | export default defineConfig({ 12 | plugins: [ 13 | vue(), 14 | vueBridge({ 15 | vueVersion: "2", 16 | localizeDeps: true, 17 | useSwc: true, 18 | swcOptions: { 19 | env: { 20 | mode: 'usage', 21 | }, 22 | jsc: { 23 | parser: { 24 | syntax: 'typescript', 25 | tsx: false, 26 | }, 27 | loose: true, 28 | }, 29 | } 30 | }), 31 | ], 32 | resolve: { 33 | alias: { 34 | "@vue-bridge/runtime": "@vue-bridge/runtime/vue2", 35 | }, 36 | }, 37 | build: buildConfig({ 38 | name: libraryGlobalName, 39 | }), 40 | test: { 41 | environment: "jsdom", 42 | deps: { 43 | inline: true, 44 | } 45 | }, 46 | }); 47 | -------------------------------------------------------------------------------- /lib-vue3/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 PUT YOUR NAME HERE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib-vue3/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 ` 10 | 16 | -------------------------------------------------------------------------------- /lib-vue3/app/main.vue2.ts: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import AppVue from "./App.vue"; 3 | import { install as Plugin } from "../src/main"; 4 | 5 | Vue.use(Plugin); 6 | new Vue(AppVue).$mount("#app"); 7 | -------------------------------------------------------------------------------- /lib-vue3/app/main.vue3.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import AppVue from "./App.vue"; 3 | import { install as Plugin } from "../src/main"; 4 | 5 | createApp(AppVue).use(Plugin).mount("#app"); 6 | -------------------------------------------------------------------------------- /lib-vue3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vite App 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /lib-vue3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example-vue-library-vue3", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "dev": "vite", 6 | "build-watch": "vite build --watch", 7 | "build": "vite build && pnpm build-types", 8 | "tsc-watch": "vue-tsc --watch", 9 | "build-types": "vue-tsc --declaration --emitDeclarationOnly -p ../tsconfig/tsconfig.vue3.lib.json", 10 | "test": "vitest --reporter=verbose --run", 11 | "test-watch": "vitest --reporter=verbose", 12 | "preview": "vite preview" 13 | }, 14 | "type": "module", 15 | "main": "dist/index.umd.js", 16 | "module": "dist/index.es.mjs", 17 | "jsdelivr": "dist/index.umd.js", 18 | "unpkg": "dist/index.umd.js", 19 | "typings": "./typings/main.d.ts", 20 | "exports": { 21 | ".": { 22 | "types": "./typings/main.d.ts", 23 | "script": "./dist/index.umd.js", 24 | "import": "./dist/index.es.mjs", 25 | "require": "./dist/index.cjs.cjs", 26 | "default": "./dist/index.umd.js" 27 | }, 28 | "./style.css": "./dist/style.css", 29 | "./package.json": "./package.json", 30 | "./src/": "./src/" 31 | }, 32 | "files": [ 33 | "dist", 34 | "src", 35 | "typings", 36 | "README.md" 37 | ], 38 | "dependencies": { 39 | "@vue-bridge/runtime": "^0.1.1" 40 | }, 41 | "devDependencies": { 42 | "@vitejs/plugin-vue": "^3.0.3", 43 | "@vue-bridge/testing": "^0.2.1", 44 | "@vue-bridge/vite-plugin": "^0.2.0", 45 | "@vue/test-utils": "^2.0.2", 46 | "vite": "^3.0.9", 47 | "vue": "^3.2.37" 48 | } 49 | } -------------------------------------------------------------------------------- /lib-vue3/src/__tests__/Input.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from "@vue-bridge/testing"; 2 | import { nextTick } from "vue"; 3 | import { describe, it, expect } from "vitest"; 4 | import Input from "../components/MyInput.vue"; 5 | 6 | describe("Input", () => { 7 | it("v-model works", async () => { 8 | const newValue = "Hello You!"; 9 | 10 | // mount() has the sameAPI as `@vue/test-utils@2` (for Vue 3) 11 | const wrapper = mount(Input, { 12 | props: { 13 | // @ts-ignore - would be propsData in normal vue 2 test-utils 14 | modelValue: "Hello World", 15 | }, 16 | }); 17 | 18 | // We use `nextTick` from `@vue-bridge/testing` because we can't import it in an interoperable way from 'vue' 19 | await nextTick(); 20 | 21 | const input = wrapper.find("input"); 22 | expect(wrapper.props().modelValue).toBe("Hello World"); 23 | expect((wrapper.vm as any).model).toBe("Hello World"); 24 | expect((input!.element as HTMLInputElement).value).toBe("Hello World"); 25 | 26 | input.setValue(newValue); 27 | await nextTick(); 28 | 29 | expect(wrapper.emitted()["update:modelValue"]?.length).toEqual(1); 30 | expect((wrapper.emitted()["update:modelValue"]?.[0] as any)?.[0]).toEqual( 31 | newValue 32 | ); 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /lib-vue3/src/components/MyInput.vue: -------------------------------------------------------------------------------- 1 | 25 | 32 | -------------------------------------------------------------------------------- /lib-vue3/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module "*.vue" { 4 | import { DefineComponent } from "vue"; 5 | const component: DefineComponent<{}, {}, any>; 6 | export default component; 7 | } 8 | -------------------------------------------------------------------------------- /lib-vue3/src/main.ts: -------------------------------------------------------------------------------- 1 | import MyInput from "./components/MyInput.vue"; 2 | import type { App } from "@vue-bridge/runtime"; 3 | export { MyInput }; 4 | 5 | export function install(app: App) { 6 | app.component(MyInput.name!, MyInput); 7 | } 8 | -------------------------------------------------------------------------------- /lib-vue3/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import vue from "@vitejs/plugin-vue"; 3 | import { buildConfig } from "../vite.config.shared"; 4 | import { vueBridge } from "@vue-bridge/vite-plugin"; 5 | // This is the name of the global you library is accessible in the iife build (for CDN use) 6 | // (window.ExampleLibrary) 7 | const libraryGlobalName = "ExampleLibrary"; 8 | 9 | // https://vitejs.dev/config/ 10 | export default defineConfig({ 11 | plugins: [ 12 | vue(), 13 | vueBridge({ 14 | vueVersion: "3", 15 | }), 16 | ], 17 | resolve: { 18 | alias: { 19 | "@vue-bridge/runtime": "@vue-bridge/runtime/vue3", 20 | }, 21 | }, 22 | build: buildConfig({ 23 | name: libraryGlobalName, 24 | }), 25 | test: { 26 | environment: "jsdom", 27 | }, 28 | }); 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue-bridge/template-monorepo", 3 | "private": true, 4 | "description": "", 5 | "author": "", 6 | "keywords": [], 7 | "license": "MIT", 8 | "scripts": { 9 | "dev-vue3": "pnpm --filter=example-vue-library-vue3 run dev", 10 | "dev-vue2": "pnpm --filter=example-vue-library-vue2 run dev", 11 | "build-all": "pnpm -r --aggregate-output run build", 12 | "build-watch-all": "pnpm -r --stream run build:w", 13 | "test-all": "pnpm -r --parallel --aggregate-output run test ", 14 | "lint": "eslint '*.{js,ts}' '{lib-*}/**/*.{js,ts,vue}'", 15 | "lint:fix": "eslint '*.{js,ts}' '{lib-*}/**/*.{js,ts,vue}' --fix", 16 | "postinstall": "node scripts/symlink lib-vue3/src lib-vue2/src" 17 | }, 18 | "pnpm": { 19 | "packageExtensions": { 20 | "vue-template-compiler": { 21 | "peerDependencies": { 22 | "vue": "^2.7" 23 | } 24 | } 25 | } 26 | }, 27 | "devDependencies": { 28 | "@types/node": "^16.11.56", 29 | "@typescript-eslint/eslint-plugin": "^5.35.1", 30 | "@typescript-eslint/parser": "^5.35.1", 31 | "@vue-bridge/eslint-config": "^0.2.0", 32 | "@vue/tsconfig": "^0.1.3", 33 | "eslint": "^8.23.0", 34 | "eslint-plugin-vue": "^9.4.0", 35 | "jsdom": "^20.0.0", 36 | "tslib": "^2.4.0", 37 | "typescript": "~4.6.4", 38 | "vite": "^3.0.9", 39 | "vitest": "^0.22.1", 40 | "vue-tsc": "^0.40.1" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | packageExtensionsChecksum: 6f7c101b3e3b42f5797eb39f750c0ec5 4 | 5 | importers: 6 | 7 | .: 8 | specifiers: 9 | '@types/node': ^16.11.56 10 | '@typescript-eslint/eslint-plugin': ^5.35.1 11 | '@typescript-eslint/parser': ^5.35.1 12 | '@vue-bridge/eslint-config': ^0.2.0 13 | '@vue/tsconfig': ^0.1.3 14 | eslint: ^8.23.0 15 | eslint-plugin-vue: ^9.4.0 16 | jsdom: ^20.0.0 17 | tslib: ^2.4.0 18 | typescript: ~4.6.4 19 | vite: ^3.0.9 20 | vitest: ^0.22.1 21 | vue-tsc: ^0.40.1 22 | devDependencies: 23 | '@types/node': 16.11.56 24 | '@typescript-eslint/eslint-plugin': 5.35.1_hy4by47wjjtoupqk2r7jy5xf2e 25 | '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 26 | '@vue-bridge/eslint-config': 0.2.0_x7y5nmvio6pfqudbshgm4cij3q 27 | '@vue/tsconfig': 0.1.3_@types+node@16.11.56 28 | eslint: 8.23.0 29 | eslint-plugin-vue: 9.4.0_eslint@8.23.0 30 | jsdom: 20.0.0 31 | tslib: 2.4.0 32 | typescript: 4.6.4 33 | vite: 3.0.9 34 | vitest: 0.22.1_jsdom@20.0.0 35 | vue-tsc: 0.40.1_typescript@4.6.4 36 | 37 | lib-vue2: 38 | specifiers: 39 | '@swc/helpers': ^0.4.11 40 | '@vitejs/plugin-vue2': ^1.1.2 41 | '@vue-bridge/runtime': ^0.1.1 42 | '@vue-bridge/testing': ^0.2.1 43 | '@vue-bridge/vite-plugin': ^0.2.0 44 | '@vue/test-utils': ^1.3.0 45 | browserslist: ^4.21.3 46 | core-js: ^3.25.0 47 | regenerator-runtime: ^0.13.9 48 | vite: ^3.0.9 49 | vue: ^2.7.10 50 | vue-template-compiler: ^2.7.10 51 | dependencies: 52 | '@swc/helpers': 0.4.11 53 | '@vue-bridge/runtime': 0.1.1_vue@2.7.10 54 | core-js: 3.25.0 55 | regenerator-runtime: 0.13.9 56 | devDependencies: 57 | '@vitejs/plugin-vue2': 1.1.2_vite@3.0.9+vue@2.7.10 58 | '@vue-bridge/testing': 0.2.1_53g5u5a44atmcvvmpo7z5vxoi4 59 | '@vue-bridge/vite-plugin': 0.2.0 60 | '@vue/test-utils': 1.3.0_42puyn3dcxirnpdjnosl7pbb6a 61 | browserslist: 4.21.3 62 | vite: 3.0.9 63 | vue: 2.7.10 64 | vue-template-compiler: 2.7.10_vue@2.7.10 65 | 66 | lib-vue3: 67 | specifiers: 68 | '@vitejs/plugin-vue': ^3.0.3 69 | '@vue-bridge/runtime': ^0.1.1 70 | '@vue-bridge/testing': ^0.2.1 71 | '@vue-bridge/vite-plugin': ^0.2.0 72 | '@vue/test-utils': ^2.0.2 73 | vite: ^3.0.9 74 | vue: ^3.2.37 75 | dependencies: 76 | '@vue-bridge/runtime': 0.1.1_vue@3.2.37 77 | devDependencies: 78 | '@vitejs/plugin-vue': 3.0.3_vite@3.0.9+vue@3.2.37 79 | '@vue-bridge/testing': 0.2.1_wlaifosis4rwreoeq6u47n65qe 80 | '@vue-bridge/vite-plugin': 0.2.0 81 | '@vue/test-utils': 2.0.2_vue@3.2.37 82 | vite: 3.0.9 83 | vue: 3.2.37 84 | 85 | packages: 86 | 87 | /@babel/helper-string-parser/7.18.10: 88 | resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} 89 | engines: {node: '>=6.9.0'} 90 | 91 | /@babel/helper-validator-identifier/7.18.6: 92 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 93 | engines: {node: '>=6.9.0'} 94 | 95 | /@babel/parser/7.18.13: 96 | resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==} 97 | engines: {node: '>=6.0.0'} 98 | hasBin: true 99 | dependencies: 100 | '@babel/types': 7.18.13 101 | 102 | /@babel/types/7.18.13: 103 | resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==} 104 | engines: {node: '>=6.9.0'} 105 | dependencies: 106 | '@babel/helper-string-parser': 7.18.10 107 | '@babel/helper-validator-identifier': 7.18.6 108 | to-fast-properties: 2.0.0 109 | 110 | /@eslint/eslintrc/1.3.1: 111 | resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} 112 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 113 | dependencies: 114 | ajv: 6.12.6 115 | debug: 4.3.4 116 | espree: 9.4.0 117 | globals: 13.17.0 118 | ignore: 5.2.0 119 | import-fresh: 3.3.0 120 | js-yaml: 4.1.0 121 | minimatch: 3.1.2 122 | strip-json-comments: 3.1.1 123 | transitivePeerDependencies: 124 | - supports-color 125 | dev: true 126 | 127 | /@humanwhocodes/config-array/0.10.4: 128 | resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} 129 | engines: {node: '>=10.10.0'} 130 | dependencies: 131 | '@humanwhocodes/object-schema': 1.2.1 132 | debug: 4.3.4 133 | minimatch: 3.1.2 134 | transitivePeerDependencies: 135 | - supports-color 136 | dev: true 137 | 138 | /@humanwhocodes/gitignore-to-minimatch/1.0.2: 139 | resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} 140 | dev: true 141 | 142 | /@humanwhocodes/module-importer/1.0.1: 143 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 144 | engines: {node: '>=12.22'} 145 | dev: true 146 | 147 | /@humanwhocodes/object-schema/1.2.1: 148 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 149 | dev: true 150 | 151 | /@nodelib/fs.scandir/2.1.5: 152 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 153 | engines: {node: '>= 8'} 154 | dependencies: 155 | '@nodelib/fs.stat': 2.0.5 156 | run-parallel: 1.2.0 157 | dev: true 158 | 159 | /@nodelib/fs.stat/2.0.5: 160 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 161 | engines: {node: '>= 8'} 162 | dev: true 163 | 164 | /@nodelib/fs.walk/1.2.8: 165 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 166 | engines: {node: '>= 8'} 167 | dependencies: 168 | '@nodelib/fs.scandir': 2.1.5 169 | fastq: 1.13.0 170 | dev: true 171 | 172 | /@swc/core-android-arm-eabi/1.2.218: 173 | resolution: {integrity: sha512-Q/uLCh262t3xxNzhCz+ZW9t+g2nWd0gZZO4jMYFWJs7ilKVNsBfRtfnNGGACHzkVuWLNDIWtAS2PSNodl7VUHQ==} 174 | engines: {node: '>=10'} 175 | cpu: [arm] 176 | os: [android] 177 | requiresBuild: true 178 | dev: true 179 | optional: true 180 | 181 | /@swc/core-android-arm64/1.2.218: 182 | resolution: {integrity: sha512-dy+8lUHUcyrkfPcl7azEQ4M44duRo1Uibz1E5/tltXCGoR6tu2ZN2VkqEKgA2a9XR3UD8/x4lv2r5evwJWy+uQ==} 183 | engines: {node: '>=10'} 184 | cpu: [arm64] 185 | os: [android] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@swc/core-darwin-arm64/1.2.218: 191 | resolution: {integrity: sha512-aTpFjWio8G0oukN76VtXCBPtFzH0PXIQ+1dFjGGkzrBcU5suztCCbhPBGhKRoWp3NJBwfPDwwWzmG+ddXrVAKg==} 192 | engines: {node: '>=10'} 193 | cpu: [arm64] 194 | os: [darwin] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@swc/core-darwin-x64/1.2.218: 200 | resolution: {integrity: sha512-H3w/gNzROE6gVPZCAg5qvvPihzlg88Yi7HWb/mowfpNqH9/iJ8XMdwqJyovnfUeUXsuJQBFv6uXv/ri7qhGMHA==} 201 | engines: {node: '>=10'} 202 | cpu: [x64] 203 | os: [darwin] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@swc/core-freebsd-x64/1.2.218: 209 | resolution: {integrity: sha512-kkch07yCSlpUrSMp0FZPWtMHJjh3lfHiwp7JYNf6CUl5xXlgT19NeomPYq31dbTzPV2VnE7TVVlAawIjuuOH4g==} 210 | engines: {node: '>=10'} 211 | cpu: [x64] 212 | os: [freebsd] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@swc/core-linux-arm-gnueabihf/1.2.218: 218 | resolution: {integrity: sha512-vwEgvtD9f/+0HFxYD5q4sd8SG6zd0cxm17cwRGZ6jWh/d4Ninjht3CpDGE1ffh9nJ+X3Mb/7rjU/kTgWFz5qfg==} 219 | engines: {node: '>=10'} 220 | cpu: [arm] 221 | os: [linux] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@swc/core-linux-arm64-gnu/1.2.218: 227 | resolution: {integrity: sha512-g5PQI6COUHV7x7tyaZQn6jXWtOLXXNIEQK1HS5/e+6kqqsM2NsndE9bjLhoH1EQuXiN2eUjAR/ZDOFAg102aRw==} 228 | engines: {node: '>=10'} 229 | cpu: [arm64] 230 | os: [linux] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@swc/core-linux-arm64-musl/1.2.218: 236 | resolution: {integrity: sha512-IETYHB6H01NmVmlw+Ng8nkjdFBv1exGQRR74GAnHis1bVx1Uq14hREIF6XT3I1Aj26nRwlGkIYQuEKnFO5/j3Q==} 237 | engines: {node: '>=10'} 238 | cpu: [arm64] 239 | os: [linux] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@swc/core-linux-x64-gnu/1.2.218: 245 | resolution: {integrity: sha512-PK39Zg4/YZbfchQRw77iVfB7Qat7QaK58sQt8enH39CUMXlJ+GSfC0Fqw2mtZ12sFGwmsGrK9yBy3ZVoOws5Ng==} 246 | engines: {node: '>=10'} 247 | cpu: [x64] 248 | os: [linux] 249 | requiresBuild: true 250 | dev: true 251 | optional: true 252 | 253 | /@swc/core-linux-x64-musl/1.2.218: 254 | resolution: {integrity: sha512-SNjrzORJYiKTSmFbaBkKZAf5B/PszwoZoFZOcd86AG192zsvQBSvKjQzMjT5rDZxB+sOnhRE7wH/bvqxZishQQ==} 255 | engines: {node: '>=10'} 256 | cpu: [x64] 257 | os: [linux] 258 | requiresBuild: true 259 | dev: true 260 | optional: true 261 | 262 | /@swc/core-win32-arm64-msvc/1.2.218: 263 | resolution: {integrity: sha512-lVXFWkYl+w8+deq9mgGsfvSY5Gr1RRjFgqZ+0wMZgyaonfx7jNn3TILUwc7egumEwxK0anNriVZCyKfcO3ZIjA==} 264 | engines: {node: '>=10'} 265 | cpu: [arm64] 266 | os: [win32] 267 | requiresBuild: true 268 | dev: true 269 | optional: true 270 | 271 | /@swc/core-win32-ia32-msvc/1.2.218: 272 | resolution: {integrity: sha512-jgP+NZsHUh9Cp8PcXznnkpJTW3hPDLUgsXI0NKfE+8+Xvc6hALHxl6K46IyPYU67FfFlegYcBSNkOgpc85gk0A==} 273 | engines: {node: '>=10'} 274 | cpu: [ia32] 275 | os: [win32] 276 | requiresBuild: true 277 | dev: true 278 | optional: true 279 | 280 | /@swc/core-win32-x64-msvc/1.2.218: 281 | resolution: {integrity: sha512-XYLjX00KV4ft324Q3QDkw61xHkoN7EKkVvIpb0wXaf6wVshwU+BCDyPw2CSg4PQecNP8QGgMRQf9QM7xNtEM7A==} 282 | engines: {node: '>=10'} 283 | cpu: [x64] 284 | os: [win32] 285 | requiresBuild: true 286 | dev: true 287 | optional: true 288 | 289 | /@swc/core/1.2.218: 290 | resolution: {integrity: sha512-wzXTeBUi3YAHr305lCo1tlxRj5Zpk7hu6rmulngH06NgrH7fS6bj8IaR7K2QPZ4ZZ4U+TGS2tOKbXBmqeMRUtg==} 291 | engines: {node: '>=10'} 292 | hasBin: true 293 | requiresBuild: true 294 | optionalDependencies: 295 | '@swc/core-android-arm-eabi': 1.2.218 296 | '@swc/core-android-arm64': 1.2.218 297 | '@swc/core-darwin-arm64': 1.2.218 298 | '@swc/core-darwin-x64': 1.2.218 299 | '@swc/core-freebsd-x64': 1.2.218 300 | '@swc/core-linux-arm-gnueabihf': 1.2.218 301 | '@swc/core-linux-arm64-gnu': 1.2.218 302 | '@swc/core-linux-arm64-musl': 1.2.218 303 | '@swc/core-linux-x64-gnu': 1.2.218 304 | '@swc/core-linux-x64-musl': 1.2.218 305 | '@swc/core-win32-arm64-msvc': 1.2.218 306 | '@swc/core-win32-ia32-msvc': 1.2.218 307 | '@swc/core-win32-x64-msvc': 1.2.218 308 | dev: true 309 | 310 | /@swc/helpers/0.4.11: 311 | resolution: {integrity: sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==} 312 | dependencies: 313 | tslib: 2.4.0 314 | dev: false 315 | 316 | /@tootallnate/once/2.0.0: 317 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} 318 | engines: {node: '>= 10'} 319 | dev: true 320 | 321 | /@types/chai-subset/1.3.3: 322 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 323 | dependencies: 324 | '@types/chai': 4.3.3 325 | dev: true 326 | 327 | /@types/chai/4.3.3: 328 | resolution: {integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==} 329 | dev: true 330 | 331 | /@types/json-schema/7.0.11: 332 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 333 | dev: true 334 | 335 | /@types/node/16.11.56: 336 | resolution: {integrity: sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A==} 337 | dev: true 338 | 339 | /@typescript-eslint/eslint-plugin/5.35.1_hy4by47wjjtoupqk2r7jy5xf2e: 340 | resolution: {integrity: sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==} 341 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 342 | peerDependencies: 343 | '@typescript-eslint/parser': ^5.0.0 344 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 345 | typescript: '*' 346 | peerDependenciesMeta: 347 | typescript: 348 | optional: true 349 | dependencies: 350 | '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 351 | '@typescript-eslint/scope-manager': 5.35.1 352 | '@typescript-eslint/type-utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 353 | '@typescript-eslint/utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 354 | debug: 4.3.4 355 | eslint: 8.23.0 356 | functional-red-black-tree: 1.0.1 357 | ignore: 5.2.0 358 | regexpp: 3.2.0 359 | semver: 7.3.7 360 | tsutils: 3.21.0_typescript@4.6.4 361 | typescript: 4.6.4 362 | transitivePeerDependencies: 363 | - supports-color 364 | dev: true 365 | 366 | /@typescript-eslint/parser/5.35.1_pyvvhc3zqdua4akflcggygkl44: 367 | resolution: {integrity: sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==} 368 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 369 | peerDependencies: 370 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 371 | typescript: '*' 372 | peerDependenciesMeta: 373 | typescript: 374 | optional: true 375 | dependencies: 376 | '@typescript-eslint/scope-manager': 5.35.1 377 | '@typescript-eslint/types': 5.35.1 378 | '@typescript-eslint/typescript-estree': 5.35.1_typescript@4.6.4 379 | debug: 4.3.4 380 | eslint: 8.23.0 381 | typescript: 4.6.4 382 | transitivePeerDependencies: 383 | - supports-color 384 | dev: true 385 | 386 | /@typescript-eslint/scope-manager/5.35.1: 387 | resolution: {integrity: sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==} 388 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 389 | dependencies: 390 | '@typescript-eslint/types': 5.35.1 391 | '@typescript-eslint/visitor-keys': 5.35.1 392 | dev: true 393 | 394 | /@typescript-eslint/type-utils/5.35.1_pyvvhc3zqdua4akflcggygkl44: 395 | resolution: {integrity: sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==} 396 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 397 | peerDependencies: 398 | eslint: '*' 399 | typescript: '*' 400 | peerDependenciesMeta: 401 | typescript: 402 | optional: true 403 | dependencies: 404 | '@typescript-eslint/utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 405 | debug: 4.3.4 406 | eslint: 8.23.0 407 | tsutils: 3.21.0_typescript@4.6.4 408 | typescript: 4.6.4 409 | transitivePeerDependencies: 410 | - supports-color 411 | dev: true 412 | 413 | /@typescript-eslint/types/5.35.1: 414 | resolution: {integrity: sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==} 415 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 416 | dev: true 417 | 418 | /@typescript-eslint/typescript-estree/5.35.1_typescript@4.6.4: 419 | resolution: {integrity: sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==} 420 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 421 | peerDependencies: 422 | typescript: '*' 423 | peerDependenciesMeta: 424 | typescript: 425 | optional: true 426 | dependencies: 427 | '@typescript-eslint/types': 5.35.1 428 | '@typescript-eslint/visitor-keys': 5.35.1 429 | debug: 4.3.4 430 | globby: 11.1.0 431 | is-glob: 4.0.3 432 | semver: 7.3.7 433 | tsutils: 3.21.0_typescript@4.6.4 434 | typescript: 4.6.4 435 | transitivePeerDependencies: 436 | - supports-color 437 | dev: true 438 | 439 | /@typescript-eslint/utils/5.35.1_pyvvhc3zqdua4akflcggygkl44: 440 | resolution: {integrity: sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==} 441 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 442 | peerDependencies: 443 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 444 | dependencies: 445 | '@types/json-schema': 7.0.11 446 | '@typescript-eslint/scope-manager': 5.35.1 447 | '@typescript-eslint/types': 5.35.1 448 | '@typescript-eslint/typescript-estree': 5.35.1_typescript@4.6.4 449 | eslint: 8.23.0 450 | eslint-scope: 5.1.1 451 | eslint-utils: 3.0.0_eslint@8.23.0 452 | transitivePeerDependencies: 453 | - supports-color 454 | - typescript 455 | dev: true 456 | 457 | /@typescript-eslint/visitor-keys/5.35.1: 458 | resolution: {integrity: sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==} 459 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 460 | dependencies: 461 | '@typescript-eslint/types': 5.35.1 462 | eslint-visitor-keys: 3.3.0 463 | dev: true 464 | 465 | /@vitejs/plugin-vue/3.0.3_vite@3.0.9+vue@3.2.37: 466 | resolution: {integrity: sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==} 467 | engines: {node: ^14.18.0 || >=16.0.0} 468 | peerDependencies: 469 | vite: ^3.0.0 470 | vue: ^3.2.25 471 | dependencies: 472 | vite: 3.0.9 473 | vue: 3.2.37 474 | dev: true 475 | 476 | /@vitejs/plugin-vue2/1.1.2_vite@3.0.9+vue@2.7.10: 477 | resolution: {integrity: sha512-y6OEA+2UdJ0xrEQHodq20v9r3SpS62IOHrgN92JPLvVpNkhcissu7yvD5PXMzMESyazj0XNWGsc8UQk8+mVrjQ==} 478 | engines: {node: '>=14.6.0'} 479 | peerDependencies: 480 | vite: '>=2.5.10' 481 | vue: ^2.7.0-0 482 | dependencies: 483 | vite: 3.0.9 484 | vue: 2.7.10 485 | dev: true 486 | 487 | /@volar/code-gen/0.40.1: 488 | resolution: {integrity: sha512-mN1jn08wRKLoUj+KThltyWfsiEGt6Um1yT6S7bkruwV76yiLlzIR4WZgWng254byGMozJ00qgkZmBhraD5b48A==} 489 | dependencies: 490 | '@volar/source-map': 0.40.1 491 | dev: true 492 | 493 | /@volar/source-map/0.40.1: 494 | resolution: {integrity: sha512-ORYg5W+R4iT2k/k2U4ASkKvDxabIzKtP+lXZ1CcqFIbTF81GOooAv5tJZImf8ifhUV9p8bgGaitFj/VnNzkdYg==} 495 | dev: true 496 | 497 | /@volar/typescript-faster/0.40.1: 498 | resolution: {integrity: sha512-UiX8OzVRJtpudGfTY2KgB5m78DIA8oVbwI4QN5i4Ot8oURQPOviH7MahikHeeXidbh3iOy/u4vceMb+mfdizpQ==} 499 | dependencies: 500 | semver: 7.3.7 501 | dev: true 502 | 503 | /@volar/vue-language-core/0.40.1: 504 | resolution: {integrity: sha512-RBU2nQkj+asKZ/ht3sU3hTau+dGuTjJrQS3nNSw4+vnwUJnN/WogO/MmgKdrvVf3pUdLiucIog1E/Us1C8Y5wg==} 505 | dependencies: 506 | '@volar/code-gen': 0.40.1 507 | '@volar/source-map': 0.40.1 508 | '@vue/compiler-core': 3.2.37 509 | '@vue/compiler-dom': 3.2.37 510 | '@vue/compiler-sfc': 3.2.37 511 | '@vue/reactivity': 3.2.37 512 | '@vue/shared': 3.2.37 513 | dev: true 514 | 515 | /@volar/vue-typescript/0.40.1: 516 | resolution: {integrity: sha512-58nW/Xwy7VBkeIPmbyEmi/j1Ta2HxGl/5aFiEEpWxoas7vI1AM+txz8+MhWho4ZMw0w0eCqPtGgugD2rr+/v7w==} 517 | dependencies: 518 | '@volar/code-gen': 0.40.1 519 | '@volar/typescript-faster': 0.40.1 520 | '@volar/vue-language-core': 0.40.1 521 | dev: true 522 | 523 | /@vue-bridge/eslint-config/0.2.0_x7y5nmvio6pfqudbshgm4cij3q: 524 | resolution: {integrity: sha512-32je2xQD1F1jehDfLEc+d2aO5EwbMsrjh0kNN1Gy9uE3a2DFzgiGUfc11qP9EuxRnTFRd2HQJrzZCYw4tCRg/Q==} 525 | peerDependencies: 526 | eslint: ^8.0.0 || ^9.0.0 527 | eslint-plugin-vue: '>8.0.0' 528 | peerDependenciesMeta: 529 | eslint: 530 | optional: true 531 | eslint-plugin-vue: 532 | optional: true 533 | dependencies: 534 | eslint: 8.23.0 535 | eslint-plugin-vue: 9.4.0_eslint@8.23.0 536 | dev: true 537 | 538 | /@vue-bridge/runtime/0.1.1_vue@2.7.10: 539 | resolution: {integrity: sha512-mXTuiME52G0H2yQM3hw6a/HsZKSpKGs7fiq9BHGbL9/eUVTE7kYZSv7CC2pzoaCwWddF6tV8B8Q8Q/joKyIYTQ==} 540 | hasBin: true 541 | requiresBuild: true 542 | peerDependencies: 543 | '@vue/composition-api': '*' 544 | vue: ^2.7.0-0 || >=3.2.0 545 | peerDependenciesMeta: 546 | '@vue/composition-api': 547 | optional: true 548 | vue: 549 | optional: true 550 | dependencies: 551 | tslib: 2.4.0 552 | vue: 2.7.10 553 | dev: false 554 | 555 | /@vue-bridge/runtime/0.1.1_vue@3.2.37: 556 | resolution: {integrity: sha512-mXTuiME52G0H2yQM3hw6a/HsZKSpKGs7fiq9BHGbL9/eUVTE7kYZSv7CC2pzoaCwWddF6tV8B8Q8Q/joKyIYTQ==} 557 | hasBin: true 558 | requiresBuild: true 559 | peerDependencies: 560 | '@vue/composition-api': '*' 561 | vue: ^2.7.0-0 || >=3.2.0 562 | peerDependenciesMeta: 563 | '@vue/composition-api': 564 | optional: true 565 | vue: 566 | optional: true 567 | dependencies: 568 | tslib: 2.4.0 569 | vue: 3.2.37 570 | dev: false 571 | 572 | /@vue-bridge/testing/0.2.1_53g5u5a44atmcvvmpo7z5vxoi4: 573 | resolution: {integrity: sha512-XEp+gZObyHypmrpH1xnNWEx/kWkpLj/elqWnguJlgxErTf+NzSIoqaCPkkBrn1Ea3cQ9zVSb9AloptktNdMK/w==} 574 | peerDependencies: 575 | '@vue/test-utils': ^1.2.1 || ^2.0.0-0 576 | vue: ^2.7.0-0 || ^3.2.* 577 | peerDependenciesMeta: 578 | '@vue/test-utils': 579 | optional: true 580 | vue: 581 | optional: true 582 | dependencies: 583 | '@vue/test-utils': 1.3.0_42puyn3dcxirnpdjnosl7pbb6a 584 | vue: 2.7.10 585 | dev: true 586 | 587 | /@vue-bridge/testing/0.2.1_wlaifosis4rwreoeq6u47n65qe: 588 | resolution: {integrity: sha512-XEp+gZObyHypmrpH1xnNWEx/kWkpLj/elqWnguJlgxErTf+NzSIoqaCPkkBrn1Ea3cQ9zVSb9AloptktNdMK/w==} 589 | peerDependencies: 590 | '@vue/test-utils': ^1.2.1 || ^2.0.0-0 591 | vue: ^2.7.0-0 || ^3.2.* 592 | peerDependenciesMeta: 593 | '@vue/test-utils': 594 | optional: true 595 | vue: 596 | optional: true 597 | dependencies: 598 | '@vue/test-utils': 2.0.2_vue@3.2.37 599 | vue: 3.2.37 600 | dev: true 601 | 602 | /@vue-bridge/vite-plugin/0.2.0: 603 | resolution: {integrity: sha512-RjjJYW51a5Q/H1pbKAUWYzXiJo8gmBQtpF72BHBwGyKPKdvFJEBiHdxrJ6Ojajz/SHFQxaP2jVQiglnUONL/Zw==} 604 | dependencies: 605 | '@swc/core': 1.2.218 606 | debug: 4.3.4 607 | resolve-pkg: 2.0.0 608 | transitivePeerDependencies: 609 | - supports-color 610 | dev: true 611 | 612 | /@vue/compiler-core/3.2.37: 613 | resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} 614 | dependencies: 615 | '@babel/parser': 7.18.13 616 | '@vue/shared': 3.2.37 617 | estree-walker: 2.0.2 618 | source-map: 0.6.1 619 | 620 | /@vue/compiler-dom/3.2.37: 621 | resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} 622 | dependencies: 623 | '@vue/compiler-core': 3.2.37 624 | '@vue/shared': 3.2.37 625 | 626 | /@vue/compiler-sfc/2.7.10: 627 | resolution: {integrity: sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==} 628 | dependencies: 629 | '@babel/parser': 7.18.13 630 | postcss: 8.4.16 631 | source-map: 0.6.1 632 | 633 | /@vue/compiler-sfc/3.2.37: 634 | resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} 635 | dependencies: 636 | '@babel/parser': 7.18.13 637 | '@vue/compiler-core': 3.2.37 638 | '@vue/compiler-dom': 3.2.37 639 | '@vue/compiler-ssr': 3.2.37 640 | '@vue/reactivity-transform': 3.2.37 641 | '@vue/shared': 3.2.37 642 | estree-walker: 2.0.2 643 | magic-string: 0.25.9 644 | postcss: 8.4.16 645 | source-map: 0.6.1 646 | 647 | /@vue/compiler-ssr/3.2.37: 648 | resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} 649 | dependencies: 650 | '@vue/compiler-dom': 3.2.37 651 | '@vue/shared': 3.2.37 652 | 653 | /@vue/reactivity-transform/3.2.37: 654 | resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} 655 | dependencies: 656 | '@babel/parser': 7.18.13 657 | '@vue/compiler-core': 3.2.37 658 | '@vue/shared': 3.2.37 659 | estree-walker: 2.0.2 660 | magic-string: 0.25.9 661 | 662 | /@vue/reactivity/3.2.37: 663 | resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} 664 | dependencies: 665 | '@vue/shared': 3.2.37 666 | 667 | /@vue/runtime-core/3.2.37: 668 | resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} 669 | dependencies: 670 | '@vue/reactivity': 3.2.37 671 | '@vue/shared': 3.2.37 672 | 673 | /@vue/runtime-dom/3.2.37: 674 | resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} 675 | dependencies: 676 | '@vue/runtime-core': 3.2.37 677 | '@vue/shared': 3.2.37 678 | csstype: 2.6.20 679 | 680 | /@vue/server-renderer/3.2.37_vue@3.2.37: 681 | resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} 682 | peerDependencies: 683 | vue: 3.2.37 684 | dependencies: 685 | '@vue/compiler-ssr': 3.2.37 686 | '@vue/shared': 3.2.37 687 | vue: 3.2.37 688 | 689 | /@vue/shared/3.2.37: 690 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 691 | 692 | /@vue/test-utils/1.3.0_42puyn3dcxirnpdjnosl7pbb6a: 693 | resolution: {integrity: sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==} 694 | peerDependencies: 695 | vue: 2.x 696 | vue-template-compiler: ^2.x 697 | dependencies: 698 | dom-event-types: 1.1.0 699 | lodash: 4.17.21 700 | pretty: 2.0.0 701 | vue: 2.7.10 702 | vue-template-compiler: 2.7.10_vue@2.7.10 703 | dev: true 704 | 705 | /@vue/test-utils/2.0.2_vue@3.2.37: 706 | resolution: {integrity: sha512-E2P4oXSaWDqTZNbmKZFVLrNN/siVN78YkEqs7pHryWerrlZR9bBFLWdJwRoguX45Ru6HxIflzKl4vQvwRMwm5g==} 707 | peerDependencies: 708 | vue: ^3.0.1 709 | dependencies: 710 | vue: 3.2.37 711 | dev: true 712 | 713 | /@vue/tsconfig/0.1.3_@types+node@16.11.56: 714 | resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} 715 | peerDependencies: 716 | '@types/node': '*' 717 | peerDependenciesMeta: 718 | '@types/node': 719 | optional: true 720 | dependencies: 721 | '@types/node': 16.11.56 722 | dev: true 723 | 724 | /abab/2.0.6: 725 | resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} 726 | dev: true 727 | 728 | /abbrev/1.1.1: 729 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 730 | dev: true 731 | 732 | /acorn-globals/6.0.0: 733 | resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} 734 | dependencies: 735 | acorn: 7.4.1 736 | acorn-walk: 7.2.0 737 | dev: true 738 | 739 | /acorn-jsx/5.3.2_acorn@8.8.0: 740 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 741 | peerDependencies: 742 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 743 | dependencies: 744 | acorn: 8.8.0 745 | dev: true 746 | 747 | /acorn-walk/7.2.0: 748 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 749 | engines: {node: '>=0.4.0'} 750 | dev: true 751 | 752 | /acorn/7.4.1: 753 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 754 | engines: {node: '>=0.4.0'} 755 | hasBin: true 756 | dev: true 757 | 758 | /acorn/8.8.0: 759 | resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} 760 | engines: {node: '>=0.4.0'} 761 | hasBin: true 762 | dev: true 763 | 764 | /agent-base/6.0.2: 765 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 766 | engines: {node: '>= 6.0.0'} 767 | dependencies: 768 | debug: 4.3.4 769 | transitivePeerDependencies: 770 | - supports-color 771 | dev: true 772 | 773 | /ajv/6.12.6: 774 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 775 | dependencies: 776 | fast-deep-equal: 3.1.3 777 | fast-json-stable-stringify: 2.1.0 778 | json-schema-traverse: 0.4.1 779 | uri-js: 4.4.1 780 | dev: true 781 | 782 | /ansi-regex/5.0.1: 783 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 784 | engines: {node: '>=8'} 785 | dev: true 786 | 787 | /ansi-styles/4.3.0: 788 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 789 | engines: {node: '>=8'} 790 | dependencies: 791 | color-convert: 2.0.1 792 | dev: true 793 | 794 | /argparse/2.0.1: 795 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 796 | dev: true 797 | 798 | /array-union/2.1.0: 799 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 800 | engines: {node: '>=8'} 801 | dev: true 802 | 803 | /assertion-error/1.1.0: 804 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 805 | dev: true 806 | 807 | /asynckit/0.4.0: 808 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 809 | dev: true 810 | 811 | /balanced-match/1.0.2: 812 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 813 | dev: true 814 | 815 | /boolbase/1.0.0: 816 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 817 | dev: true 818 | 819 | /brace-expansion/1.1.11: 820 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 821 | dependencies: 822 | balanced-match: 1.0.2 823 | concat-map: 0.0.1 824 | dev: true 825 | 826 | /braces/3.0.2: 827 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 828 | engines: {node: '>=8'} 829 | dependencies: 830 | fill-range: 7.0.1 831 | dev: true 832 | 833 | /browser-process-hrtime/1.0.0: 834 | resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} 835 | dev: true 836 | 837 | /browserslist/4.21.3: 838 | resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} 839 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 840 | hasBin: true 841 | dependencies: 842 | caniuse-lite: 1.0.30001383 843 | electron-to-chromium: 1.4.233 844 | node-releases: 2.0.6 845 | update-browserslist-db: 1.0.5_browserslist@4.21.3 846 | dev: true 847 | 848 | /callsites/3.1.0: 849 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 850 | engines: {node: '>=6'} 851 | dev: true 852 | 853 | /caniuse-lite/1.0.30001383: 854 | resolution: {integrity: sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==} 855 | dev: true 856 | 857 | /chai/4.3.6: 858 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} 859 | engines: {node: '>=4'} 860 | dependencies: 861 | assertion-error: 1.1.0 862 | check-error: 1.0.2 863 | deep-eql: 3.0.1 864 | get-func-name: 2.0.0 865 | loupe: 2.3.4 866 | pathval: 1.1.1 867 | type-detect: 4.0.8 868 | dev: true 869 | 870 | /chalk/4.1.2: 871 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 872 | engines: {node: '>=10'} 873 | dependencies: 874 | ansi-styles: 4.3.0 875 | supports-color: 7.2.0 876 | dev: true 877 | 878 | /check-error/1.0.2: 879 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 880 | dev: true 881 | 882 | /color-convert/2.0.1: 883 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 884 | engines: {node: '>=7.0.0'} 885 | dependencies: 886 | color-name: 1.1.4 887 | dev: true 888 | 889 | /color-name/1.1.4: 890 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 891 | dev: true 892 | 893 | /combined-stream/1.0.8: 894 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 895 | engines: {node: '>= 0.8'} 896 | dependencies: 897 | delayed-stream: 1.0.0 898 | dev: true 899 | 900 | /commander/2.20.3: 901 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 902 | dev: true 903 | 904 | /concat-map/0.0.1: 905 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 906 | dev: true 907 | 908 | /condense-newlines/0.2.1: 909 | resolution: {integrity: sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=} 910 | engines: {node: '>=0.10.0'} 911 | dependencies: 912 | extend-shallow: 2.0.1 913 | is-whitespace: 0.3.0 914 | kind-of: 3.2.2 915 | dev: true 916 | 917 | /config-chain/1.1.13: 918 | resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} 919 | dependencies: 920 | ini: 1.3.8 921 | proto-list: 1.2.4 922 | dev: true 923 | 924 | /core-js/3.25.0: 925 | resolution: {integrity: sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==} 926 | requiresBuild: true 927 | dev: false 928 | 929 | /cross-spawn/7.0.3: 930 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 931 | engines: {node: '>= 8'} 932 | dependencies: 933 | path-key: 3.1.1 934 | shebang-command: 2.0.0 935 | which: 2.0.2 936 | dev: true 937 | 938 | /cssesc/3.0.0: 939 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 940 | engines: {node: '>=4'} 941 | hasBin: true 942 | dev: true 943 | 944 | /cssom/0.3.8: 945 | resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} 946 | dev: true 947 | 948 | /cssom/0.5.0: 949 | resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} 950 | dev: true 951 | 952 | /cssstyle/2.3.0: 953 | resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} 954 | engines: {node: '>=8'} 955 | dependencies: 956 | cssom: 0.3.8 957 | dev: true 958 | 959 | /csstype/2.6.20: 960 | resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} 961 | 962 | /csstype/3.1.0: 963 | resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} 964 | 965 | /data-urls/3.0.2: 966 | resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} 967 | engines: {node: '>=12'} 968 | dependencies: 969 | abab: 2.0.6 970 | whatwg-mimetype: 3.0.0 971 | whatwg-url: 11.0.0 972 | dev: true 973 | 974 | /de-indent/1.0.2: 975 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 976 | dev: true 977 | 978 | /debug/4.3.4: 979 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 980 | engines: {node: '>=6.0'} 981 | peerDependencies: 982 | supports-color: '*' 983 | peerDependenciesMeta: 984 | supports-color: 985 | optional: true 986 | dependencies: 987 | ms: 2.1.2 988 | dev: true 989 | 990 | /decimal.js/10.3.1: 991 | resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} 992 | dev: true 993 | 994 | /deep-eql/3.0.1: 995 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} 996 | engines: {node: '>=0.12'} 997 | dependencies: 998 | type-detect: 4.0.8 999 | dev: true 1000 | 1001 | /deep-is/0.1.4: 1002 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1003 | dev: true 1004 | 1005 | /delayed-stream/1.0.0: 1006 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1007 | engines: {node: '>=0.4.0'} 1008 | dev: true 1009 | 1010 | /dir-glob/3.0.1: 1011 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1012 | engines: {node: '>=8'} 1013 | dependencies: 1014 | path-type: 4.0.0 1015 | dev: true 1016 | 1017 | /doctrine/3.0.0: 1018 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1019 | engines: {node: '>=6.0.0'} 1020 | dependencies: 1021 | esutils: 2.0.3 1022 | dev: true 1023 | 1024 | /dom-event-types/1.1.0: 1025 | resolution: {integrity: sha512-jNCX+uNJ3v38BKvPbpki6j5ItVlnSqVV6vDWGS6rExzCMjsc39frLjm1n91o6YaKK6AZl0wLloItW6C6mr61BQ==} 1026 | dev: true 1027 | 1028 | /domexception/4.0.0: 1029 | resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} 1030 | engines: {node: '>=12'} 1031 | dependencies: 1032 | webidl-conversions: 7.0.0 1033 | dev: true 1034 | 1035 | /editorconfig/0.15.3: 1036 | resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} 1037 | hasBin: true 1038 | dependencies: 1039 | commander: 2.20.3 1040 | lru-cache: 4.1.5 1041 | semver: 5.7.1 1042 | sigmund: 1.0.1 1043 | dev: true 1044 | 1045 | /electron-to-chromium/1.4.233: 1046 | resolution: {integrity: sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw==} 1047 | dev: true 1048 | 1049 | /entities/4.3.1: 1050 | resolution: {integrity: sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==} 1051 | engines: {node: '>=0.12'} 1052 | dev: true 1053 | 1054 | /esbuild-android-64/0.14.49: 1055 | resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==} 1056 | engines: {node: '>=12'} 1057 | cpu: [x64] 1058 | os: [android] 1059 | requiresBuild: true 1060 | dev: true 1061 | optional: true 1062 | 1063 | /esbuild-android-arm64/0.14.49: 1064 | resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==} 1065 | engines: {node: '>=12'} 1066 | cpu: [arm64] 1067 | os: [android] 1068 | requiresBuild: true 1069 | dev: true 1070 | optional: true 1071 | 1072 | /esbuild-darwin-64/0.14.49: 1073 | resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==} 1074 | engines: {node: '>=12'} 1075 | cpu: [x64] 1076 | os: [darwin] 1077 | requiresBuild: true 1078 | dev: true 1079 | optional: true 1080 | 1081 | /esbuild-darwin-arm64/0.14.49: 1082 | resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==} 1083 | engines: {node: '>=12'} 1084 | cpu: [arm64] 1085 | os: [darwin] 1086 | requiresBuild: true 1087 | dev: true 1088 | optional: true 1089 | 1090 | /esbuild-freebsd-64/0.14.49: 1091 | resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==} 1092 | engines: {node: '>=12'} 1093 | cpu: [x64] 1094 | os: [freebsd] 1095 | requiresBuild: true 1096 | dev: true 1097 | optional: true 1098 | 1099 | /esbuild-freebsd-arm64/0.14.49: 1100 | resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==} 1101 | engines: {node: '>=12'} 1102 | cpu: [arm64] 1103 | os: [freebsd] 1104 | requiresBuild: true 1105 | dev: true 1106 | optional: true 1107 | 1108 | /esbuild-linux-32/0.14.49: 1109 | resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==} 1110 | engines: {node: '>=12'} 1111 | cpu: [ia32] 1112 | os: [linux] 1113 | requiresBuild: true 1114 | dev: true 1115 | optional: true 1116 | 1117 | /esbuild-linux-64/0.14.49: 1118 | resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==} 1119 | engines: {node: '>=12'} 1120 | cpu: [x64] 1121 | os: [linux] 1122 | requiresBuild: true 1123 | dev: true 1124 | optional: true 1125 | 1126 | /esbuild-linux-arm/0.14.49: 1127 | resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==} 1128 | engines: {node: '>=12'} 1129 | cpu: [arm] 1130 | os: [linux] 1131 | requiresBuild: true 1132 | dev: true 1133 | optional: true 1134 | 1135 | /esbuild-linux-arm64/0.14.49: 1136 | resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==} 1137 | engines: {node: '>=12'} 1138 | cpu: [arm64] 1139 | os: [linux] 1140 | requiresBuild: true 1141 | dev: true 1142 | optional: true 1143 | 1144 | /esbuild-linux-mips64le/0.14.49: 1145 | resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==} 1146 | engines: {node: '>=12'} 1147 | cpu: [mips64el] 1148 | os: [linux] 1149 | requiresBuild: true 1150 | dev: true 1151 | optional: true 1152 | 1153 | /esbuild-linux-ppc64le/0.14.49: 1154 | resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==} 1155 | engines: {node: '>=12'} 1156 | cpu: [ppc64] 1157 | os: [linux] 1158 | requiresBuild: true 1159 | dev: true 1160 | optional: true 1161 | 1162 | /esbuild-linux-riscv64/0.14.49: 1163 | resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==} 1164 | engines: {node: '>=12'} 1165 | cpu: [riscv64] 1166 | os: [linux] 1167 | requiresBuild: true 1168 | dev: true 1169 | optional: true 1170 | 1171 | /esbuild-linux-s390x/0.14.49: 1172 | resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==} 1173 | engines: {node: '>=12'} 1174 | cpu: [s390x] 1175 | os: [linux] 1176 | requiresBuild: true 1177 | dev: true 1178 | optional: true 1179 | 1180 | /esbuild-netbsd-64/0.14.49: 1181 | resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==} 1182 | engines: {node: '>=12'} 1183 | cpu: [x64] 1184 | os: [netbsd] 1185 | requiresBuild: true 1186 | dev: true 1187 | optional: true 1188 | 1189 | /esbuild-openbsd-64/0.14.49: 1190 | resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==} 1191 | engines: {node: '>=12'} 1192 | cpu: [x64] 1193 | os: [openbsd] 1194 | requiresBuild: true 1195 | dev: true 1196 | optional: true 1197 | 1198 | /esbuild-sunos-64/0.14.49: 1199 | resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==} 1200 | engines: {node: '>=12'} 1201 | cpu: [x64] 1202 | os: [sunos] 1203 | requiresBuild: true 1204 | dev: true 1205 | optional: true 1206 | 1207 | /esbuild-windows-32/0.14.49: 1208 | resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==} 1209 | engines: {node: '>=12'} 1210 | cpu: [ia32] 1211 | os: [win32] 1212 | requiresBuild: true 1213 | dev: true 1214 | optional: true 1215 | 1216 | /esbuild-windows-64/0.14.49: 1217 | resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==} 1218 | engines: {node: '>=12'} 1219 | cpu: [x64] 1220 | os: [win32] 1221 | requiresBuild: true 1222 | dev: true 1223 | optional: true 1224 | 1225 | /esbuild-windows-arm64/0.14.49: 1226 | resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==} 1227 | engines: {node: '>=12'} 1228 | cpu: [arm64] 1229 | os: [win32] 1230 | requiresBuild: true 1231 | dev: true 1232 | optional: true 1233 | 1234 | /esbuild/0.14.49: 1235 | resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==} 1236 | engines: {node: '>=12'} 1237 | hasBin: true 1238 | requiresBuild: true 1239 | optionalDependencies: 1240 | esbuild-android-64: 0.14.49 1241 | esbuild-android-arm64: 0.14.49 1242 | esbuild-darwin-64: 0.14.49 1243 | esbuild-darwin-arm64: 0.14.49 1244 | esbuild-freebsd-64: 0.14.49 1245 | esbuild-freebsd-arm64: 0.14.49 1246 | esbuild-linux-32: 0.14.49 1247 | esbuild-linux-64: 0.14.49 1248 | esbuild-linux-arm: 0.14.49 1249 | esbuild-linux-arm64: 0.14.49 1250 | esbuild-linux-mips64le: 0.14.49 1251 | esbuild-linux-ppc64le: 0.14.49 1252 | esbuild-linux-riscv64: 0.14.49 1253 | esbuild-linux-s390x: 0.14.49 1254 | esbuild-netbsd-64: 0.14.49 1255 | esbuild-openbsd-64: 0.14.49 1256 | esbuild-sunos-64: 0.14.49 1257 | esbuild-windows-32: 0.14.49 1258 | esbuild-windows-64: 0.14.49 1259 | esbuild-windows-arm64: 0.14.49 1260 | dev: true 1261 | 1262 | /escalade/3.1.1: 1263 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1264 | engines: {node: '>=6'} 1265 | dev: true 1266 | 1267 | /escape-string-regexp/4.0.0: 1268 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1269 | engines: {node: '>=10'} 1270 | dev: true 1271 | 1272 | /escodegen/2.0.0: 1273 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} 1274 | engines: {node: '>=6.0'} 1275 | hasBin: true 1276 | dependencies: 1277 | esprima: 4.0.1 1278 | estraverse: 5.3.0 1279 | esutils: 2.0.3 1280 | optionator: 0.8.3 1281 | optionalDependencies: 1282 | source-map: 0.6.1 1283 | dev: true 1284 | 1285 | /eslint-plugin-vue/9.4.0_eslint@8.23.0: 1286 | resolution: {integrity: sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ==} 1287 | engines: {node: ^14.17.0 || >=16.0.0} 1288 | peerDependencies: 1289 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 1290 | dependencies: 1291 | eslint: 8.23.0 1292 | eslint-utils: 3.0.0_eslint@8.23.0 1293 | natural-compare: 1.4.0 1294 | nth-check: 2.1.1 1295 | postcss-selector-parser: 6.0.10 1296 | semver: 7.3.7 1297 | vue-eslint-parser: 9.0.3_eslint@8.23.0 1298 | xml-name-validator: 4.0.0 1299 | transitivePeerDependencies: 1300 | - supports-color 1301 | dev: true 1302 | 1303 | /eslint-scope/5.1.1: 1304 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1305 | engines: {node: '>=8.0.0'} 1306 | dependencies: 1307 | esrecurse: 4.3.0 1308 | estraverse: 4.3.0 1309 | dev: true 1310 | 1311 | /eslint-scope/7.1.1: 1312 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1313 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1314 | dependencies: 1315 | esrecurse: 4.3.0 1316 | estraverse: 5.3.0 1317 | dev: true 1318 | 1319 | /eslint-utils/3.0.0_eslint@8.23.0: 1320 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1321 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1322 | peerDependencies: 1323 | eslint: '>=5' 1324 | dependencies: 1325 | eslint: 8.23.0 1326 | eslint-visitor-keys: 2.1.0 1327 | dev: true 1328 | 1329 | /eslint-visitor-keys/2.1.0: 1330 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1331 | engines: {node: '>=10'} 1332 | dev: true 1333 | 1334 | /eslint-visitor-keys/3.3.0: 1335 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1336 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1337 | dev: true 1338 | 1339 | /eslint/8.23.0: 1340 | resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} 1341 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1342 | hasBin: true 1343 | dependencies: 1344 | '@eslint/eslintrc': 1.3.1 1345 | '@humanwhocodes/config-array': 0.10.4 1346 | '@humanwhocodes/gitignore-to-minimatch': 1.0.2 1347 | '@humanwhocodes/module-importer': 1.0.1 1348 | ajv: 6.12.6 1349 | chalk: 4.1.2 1350 | cross-spawn: 7.0.3 1351 | debug: 4.3.4 1352 | doctrine: 3.0.0 1353 | escape-string-regexp: 4.0.0 1354 | eslint-scope: 7.1.1 1355 | eslint-utils: 3.0.0_eslint@8.23.0 1356 | eslint-visitor-keys: 3.3.0 1357 | espree: 9.4.0 1358 | esquery: 1.4.0 1359 | esutils: 2.0.3 1360 | fast-deep-equal: 3.1.3 1361 | file-entry-cache: 6.0.1 1362 | find-up: 5.0.0 1363 | functional-red-black-tree: 1.0.1 1364 | glob-parent: 6.0.2 1365 | globals: 13.17.0 1366 | globby: 11.1.0 1367 | grapheme-splitter: 1.0.4 1368 | ignore: 5.2.0 1369 | import-fresh: 3.3.0 1370 | imurmurhash: 0.1.4 1371 | is-glob: 4.0.3 1372 | js-yaml: 4.1.0 1373 | json-stable-stringify-without-jsonify: 1.0.1 1374 | levn: 0.4.1 1375 | lodash.merge: 4.6.2 1376 | minimatch: 3.1.2 1377 | natural-compare: 1.4.0 1378 | optionator: 0.9.1 1379 | regexpp: 3.2.0 1380 | strip-ansi: 6.0.1 1381 | strip-json-comments: 3.1.1 1382 | text-table: 0.2.0 1383 | transitivePeerDependencies: 1384 | - supports-color 1385 | dev: true 1386 | 1387 | /espree/9.3.2: 1388 | resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} 1389 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1390 | dependencies: 1391 | acorn: 8.8.0 1392 | acorn-jsx: 5.3.2_acorn@8.8.0 1393 | eslint-visitor-keys: 3.3.0 1394 | dev: true 1395 | 1396 | /espree/9.4.0: 1397 | resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} 1398 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1399 | dependencies: 1400 | acorn: 8.8.0 1401 | acorn-jsx: 5.3.2_acorn@8.8.0 1402 | eslint-visitor-keys: 3.3.0 1403 | dev: true 1404 | 1405 | /esprima/4.0.1: 1406 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1407 | engines: {node: '>=4'} 1408 | hasBin: true 1409 | dev: true 1410 | 1411 | /esquery/1.4.0: 1412 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1413 | engines: {node: '>=0.10'} 1414 | dependencies: 1415 | estraverse: 5.3.0 1416 | dev: true 1417 | 1418 | /esrecurse/4.3.0: 1419 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1420 | engines: {node: '>=4.0'} 1421 | dependencies: 1422 | estraverse: 5.3.0 1423 | dev: true 1424 | 1425 | /estraverse/4.3.0: 1426 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1427 | engines: {node: '>=4.0'} 1428 | dev: true 1429 | 1430 | /estraverse/5.3.0: 1431 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1432 | engines: {node: '>=4.0'} 1433 | dev: true 1434 | 1435 | /estree-walker/2.0.2: 1436 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1437 | 1438 | /esutils/2.0.3: 1439 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1440 | engines: {node: '>=0.10.0'} 1441 | dev: true 1442 | 1443 | /extend-shallow/2.0.1: 1444 | resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} 1445 | engines: {node: '>=0.10.0'} 1446 | dependencies: 1447 | is-extendable: 0.1.1 1448 | dev: true 1449 | 1450 | /fast-deep-equal/3.1.3: 1451 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1452 | dev: true 1453 | 1454 | /fast-glob/3.2.11: 1455 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 1456 | engines: {node: '>=8.6.0'} 1457 | dependencies: 1458 | '@nodelib/fs.stat': 2.0.5 1459 | '@nodelib/fs.walk': 1.2.8 1460 | glob-parent: 5.1.2 1461 | merge2: 1.4.1 1462 | micromatch: 4.0.5 1463 | dev: true 1464 | 1465 | /fast-json-stable-stringify/2.1.0: 1466 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1467 | dev: true 1468 | 1469 | /fast-levenshtein/2.0.6: 1470 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1471 | dev: true 1472 | 1473 | /fastq/1.13.0: 1474 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1475 | dependencies: 1476 | reusify: 1.0.4 1477 | dev: true 1478 | 1479 | /file-entry-cache/6.0.1: 1480 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1481 | engines: {node: ^10.12.0 || >=12.0.0} 1482 | dependencies: 1483 | flat-cache: 3.0.4 1484 | dev: true 1485 | 1486 | /fill-range/7.0.1: 1487 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1488 | engines: {node: '>=8'} 1489 | dependencies: 1490 | to-regex-range: 5.0.1 1491 | dev: true 1492 | 1493 | /find-up/5.0.0: 1494 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1495 | engines: {node: '>=10'} 1496 | dependencies: 1497 | locate-path: 6.0.0 1498 | path-exists: 4.0.0 1499 | dev: true 1500 | 1501 | /flat-cache/3.0.4: 1502 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1503 | engines: {node: ^10.12.0 || >=12.0.0} 1504 | dependencies: 1505 | flatted: 3.2.6 1506 | rimraf: 3.0.2 1507 | dev: true 1508 | 1509 | /flatted/3.2.6: 1510 | resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} 1511 | dev: true 1512 | 1513 | /form-data/4.0.0: 1514 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1515 | engines: {node: '>= 6'} 1516 | dependencies: 1517 | asynckit: 0.4.0 1518 | combined-stream: 1.0.8 1519 | mime-types: 2.1.35 1520 | dev: true 1521 | 1522 | /fs.realpath/1.0.0: 1523 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1524 | dev: true 1525 | 1526 | /fsevents/2.3.2: 1527 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1528 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1529 | os: [darwin] 1530 | requiresBuild: true 1531 | dev: true 1532 | optional: true 1533 | 1534 | /function-bind/1.1.1: 1535 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1536 | dev: true 1537 | 1538 | /functional-red-black-tree/1.0.1: 1539 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 1540 | dev: true 1541 | 1542 | /get-func-name/2.0.0: 1543 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1544 | dev: true 1545 | 1546 | /glob-parent/5.1.2: 1547 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1548 | engines: {node: '>= 6'} 1549 | dependencies: 1550 | is-glob: 4.0.3 1551 | dev: true 1552 | 1553 | /glob-parent/6.0.2: 1554 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1555 | engines: {node: '>=10.13.0'} 1556 | dependencies: 1557 | is-glob: 4.0.3 1558 | dev: true 1559 | 1560 | /glob/7.2.0: 1561 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 1562 | dependencies: 1563 | fs.realpath: 1.0.0 1564 | inflight: 1.0.6 1565 | inherits: 2.0.4 1566 | minimatch: 3.1.2 1567 | once: 1.4.0 1568 | path-is-absolute: 1.0.1 1569 | dev: true 1570 | 1571 | /glob/7.2.3: 1572 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1573 | dependencies: 1574 | fs.realpath: 1.0.0 1575 | inflight: 1.0.6 1576 | inherits: 2.0.4 1577 | minimatch: 3.1.2 1578 | once: 1.4.0 1579 | path-is-absolute: 1.0.1 1580 | dev: true 1581 | 1582 | /globals/13.17.0: 1583 | resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} 1584 | engines: {node: '>=8'} 1585 | dependencies: 1586 | type-fest: 0.20.2 1587 | dev: true 1588 | 1589 | /globby/11.1.0: 1590 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1591 | engines: {node: '>=10'} 1592 | dependencies: 1593 | array-union: 2.1.0 1594 | dir-glob: 3.0.1 1595 | fast-glob: 3.2.11 1596 | ignore: 5.2.0 1597 | merge2: 1.4.1 1598 | slash: 3.0.0 1599 | dev: true 1600 | 1601 | /grapheme-splitter/1.0.4: 1602 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1603 | dev: true 1604 | 1605 | /has-flag/4.0.0: 1606 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1607 | engines: {node: '>=8'} 1608 | dev: true 1609 | 1610 | /has/1.0.3: 1611 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1612 | engines: {node: '>= 0.4.0'} 1613 | dependencies: 1614 | function-bind: 1.1.1 1615 | dev: true 1616 | 1617 | /he/1.2.0: 1618 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 1619 | hasBin: true 1620 | dev: true 1621 | 1622 | /html-encoding-sniffer/3.0.0: 1623 | resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} 1624 | engines: {node: '>=12'} 1625 | dependencies: 1626 | whatwg-encoding: 2.0.0 1627 | dev: true 1628 | 1629 | /http-proxy-agent/5.0.0: 1630 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} 1631 | engines: {node: '>= 6'} 1632 | dependencies: 1633 | '@tootallnate/once': 2.0.0 1634 | agent-base: 6.0.2 1635 | debug: 4.3.4 1636 | transitivePeerDependencies: 1637 | - supports-color 1638 | dev: true 1639 | 1640 | /https-proxy-agent/5.0.1: 1641 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 1642 | engines: {node: '>= 6'} 1643 | dependencies: 1644 | agent-base: 6.0.2 1645 | debug: 4.3.4 1646 | transitivePeerDependencies: 1647 | - supports-color 1648 | dev: true 1649 | 1650 | /iconv-lite/0.6.3: 1651 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1652 | engines: {node: '>=0.10.0'} 1653 | dependencies: 1654 | safer-buffer: 2.1.2 1655 | dev: true 1656 | 1657 | /ignore/5.2.0: 1658 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 1659 | engines: {node: '>= 4'} 1660 | dev: true 1661 | 1662 | /import-fresh/3.3.0: 1663 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1664 | engines: {node: '>=6'} 1665 | dependencies: 1666 | parent-module: 1.0.1 1667 | resolve-from: 4.0.0 1668 | dev: true 1669 | 1670 | /imurmurhash/0.1.4: 1671 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1672 | engines: {node: '>=0.8.19'} 1673 | dev: true 1674 | 1675 | /inflight/1.0.6: 1676 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1677 | dependencies: 1678 | once: 1.4.0 1679 | wrappy: 1.0.2 1680 | dev: true 1681 | 1682 | /inherits/2.0.4: 1683 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1684 | dev: true 1685 | 1686 | /ini/1.3.8: 1687 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1688 | dev: true 1689 | 1690 | /is-buffer/1.1.6: 1691 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 1692 | dev: true 1693 | 1694 | /is-core-module/2.9.0: 1695 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 1696 | dependencies: 1697 | has: 1.0.3 1698 | dev: true 1699 | 1700 | /is-extendable/0.1.1: 1701 | resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} 1702 | engines: {node: '>=0.10.0'} 1703 | dev: true 1704 | 1705 | /is-extglob/2.1.1: 1706 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1707 | engines: {node: '>=0.10.0'} 1708 | dev: true 1709 | 1710 | /is-glob/4.0.3: 1711 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1712 | engines: {node: '>=0.10.0'} 1713 | dependencies: 1714 | is-extglob: 2.1.1 1715 | dev: true 1716 | 1717 | /is-number/7.0.0: 1718 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1719 | engines: {node: '>=0.12.0'} 1720 | dev: true 1721 | 1722 | /is-potential-custom-element-name/1.0.1: 1723 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1724 | dev: true 1725 | 1726 | /is-whitespace/0.3.0: 1727 | resolution: {integrity: sha1-Fjnssb4DauxppUy7QBz77XEUq38=} 1728 | engines: {node: '>=0.10.0'} 1729 | dev: true 1730 | 1731 | /isexe/2.0.0: 1732 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1733 | dev: true 1734 | 1735 | /js-beautify/1.14.2: 1736 | resolution: {integrity: sha512-H85kX95a53os+q1OCqtYe8AXAmgy3BvtysA/V83S3fdhznm6WlUpGi14DqSPbKFsL3dXZFXYl7YQwW9U1+76ng==} 1737 | engines: {node: '>=10'} 1738 | hasBin: true 1739 | dependencies: 1740 | config-chain: 1.1.13 1741 | editorconfig: 0.15.3 1742 | glob: 7.2.0 1743 | nopt: 5.0.0 1744 | dev: true 1745 | 1746 | /js-yaml/4.1.0: 1747 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1748 | hasBin: true 1749 | dependencies: 1750 | argparse: 2.0.1 1751 | dev: true 1752 | 1753 | /jsdom/20.0.0: 1754 | resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} 1755 | engines: {node: '>=14'} 1756 | peerDependencies: 1757 | canvas: ^2.5.0 1758 | peerDependenciesMeta: 1759 | canvas: 1760 | optional: true 1761 | dependencies: 1762 | abab: 2.0.6 1763 | acorn: 8.8.0 1764 | acorn-globals: 6.0.0 1765 | cssom: 0.5.0 1766 | cssstyle: 2.3.0 1767 | data-urls: 3.0.2 1768 | decimal.js: 10.3.1 1769 | domexception: 4.0.0 1770 | escodegen: 2.0.0 1771 | form-data: 4.0.0 1772 | html-encoding-sniffer: 3.0.0 1773 | http-proxy-agent: 5.0.0 1774 | https-proxy-agent: 5.0.1 1775 | is-potential-custom-element-name: 1.0.1 1776 | nwsapi: 2.2.1 1777 | parse5: 7.0.0 1778 | saxes: 6.0.0 1779 | symbol-tree: 3.2.4 1780 | tough-cookie: 4.0.0 1781 | w3c-hr-time: 1.0.2 1782 | w3c-xmlserializer: 3.0.0 1783 | webidl-conversions: 7.0.0 1784 | whatwg-encoding: 2.0.0 1785 | whatwg-mimetype: 3.0.0 1786 | whatwg-url: 11.0.0 1787 | ws: 8.8.1 1788 | xml-name-validator: 4.0.0 1789 | transitivePeerDependencies: 1790 | - bufferutil 1791 | - supports-color 1792 | - utf-8-validate 1793 | dev: true 1794 | 1795 | /json-schema-traverse/0.4.1: 1796 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1797 | dev: true 1798 | 1799 | /json-stable-stringify-without-jsonify/1.0.1: 1800 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1801 | dev: true 1802 | 1803 | /kind-of/3.2.2: 1804 | resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} 1805 | engines: {node: '>=0.10.0'} 1806 | dependencies: 1807 | is-buffer: 1.1.6 1808 | dev: true 1809 | 1810 | /levn/0.3.0: 1811 | resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} 1812 | engines: {node: '>= 0.8.0'} 1813 | dependencies: 1814 | prelude-ls: 1.1.2 1815 | type-check: 0.3.2 1816 | dev: true 1817 | 1818 | /levn/0.4.1: 1819 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1820 | engines: {node: '>= 0.8.0'} 1821 | dependencies: 1822 | prelude-ls: 1.2.1 1823 | type-check: 0.4.0 1824 | dev: true 1825 | 1826 | /local-pkg/0.4.2: 1827 | resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} 1828 | engines: {node: '>=14'} 1829 | dev: true 1830 | 1831 | /locate-path/6.0.0: 1832 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1833 | engines: {node: '>=10'} 1834 | dependencies: 1835 | p-locate: 5.0.0 1836 | dev: true 1837 | 1838 | /lodash.merge/4.6.2: 1839 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1840 | dev: true 1841 | 1842 | /lodash/4.17.21: 1843 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1844 | dev: true 1845 | 1846 | /loupe/2.3.4: 1847 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} 1848 | dependencies: 1849 | get-func-name: 2.0.0 1850 | dev: true 1851 | 1852 | /lru-cache/4.1.5: 1853 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1854 | dependencies: 1855 | pseudomap: 1.0.2 1856 | yallist: 2.1.2 1857 | dev: true 1858 | 1859 | /lru-cache/6.0.0: 1860 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1861 | engines: {node: '>=10'} 1862 | dependencies: 1863 | yallist: 4.0.0 1864 | dev: true 1865 | 1866 | /magic-string/0.25.9: 1867 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1868 | dependencies: 1869 | sourcemap-codec: 1.4.8 1870 | 1871 | /merge2/1.4.1: 1872 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1873 | engines: {node: '>= 8'} 1874 | dev: true 1875 | 1876 | /micromatch/4.0.5: 1877 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1878 | engines: {node: '>=8.6'} 1879 | dependencies: 1880 | braces: 3.0.2 1881 | picomatch: 2.3.1 1882 | dev: true 1883 | 1884 | /mime-db/1.52.0: 1885 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1886 | engines: {node: '>= 0.6'} 1887 | dev: true 1888 | 1889 | /mime-types/2.1.35: 1890 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1891 | engines: {node: '>= 0.6'} 1892 | dependencies: 1893 | mime-db: 1.52.0 1894 | dev: true 1895 | 1896 | /minimatch/3.1.2: 1897 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1898 | dependencies: 1899 | brace-expansion: 1.1.11 1900 | dev: true 1901 | 1902 | /ms/2.1.2: 1903 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1904 | dev: true 1905 | 1906 | /nanoid/3.3.4: 1907 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1908 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1909 | hasBin: true 1910 | 1911 | /natural-compare/1.4.0: 1912 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1913 | dev: true 1914 | 1915 | /node-releases/2.0.6: 1916 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 1917 | dev: true 1918 | 1919 | /nopt/5.0.0: 1920 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} 1921 | engines: {node: '>=6'} 1922 | hasBin: true 1923 | dependencies: 1924 | abbrev: 1.1.1 1925 | dev: true 1926 | 1927 | /nth-check/2.1.1: 1928 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1929 | dependencies: 1930 | boolbase: 1.0.0 1931 | dev: true 1932 | 1933 | /nwsapi/2.2.1: 1934 | resolution: {integrity: sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==} 1935 | dev: true 1936 | 1937 | /once/1.4.0: 1938 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1939 | dependencies: 1940 | wrappy: 1.0.2 1941 | dev: true 1942 | 1943 | /optionator/0.8.3: 1944 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} 1945 | engines: {node: '>= 0.8.0'} 1946 | dependencies: 1947 | deep-is: 0.1.4 1948 | fast-levenshtein: 2.0.6 1949 | levn: 0.3.0 1950 | prelude-ls: 1.1.2 1951 | type-check: 0.3.2 1952 | word-wrap: 1.2.3 1953 | dev: true 1954 | 1955 | /optionator/0.9.1: 1956 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1957 | engines: {node: '>= 0.8.0'} 1958 | dependencies: 1959 | deep-is: 0.1.4 1960 | fast-levenshtein: 2.0.6 1961 | levn: 0.4.1 1962 | prelude-ls: 1.2.1 1963 | type-check: 0.4.0 1964 | word-wrap: 1.2.3 1965 | dev: true 1966 | 1967 | /p-limit/3.1.0: 1968 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1969 | engines: {node: '>=10'} 1970 | dependencies: 1971 | yocto-queue: 0.1.0 1972 | dev: true 1973 | 1974 | /p-locate/5.0.0: 1975 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1976 | engines: {node: '>=10'} 1977 | dependencies: 1978 | p-limit: 3.1.0 1979 | dev: true 1980 | 1981 | /parent-module/1.0.1: 1982 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1983 | engines: {node: '>=6'} 1984 | dependencies: 1985 | callsites: 3.1.0 1986 | dev: true 1987 | 1988 | /parse5/7.0.0: 1989 | resolution: {integrity: sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==} 1990 | dependencies: 1991 | entities: 4.3.1 1992 | dev: true 1993 | 1994 | /path-exists/4.0.0: 1995 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1996 | engines: {node: '>=8'} 1997 | dev: true 1998 | 1999 | /path-is-absolute/1.0.1: 2000 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2001 | engines: {node: '>=0.10.0'} 2002 | dev: true 2003 | 2004 | /path-key/3.1.1: 2005 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2006 | engines: {node: '>=8'} 2007 | dev: true 2008 | 2009 | /path-parse/1.0.7: 2010 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2011 | dev: true 2012 | 2013 | /path-type/4.0.0: 2014 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2015 | engines: {node: '>=8'} 2016 | dev: true 2017 | 2018 | /pathval/1.1.1: 2019 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2020 | dev: true 2021 | 2022 | /picocolors/1.0.0: 2023 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2024 | 2025 | /picomatch/2.3.1: 2026 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2027 | engines: {node: '>=8.6'} 2028 | dev: true 2029 | 2030 | /postcss-selector-parser/6.0.10: 2031 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 2032 | engines: {node: '>=4'} 2033 | dependencies: 2034 | cssesc: 3.0.0 2035 | util-deprecate: 1.0.2 2036 | dev: true 2037 | 2038 | /postcss/8.4.16: 2039 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 2040 | engines: {node: ^10 || ^12 || >=14} 2041 | dependencies: 2042 | nanoid: 3.3.4 2043 | picocolors: 1.0.0 2044 | source-map-js: 1.0.2 2045 | 2046 | /prelude-ls/1.1.2: 2047 | resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} 2048 | engines: {node: '>= 0.8.0'} 2049 | dev: true 2050 | 2051 | /prelude-ls/1.2.1: 2052 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2053 | engines: {node: '>= 0.8.0'} 2054 | dev: true 2055 | 2056 | /pretty/2.0.0: 2057 | resolution: {integrity: sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=} 2058 | engines: {node: '>=0.10.0'} 2059 | dependencies: 2060 | condense-newlines: 0.2.1 2061 | extend-shallow: 2.0.1 2062 | js-beautify: 1.14.2 2063 | dev: true 2064 | 2065 | /proto-list/1.2.4: 2066 | resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} 2067 | dev: true 2068 | 2069 | /pseudomap/1.0.2: 2070 | resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} 2071 | dev: true 2072 | 2073 | /psl/1.9.0: 2074 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 2075 | dev: true 2076 | 2077 | /punycode/2.1.1: 2078 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 2079 | engines: {node: '>=6'} 2080 | dev: true 2081 | 2082 | /queue-microtask/1.2.3: 2083 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2084 | dev: true 2085 | 2086 | /regenerator-runtime/0.13.9: 2087 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} 2088 | dev: false 2089 | 2090 | /regexpp/3.2.0: 2091 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2092 | engines: {node: '>=8'} 2093 | dev: true 2094 | 2095 | /resolve-from/4.0.0: 2096 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2097 | engines: {node: '>=4'} 2098 | dev: true 2099 | 2100 | /resolve-from/5.0.0: 2101 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2102 | engines: {node: '>=8'} 2103 | dev: true 2104 | 2105 | /resolve-pkg/2.0.0: 2106 | resolution: {integrity: sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==} 2107 | engines: {node: '>=8'} 2108 | dependencies: 2109 | resolve-from: 5.0.0 2110 | dev: true 2111 | 2112 | /resolve/1.22.1: 2113 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2114 | hasBin: true 2115 | dependencies: 2116 | is-core-module: 2.9.0 2117 | path-parse: 1.0.7 2118 | supports-preserve-symlinks-flag: 1.0.0 2119 | dev: true 2120 | 2121 | /reusify/1.0.4: 2122 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2123 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2124 | dev: true 2125 | 2126 | /rimraf/3.0.2: 2127 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2128 | hasBin: true 2129 | dependencies: 2130 | glob: 7.2.3 2131 | dev: true 2132 | 2133 | /rollup/2.77.0: 2134 | resolution: {integrity: sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==} 2135 | engines: {node: '>=10.0.0'} 2136 | hasBin: true 2137 | optionalDependencies: 2138 | fsevents: 2.3.2 2139 | dev: true 2140 | 2141 | /run-parallel/1.2.0: 2142 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2143 | dependencies: 2144 | queue-microtask: 1.2.3 2145 | dev: true 2146 | 2147 | /safer-buffer/2.1.2: 2148 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2149 | dev: true 2150 | 2151 | /saxes/6.0.0: 2152 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 2153 | engines: {node: '>=v12.22.7'} 2154 | dependencies: 2155 | xmlchars: 2.2.0 2156 | dev: true 2157 | 2158 | /semver/5.7.1: 2159 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2160 | hasBin: true 2161 | dev: true 2162 | 2163 | /semver/7.3.7: 2164 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} 2165 | engines: {node: '>=10'} 2166 | hasBin: true 2167 | dependencies: 2168 | lru-cache: 6.0.0 2169 | dev: true 2170 | 2171 | /shebang-command/2.0.0: 2172 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2173 | engines: {node: '>=8'} 2174 | dependencies: 2175 | shebang-regex: 3.0.0 2176 | dev: true 2177 | 2178 | /shebang-regex/3.0.0: 2179 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2180 | engines: {node: '>=8'} 2181 | dev: true 2182 | 2183 | /sigmund/1.0.1: 2184 | resolution: {integrity: sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=} 2185 | dev: true 2186 | 2187 | /slash/3.0.0: 2188 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2189 | engines: {node: '>=8'} 2190 | dev: true 2191 | 2192 | /source-map-js/1.0.2: 2193 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2194 | engines: {node: '>=0.10.0'} 2195 | 2196 | /source-map/0.6.1: 2197 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2198 | engines: {node: '>=0.10.0'} 2199 | 2200 | /sourcemap-codec/1.4.8: 2201 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2202 | 2203 | /strip-ansi/6.0.1: 2204 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2205 | engines: {node: '>=8'} 2206 | dependencies: 2207 | ansi-regex: 5.0.1 2208 | dev: true 2209 | 2210 | /strip-json-comments/3.1.1: 2211 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2212 | engines: {node: '>=8'} 2213 | dev: true 2214 | 2215 | /supports-color/7.2.0: 2216 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2217 | engines: {node: '>=8'} 2218 | dependencies: 2219 | has-flag: 4.0.0 2220 | dev: true 2221 | 2222 | /supports-preserve-symlinks-flag/1.0.0: 2223 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2224 | engines: {node: '>= 0.4'} 2225 | dev: true 2226 | 2227 | /symbol-tree/3.2.4: 2228 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 2229 | dev: true 2230 | 2231 | /text-table/0.2.0: 2232 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2233 | dev: true 2234 | 2235 | /tinypool/0.2.4: 2236 | resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} 2237 | engines: {node: '>=14.0.0'} 2238 | dev: true 2239 | 2240 | /tinyspy/1.0.2: 2241 | resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} 2242 | engines: {node: '>=14.0.0'} 2243 | dev: true 2244 | 2245 | /to-fast-properties/2.0.0: 2246 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2247 | engines: {node: '>=4'} 2248 | 2249 | /to-regex-range/5.0.1: 2250 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2251 | engines: {node: '>=8.0'} 2252 | dependencies: 2253 | is-number: 7.0.0 2254 | dev: true 2255 | 2256 | /tough-cookie/4.0.0: 2257 | resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} 2258 | engines: {node: '>=6'} 2259 | dependencies: 2260 | psl: 1.9.0 2261 | punycode: 2.1.1 2262 | universalify: 0.1.2 2263 | dev: true 2264 | 2265 | /tr46/3.0.0: 2266 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} 2267 | engines: {node: '>=12'} 2268 | dependencies: 2269 | punycode: 2.1.1 2270 | dev: true 2271 | 2272 | /tslib/1.14.1: 2273 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2274 | dev: true 2275 | 2276 | /tslib/2.4.0: 2277 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 2278 | 2279 | /tsutils/3.21.0_typescript@4.6.4: 2280 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2281 | engines: {node: '>= 6'} 2282 | peerDependencies: 2283 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 2284 | dependencies: 2285 | tslib: 1.14.1 2286 | typescript: 4.6.4 2287 | dev: true 2288 | 2289 | /type-check/0.3.2: 2290 | resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} 2291 | engines: {node: '>= 0.8.0'} 2292 | dependencies: 2293 | prelude-ls: 1.1.2 2294 | dev: true 2295 | 2296 | /type-check/0.4.0: 2297 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2298 | engines: {node: '>= 0.8.0'} 2299 | dependencies: 2300 | prelude-ls: 1.2.1 2301 | dev: true 2302 | 2303 | /type-detect/4.0.8: 2304 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 2305 | engines: {node: '>=4'} 2306 | dev: true 2307 | 2308 | /type-fest/0.20.2: 2309 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2310 | engines: {node: '>=10'} 2311 | dev: true 2312 | 2313 | /typescript/4.6.4: 2314 | resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} 2315 | engines: {node: '>=4.2.0'} 2316 | hasBin: true 2317 | dev: true 2318 | 2319 | /universalify/0.1.2: 2320 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2321 | engines: {node: '>= 4.0.0'} 2322 | dev: true 2323 | 2324 | /update-browserslist-db/1.0.5_browserslist@4.21.3: 2325 | resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} 2326 | hasBin: true 2327 | peerDependencies: 2328 | browserslist: '>= 4.21.0' 2329 | dependencies: 2330 | browserslist: 4.21.3 2331 | escalade: 3.1.1 2332 | picocolors: 1.0.0 2333 | dev: true 2334 | 2335 | /uri-js/4.4.1: 2336 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2337 | dependencies: 2338 | punycode: 2.1.1 2339 | dev: true 2340 | 2341 | /util-deprecate/1.0.2: 2342 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2343 | dev: true 2344 | 2345 | /vite/3.0.9: 2346 | resolution: {integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==} 2347 | engines: {node: ^14.18.0 || >=16.0.0} 2348 | hasBin: true 2349 | peerDependencies: 2350 | less: '*' 2351 | sass: '*' 2352 | stylus: '*' 2353 | terser: ^5.4.0 2354 | peerDependenciesMeta: 2355 | less: 2356 | optional: true 2357 | sass: 2358 | optional: true 2359 | stylus: 2360 | optional: true 2361 | terser: 2362 | optional: true 2363 | dependencies: 2364 | esbuild: 0.14.49 2365 | postcss: 8.4.16 2366 | resolve: 1.22.1 2367 | rollup: 2.77.0 2368 | optionalDependencies: 2369 | fsevents: 2.3.2 2370 | dev: true 2371 | 2372 | /vitest/0.22.1_jsdom@20.0.0: 2373 | resolution: {integrity: sha512-+x28YTnSLth4KbXg7MCzoDAzPJlJex7YgiZbUh6YLp0/4PqVZ7q7/zyfdL0OaPtKTpNiQFPpMC8Y2MSzk8F7dw==} 2374 | engines: {node: '>=v14.16.0'} 2375 | hasBin: true 2376 | peerDependencies: 2377 | '@edge-runtime/vm': '*' 2378 | '@vitest/browser': '*' 2379 | '@vitest/ui': '*' 2380 | happy-dom: '*' 2381 | jsdom: '*' 2382 | peerDependenciesMeta: 2383 | '@edge-runtime/vm': 2384 | optional: true 2385 | '@vitest/browser': 2386 | optional: true 2387 | '@vitest/ui': 2388 | optional: true 2389 | happy-dom: 2390 | optional: true 2391 | jsdom: 2392 | optional: true 2393 | dependencies: 2394 | '@types/chai': 4.3.3 2395 | '@types/chai-subset': 1.3.3 2396 | '@types/node': 16.11.56 2397 | chai: 4.3.6 2398 | debug: 4.3.4 2399 | jsdom: 20.0.0 2400 | local-pkg: 0.4.2 2401 | tinypool: 0.2.4 2402 | tinyspy: 1.0.2 2403 | vite: 3.0.9 2404 | transitivePeerDependencies: 2405 | - less 2406 | - sass 2407 | - stylus 2408 | - supports-color 2409 | - terser 2410 | dev: true 2411 | 2412 | /vue-eslint-parser/9.0.3_eslint@8.23.0: 2413 | resolution: {integrity: sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==} 2414 | engines: {node: ^14.17.0 || >=16.0.0} 2415 | peerDependencies: 2416 | eslint: '>=6.0.0' 2417 | dependencies: 2418 | debug: 4.3.4 2419 | eslint: 8.23.0 2420 | eslint-scope: 7.1.1 2421 | eslint-visitor-keys: 3.3.0 2422 | espree: 9.3.2 2423 | esquery: 1.4.0 2424 | lodash: 4.17.21 2425 | semver: 7.3.7 2426 | transitivePeerDependencies: 2427 | - supports-color 2428 | dev: true 2429 | 2430 | /vue-template-compiler/2.7.10_vue@2.7.10: 2431 | resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==} 2432 | peerDependencies: 2433 | vue: ^2.7 2434 | dependencies: 2435 | de-indent: 1.0.2 2436 | he: 1.2.0 2437 | vue: 2.7.10 2438 | dev: true 2439 | 2440 | /vue-tsc/0.40.1_typescript@4.6.4: 2441 | resolution: {integrity: sha512-Z+3rlp/6TrtKvLuaFYwBn03zrdinMR6lBb3mWBJtDA+KwlRu+I4eMoqC1qT9D7i/29u0Bw58dH7ErjMpNLN9bQ==} 2442 | hasBin: true 2443 | peerDependencies: 2444 | typescript: '*' 2445 | dependencies: 2446 | '@volar/vue-language-core': 0.40.1 2447 | '@volar/vue-typescript': 0.40.1 2448 | typescript: 4.6.4 2449 | dev: true 2450 | 2451 | /vue/2.7.10: 2452 | resolution: {integrity: sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==} 2453 | dependencies: 2454 | '@vue/compiler-sfc': 2.7.10 2455 | csstype: 3.1.0 2456 | 2457 | /vue/3.2.37: 2458 | resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} 2459 | dependencies: 2460 | '@vue/compiler-dom': 3.2.37 2461 | '@vue/compiler-sfc': 3.2.37 2462 | '@vue/runtime-dom': 3.2.37 2463 | '@vue/server-renderer': 3.2.37_vue@3.2.37 2464 | '@vue/shared': 3.2.37 2465 | 2466 | /w3c-hr-time/1.0.2: 2467 | resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} 2468 | dependencies: 2469 | browser-process-hrtime: 1.0.0 2470 | dev: true 2471 | 2472 | /w3c-xmlserializer/3.0.0: 2473 | resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} 2474 | engines: {node: '>=12'} 2475 | dependencies: 2476 | xml-name-validator: 4.0.0 2477 | dev: true 2478 | 2479 | /webidl-conversions/7.0.0: 2480 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 2481 | engines: {node: '>=12'} 2482 | dev: true 2483 | 2484 | /whatwg-encoding/2.0.0: 2485 | resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} 2486 | engines: {node: '>=12'} 2487 | dependencies: 2488 | iconv-lite: 0.6.3 2489 | dev: true 2490 | 2491 | /whatwg-mimetype/3.0.0: 2492 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} 2493 | engines: {node: '>=12'} 2494 | dev: true 2495 | 2496 | /whatwg-url/11.0.0: 2497 | resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} 2498 | engines: {node: '>=12'} 2499 | dependencies: 2500 | tr46: 3.0.0 2501 | webidl-conversions: 7.0.0 2502 | dev: true 2503 | 2504 | /which/2.0.2: 2505 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2506 | engines: {node: '>= 8'} 2507 | hasBin: true 2508 | dependencies: 2509 | isexe: 2.0.0 2510 | dev: true 2511 | 2512 | /word-wrap/1.2.3: 2513 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2514 | engines: {node: '>=0.10.0'} 2515 | dev: true 2516 | 2517 | /wrappy/1.0.2: 2518 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2519 | dev: true 2520 | 2521 | /ws/8.8.1: 2522 | resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} 2523 | engines: {node: '>=10.0.0'} 2524 | peerDependencies: 2525 | bufferutil: ^4.0.1 2526 | utf-8-validate: ^5.0.2 2527 | peerDependenciesMeta: 2528 | bufferutil: 2529 | optional: true 2530 | utf-8-validate: 2531 | optional: true 2532 | dev: true 2533 | 2534 | /xml-name-validator/4.0.0: 2535 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 2536 | engines: {node: '>=12'} 2537 | dev: true 2538 | 2539 | /xmlchars/2.2.0: 2540 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 2541 | dev: true 2542 | 2543 | /yallist/2.1.2: 2544 | resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} 2545 | dev: true 2546 | 2547 | /yallist/4.0.0: 2548 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2549 | dev: true 2550 | 2551 | /yocto-queue/0.1.0: 2552 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2553 | engines: {node: '>=10'} 2554 | dev: true 2555 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'lib-vue3' 3 | - 'lib-vue2' -------------------------------------------------------------------------------- /scripts/symlink.js: -------------------------------------------------------------------------------- 1 | const { existsSync } = require('fs') 2 | const { symlink } = require('node:fs/promises') 3 | const { argv } = require('process') 4 | const { resolve} = require('path') 5 | 6 | 7 | main() 8 | 9 | async function main() { 10 | const from = argv[2] 11 | const to = argv[3] 12 | 13 | const fromPath = resolve(process.cwd(), from) 14 | const toPath = resolve(process.cwd(), to) 15 | 16 | if (!existsSync(from)) { 17 | console.error(`⚠️ ERROR: path not found: ${from} relative to ${process.cwd()}`) 18 | process.exit(1) 19 | } 20 | 21 | if (!existsSync(toPath)) { 22 | await symlink(fromPath, toPath, 'junction') 23 | } else { 24 | console.info(`Symlink in '${toPath}' already exists.`) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./tsconfig/tsconfig.node.json" 6 | }, 7 | { 8 | "path": "./tsconfig/tsconfig.vue2.lib.json" 9 | }, 10 | { 11 | "path": "./tsconfig/tsconfig.vue2.app.json" 12 | }, 13 | { 14 | "path": "./tsconfig/tsconfig.vue2.vitest.json" 15 | }, 16 | { 17 | "path": "./tsconfig/tsconfig.vue3.lib.json" 18 | }, 19 | { 20 | "path": "./tsconfig/tsconfig.vue3.app.json" 21 | }, 22 | { 23 | "path": "./tsconfig/tsconfig.vue3.vitest.json" 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /tsconfig/README.md: -------------------------------------------------------------------------------- 1 | # TSConfig 2 | 3 | This folder contains all of the project reference configs for this repository. 4 | 5 | ## Types of files 6 | 7 | |File |Description | 8 | |---------------------------|--------------------------| 9 | |`tsconfig.node.json` |for config files like viteconfig, eslintrc etc.| 10 | |`tsconfig.vue2.lib.json` | `/lib-vue2/src`, excluding test files | 11 | |`tsconfig.vue2.app.json` | `/lib-vue2/app`, files for the demo app | 12 | |`tsconfig.vue2.vitest.json`| extends lib config, but includes test files | 13 | |`tsconfig.vue3.lib.json` | `/lib-vue3/src`, excluding test files | 14 | |`tsconfig.vue3.app.json` | `/lib-vue3/app`, files for the demo app | 15 | |`tsconfig.vue2.vitest.json`| extends lib config, but includes test files | 16 | 17 | ## Which config file is used to create my library's types? 18 | 19 | |Version| Config file | 20 | |-------|-------------| 21 | |Vue 2 | `tsconfig.vue2.lib.json` | 22 | |Vue 3 | `tsconfig.vue3.lib.json` | 23 | 24 | So you should edit these files if you want to change any compiler settings relevant to the build process of your library. 25 | 26 | ## What are the `*.app.json` and `*.vitest.json` files needed for? 27 | 28 | * The lib files only include the /src files, and exclude any tests. 29 | * in src files, we have the browser api (`window` etc) available. 30 | * So `*.vitest.json` extends the lib config and includes the test files again. 31 | * in test files, we additionally have the node api (`process` etc) available. 32 | * The `*.app.json` configs include the ./app files. Since they should not be part of the generated declaration files, we moved them into their own project reference/config. -------------------------------------------------------------------------------- /tsconfig/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.node.json", 3 | "include": [ 4 | "../vite.config.*", 5 | "../eslintrc.cjs" 6 | ], 7 | "compilerOptions": { 8 | "composite": true, 9 | "types": ["node", "vitest"] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue2.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.vue2.lib.json", 3 | "include": [ 4 | "../lib-vue2/app/**/*", 5 | "../lib-vue2/app/**/*.vue" 6 | ], 7 | "compilerOptions": { 8 | "rootDir": "../lib-vue2/app", 9 | "composite": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue2.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": [ 4 | "../lib-vue2/src/env.d.ts", 5 | "../lib-vue2/src/**/*", 6 | "../lib-vue2/src/**/*.vue" 7 | 8 | ], 9 | "exclude": [ 10 | "../lib-vue2/src/**/__tests__/*" 11 | ], 12 | "compilerOptions": { 13 | "composite": true, 14 | "rootDir": "../lib-vue2/src", 15 | "declarationDir": "../lib-vue2/typings", 16 | "tsBuildInfoFile": "./logs/vue2.tsbuildinfo", 17 | "jsx": "preserve", 18 | "paths": { 19 | "@vue-bridge/runtime": ["../lib-vue2/node_modules/@vue-bridge/runtime/dist-vue2/index.d.ts"] 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue2.vitest.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.vue2.lib.json", 3 | "exclude": [], 4 | "compilerOptions": { 5 | "composite": true, 6 | // "lib": [], 7 | "types": ["node", "jsdom"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue3.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.vue3.lib.json", 3 | "include": [ 4 | "../lib-vue3/app/**/*", 5 | "../lib-vue3/app/**/*.vue" 6 | ], 7 | "compilerOptions": { 8 | "rootDir": "../lib-vue3/app", 9 | "composite": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue3.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": [ 4 | "../lib-vue3/src/env.d.ts", 5 | "../lib-vue3/src/**/*", 6 | "../lib-vue3/src/**/*.vue" 7 | ], 8 | "exclude": [ 9 | "../lib-vue3/src/**/__tests__/*" 10 | ], 11 | "compilerOptions": { 12 | "composite": true, 13 | "rootDir": "../lib-vue3/src", 14 | "declarationDir": "../lib-vue3/typings", 15 | "tsBuildInfoFile": "./logs/vue3.tsbuildinfo", 16 | "jsx": "preserve", 17 | "paths": { 18 | "@vue-bridge/runtime": ["../libs-vue3/node_modules/@vue-bridge/runtime/dist-vue3/index.d.ts"] 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig/tsconfig.vue3.vitest.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.vue3.lib.json", 3 | "exclude": [], 4 | "compilerOptions": { 5 | "composite": true, 6 | // "lib": [], 7 | "types": ["node", "jsdom"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.shared.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import type { UserConfig } from "vite"; 3 | 4 | 5 | export interface VueBridgeBuildOptions { 6 | name: string; 7 | outDir?: string; 8 | } 9 | 10 | const defaults: Partial = { 11 | outDir: "dist", 12 | }; 13 | 14 | const fileExtensionMap = { 15 | es: 'mjs', 16 | cjs: 'cjs', 17 | iife: 'js', 18 | umd: 'js' 19 | }; 20 | 21 | export const buildConfig = (_options: VueBridgeBuildOptions): UserConfig['build'] => { 22 | const options = Object.assign({}, defaults, _options); 23 | 24 | return { 25 | outDir: options.outDir, 26 | 27 | lib: { 28 | entry: 'src/main.ts', 29 | formats: ['es', 'cjs', 'iife'], 30 | name: options.name, // global variable name for IIFE build 31 | fileName: (f) => { 32 | const format = f as keyof typeof fileExtensionMap 33 | return `index.${format}.${fileExtensionMap[format]}` 34 | }, 35 | }, 36 | 37 | rollupOptions: { 38 | output: { 39 | // this means your main.ts file should only have named exports, and no default export! 40 | exports: 'named', 41 | 42 | // Add global names for externalized dependencies here. 43 | // IIFE needs to now how to access external deps like: `window.Vue` 44 | globals: { 45 | vue: 'Vue', 46 | '@vue-bridge/runtime': 'VueBridge', 47 | }, 48 | }, 49 | // add any 3rd party packages that you do no want to have bundled in your library 50 | // this *must* contain 'vue' 51 | external: ['vue', '@vue-bridge/runtime'], 52 | }, 53 | }; 54 | }; --------------------------------------------------------------------------------