├── .eslintrc
├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── cypress.json
├── cypress
├── fixtures
│ └── example.json
├── plugins
│ └── index.js
└── support
│ ├── commands.js
│ └── index.js
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── favicon.ico
├── src
├── App.vue
├── components
│ ├── BaseButton.vue
│ ├── BaseSpacer.vue
│ ├── ChangeType.vue
│ ├── EditableBlock.vue
│ ├── EditableForm.vue
│ ├── IconBin.vue
│ ├── IconDrag.vue
│ ├── IconPlus.vue
│ ├── ImageBlock.vue
│ └── TextToolbar.vue
├── composables
│ └── useBlocks.js
├── directives
│ └── clickOutside.js
├── index.css
├── main.js
└── utils
│ ├── clipboard.js
│ ├── keys.js
│ ├── localStorage.js
│ └── selection.js
├── tailwind.config.js
└── vite.config.js
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "node": true
5 | },
6 | "extends": [
7 | "plugin:vue/vue3-recommended",
8 | "eslint:recommended",
9 | "@vue/prettier"
10 | ]
11 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "semi": false,
4 | "vueIndentScriptAndStyle": true
5 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016-2019 David Desmaisons
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.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue Contenteditable Form
2 |
3 | Prototype: A Notion-like Form written in Vue 3, Vite, and TailwindCSS
4 |
5 | ## Demo
6 |
7 | [Live Demo](https://vue-contenteditable-form.vercel.app/)
8 |
9 | ## Installation
10 |
11 | Use the package manager [npm](https://www.npmjs.com/) to install Vue Contenteditable Form.
12 |
13 | ```bash
14 | npm install
15 | ```
16 |
17 | Alternatively, use the package manager [yarn](https://yarnpkg.com/) to install Vue Contenteditable Form.
18 |
19 | ```bash
20 | yarn install
21 | ```
22 |
23 | ## Usage
24 |
25 | Use the `dev` command to run Vue Contenteditable Form locally.
26 |
27 | ```bash
28 | npm run dev
29 | # or
30 | yarn dev
31 | ```
32 |
33 | The script tells you on which port the website is available.
34 |
35 | ## Testing
36 |
37 | The test files are in `src`, right next to the tested components. Spec files are named as the component with the suffix `spec`: `*.spec.js`.
38 |
39 | Run the following command to open the Component Test Runner:
40 |
41 | ```bash
42 | npm run test
43 | ```
44 |
45 | ## Deployment
46 |
47 | The main branch of this repository is automatically deployed on [Vercel](https://vercel.com/).
48 |
49 | To build the project, run
50 |
51 | ```bash
52 | npm run build
53 | # or
54 | yarn build
55 | ```
56 |
57 | To serve the project, run
58 |
59 | ```bash
60 | npm run serve
61 | # or
62 | yarn serve
63 | ```
64 |
65 | ## Project Roadmap
66 |
67 | This project is currently in a prototype state.
68 | You can check out the [project board](https://github.com/Vannsl/vue-contenteditable-form/projects/1) on GitHub.
69 |
70 | Currently implemented and planned features are:
71 |
72 | - [x] Add end edit contenteditable blocks
73 | - [x] Store to LocalStorage
74 | - [x] Add Button for new blocks
75 | - [ ] Make block tags changeable with rich text buttons
76 | - [ ] Add images
77 | - [ ] Resize images
78 |
79 | ## Contributing
80 |
81 | Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
82 |
83 | Please make sure to update tests and documentation as appropriate.
84 |
85 | ## License
86 |
87 | [MIT](https://choosealicense.com/licenses/mit/)
88 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "component": {
3 | "componentFolder": "src",
4 | "testFiles": "**/*.spec.js"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
6 |
--------------------------------------------------------------------------------
/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 | const { startDevServer } = require('@cypress/vite-dev-server')
3 |
4 | module.exports = (on) => {
5 | on('dev-server:start', (options) => {
6 | return startDevServer({
7 | options,
8 | viteConfig: {
9 | configFile: path.resolve(__dirname, '..', '..', 'vite.config.js'),
10 | },
11 | })
12 | })
13 | }
14 |
--------------------------------------------------------------------------------
/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add('login', (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This will overwrite an existing command --
25 | // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands'
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Notion like form
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-contenteditable-form",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.12.11",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
10 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.10.4"
14 | }
15 | },
16 | "@babel/helper-validator-identifier": {
17 | "version": "7.14.8",
18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
19 | "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow=="
20 | },
21 | "@babel/highlight": {
22 | "version": "7.14.5",
23 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
24 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
25 | "dev": true,
26 | "requires": {
27 | "@babel/helper-validator-identifier": "^7.14.5",
28 | "chalk": "^2.0.0",
29 | "js-tokens": "^4.0.0"
30 | },
31 | "dependencies": {
32 | "chalk": {
33 | "version": "2.4.2",
34 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
35 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
36 | "dev": true,
37 | "requires": {
38 | "ansi-styles": "^3.2.1",
39 | "escape-string-regexp": "^1.0.5",
40 | "supports-color": "^5.3.0"
41 | }
42 | },
43 | "escape-string-regexp": {
44 | "version": "1.0.5",
45 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
46 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
47 | "dev": true
48 | }
49 | }
50 | },
51 | "@babel/parser": {
52 | "version": "7.14.8",
53 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz",
54 | "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA=="
55 | },
56 | "@babel/types": {
57 | "version": "7.14.8",
58 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz",
59 | "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==",
60 | "requires": {
61 | "@babel/helper-validator-identifier": "^7.14.8",
62 | "to-fast-properties": "^2.0.0"
63 | }
64 | },
65 | "@cypress/mount-utils": {
66 | "version": "1.0.2",
67 | "resolved": "https://registry.npmjs.org/@cypress/mount-utils/-/mount-utils-1.0.2.tgz",
68 | "integrity": "sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw==",
69 | "dev": true
70 | },
71 | "@cypress/request": {
72 | "version": "2.88.6",
73 | "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.6.tgz",
74 | "integrity": "sha512-z0UxBE/+qaESAHY9p9sM2h8Y4XqtsbDCt0/DPOrqA/RZgKi4PkxdpXyK4wCCnSk1xHqWHZZAE+gV6aDAR6+caQ==",
75 | "dev": true,
76 | "requires": {
77 | "aws-sign2": "~0.7.0",
78 | "aws4": "^1.8.0",
79 | "caseless": "~0.12.0",
80 | "combined-stream": "~1.0.6",
81 | "extend": "~3.0.2",
82 | "forever-agent": "~0.6.1",
83 | "form-data": "~2.3.2",
84 | "har-validator": "~5.1.3",
85 | "http-signature": "~1.2.0",
86 | "is-typedarray": "~1.0.0",
87 | "isstream": "~0.1.2",
88 | "json-stringify-safe": "~5.0.1",
89 | "mime-types": "~2.1.19",
90 | "performance-now": "^2.1.0",
91 | "qs": "~6.5.2",
92 | "safe-buffer": "^5.1.2",
93 | "tough-cookie": "~2.5.0",
94 | "tunnel-agent": "^0.6.0",
95 | "uuid": "^8.3.2"
96 | }
97 | },
98 | "@cypress/vite-dev-server": {
99 | "version": "2.0.7",
100 | "resolved": "https://registry.npmjs.org/@cypress/vite-dev-server/-/vite-dev-server-2.0.7.tgz",
101 | "integrity": "sha512-0RAYG/WvgB2lAiu+voqMtGy2PdbwVz8EB6q1+u2G8akHepbe8KSrObdO7EHCZXzMQ0VQlmToonO4Qx+OUwPPwg==",
102 | "dev": true,
103 | "requires": {
104 | "debug": "^4.3.2",
105 | "get-port": "^5.1.1"
106 | }
107 | },
108 | "@cypress/vue": {
109 | "version": "3.0.3",
110 | "resolved": "https://registry.npmjs.org/@cypress/vue/-/vue-3.0.3.tgz",
111 | "integrity": "sha512-Im8xCQDt4Dr4mcCaweNGCF+O5gNMZAdMlzQlkbhkER9YnJEVD9+ZWecJOJLmUUJPBSj7AMyz7OX82yldPjUIrA==",
112 | "dev": true,
113 | "requires": {
114 | "@cypress/mount-utils": "1.0.2",
115 | "@vue/test-utils": "^2.0.0-rc.10"
116 | }
117 | },
118 | "@cypress/xvfb": {
119 | "version": "1.2.4",
120 | "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
121 | "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
122 | "dev": true,
123 | "requires": {
124 | "debug": "^3.1.0",
125 | "lodash.once": "^4.1.1"
126 | },
127 | "dependencies": {
128 | "debug": {
129 | "version": "3.2.7",
130 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
131 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
132 | "dev": true,
133 | "requires": {
134 | "ms": "^2.1.1"
135 | }
136 | }
137 | }
138 | },
139 | "@eslint/eslintrc": {
140 | "version": "0.4.3",
141 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
142 | "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
143 | "dev": true,
144 | "requires": {
145 | "ajv": "^6.12.4",
146 | "debug": "^4.1.1",
147 | "espree": "^7.3.0",
148 | "globals": "^13.9.0",
149 | "ignore": "^4.0.6",
150 | "import-fresh": "^3.2.1",
151 | "js-yaml": "^3.13.1",
152 | "minimatch": "^3.0.4",
153 | "strip-json-comments": "^3.1.1"
154 | },
155 | "dependencies": {
156 | "espree": {
157 | "version": "7.3.1",
158 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
159 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
160 | "dev": true,
161 | "requires": {
162 | "acorn": "^7.4.0",
163 | "acorn-jsx": "^5.3.1",
164 | "eslint-visitor-keys": "^1.3.0"
165 | }
166 | }
167 | }
168 | },
169 | "@humanwhocodes/config-array": {
170 | "version": "0.5.0",
171 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
172 | "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
173 | "dev": true,
174 | "requires": {
175 | "@humanwhocodes/object-schema": "^1.2.0",
176 | "debug": "^4.1.1",
177 | "minimatch": "^3.0.4"
178 | }
179 | },
180 | "@humanwhocodes/object-schema": {
181 | "version": "1.2.0",
182 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz",
183 | "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==",
184 | "dev": true
185 | },
186 | "@nodelib/fs.scandir": {
187 | "version": "2.1.5",
188 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
189 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
190 | "dev": true,
191 | "requires": {
192 | "@nodelib/fs.stat": "2.0.5",
193 | "run-parallel": "^1.1.9"
194 | }
195 | },
196 | "@nodelib/fs.stat": {
197 | "version": "2.0.5",
198 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
199 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
200 | "dev": true
201 | },
202 | "@nodelib/fs.walk": {
203 | "version": "1.2.8",
204 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
205 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
206 | "dev": true,
207 | "requires": {
208 | "@nodelib/fs.scandir": "2.1.5",
209 | "fastq": "^1.6.0"
210 | }
211 | },
212 | "@types/estree": {
213 | "version": "0.0.48",
214 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz",
215 | "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==",
216 | "dev": true
217 | },
218 | "@types/node": {
219 | "version": "14.17.12",
220 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.12.tgz",
221 | "integrity": "sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw==",
222 | "dev": true
223 | },
224 | "@types/parse-json": {
225 | "version": "4.0.0",
226 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
227 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
228 | "dev": true
229 | },
230 | "@types/sinonjs__fake-timers": {
231 | "version": "6.0.3",
232 | "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz",
233 | "integrity": "sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g==",
234 | "dev": true
235 | },
236 | "@types/sizzle": {
237 | "version": "2.3.3",
238 | "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
239 | "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==",
240 | "dev": true
241 | },
242 | "@types/yauzl": {
243 | "version": "2.9.2",
244 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
245 | "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
246 | "dev": true,
247 | "optional": true,
248 | "requires": {
249 | "@types/node": "*"
250 | }
251 | },
252 | "@vitejs/plugin-vue": {
253 | "version": "1.3.0",
254 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.3.0.tgz",
255 | "integrity": "sha512-wJvuJdTBjvucUX0vK4fuy60t+A9bJSZxc59vp1Y+8kiOd0NU5kFt4lay72gMWPeR+lSUjrTmGUq8Uzb99Jbw3A==",
256 | "dev": true
257 | },
258 | "@vue/compiler-core": {
259 | "version": "3.1.5",
260 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.5.tgz",
261 | "integrity": "sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q==",
262 | "requires": {
263 | "@babel/parser": "^7.12.0",
264 | "@babel/types": "^7.12.0",
265 | "@vue/shared": "3.1.5",
266 | "estree-walker": "^2.0.1",
267 | "source-map": "^0.6.1"
268 | }
269 | },
270 | "@vue/compiler-dom": {
271 | "version": "3.1.5",
272 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz",
273 | "integrity": "sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ==",
274 | "requires": {
275 | "@vue/compiler-core": "3.1.5",
276 | "@vue/shared": "3.1.5"
277 | }
278 | },
279 | "@vue/compiler-sfc": {
280 | "version": "3.1.5",
281 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz",
282 | "integrity": "sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA==",
283 | "dev": true,
284 | "requires": {
285 | "@babel/parser": "^7.13.9",
286 | "@babel/types": "^7.13.0",
287 | "@types/estree": "^0.0.48",
288 | "@vue/compiler-core": "3.1.5",
289 | "@vue/compiler-dom": "3.1.5",
290 | "@vue/compiler-ssr": "3.1.5",
291 | "@vue/shared": "3.1.5",
292 | "consolidate": "^0.16.0",
293 | "estree-walker": "^2.0.1",
294 | "hash-sum": "^2.0.0",
295 | "lru-cache": "^5.1.1",
296 | "magic-string": "^0.25.7",
297 | "merge-source-map": "^1.1.0",
298 | "postcss": "^8.1.10",
299 | "postcss-modules": "^4.0.0",
300 | "postcss-selector-parser": "^6.0.4",
301 | "source-map": "^0.6.1"
302 | }
303 | },
304 | "@vue/compiler-ssr": {
305 | "version": "3.1.5",
306 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz",
307 | "integrity": "sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg==",
308 | "dev": true,
309 | "requires": {
310 | "@vue/compiler-dom": "3.1.5",
311 | "@vue/shared": "3.1.5"
312 | }
313 | },
314 | "@vue/eslint-config-prettier": {
315 | "version": "6.0.0",
316 | "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz",
317 | "integrity": "sha512-wFQmv45c3ige5EA+ngijq40YpVcIkAy0Lihupnsnd1Dao5CBbPyfCzqtejFLZX1EwH/kCJdpz3t6s+5wd3+KxQ==",
318 | "dev": true,
319 | "requires": {
320 | "eslint-config-prettier": "^6.0.0"
321 | }
322 | },
323 | "@vue/reactivity": {
324 | "version": "3.1.5",
325 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
326 | "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
327 | "requires": {
328 | "@vue/shared": "3.1.5"
329 | }
330 | },
331 | "@vue/runtime-core": {
332 | "version": "3.1.5",
333 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.1.5.tgz",
334 | "integrity": "sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg==",
335 | "requires": {
336 | "@vue/reactivity": "3.1.5",
337 | "@vue/shared": "3.1.5"
338 | }
339 | },
340 | "@vue/runtime-dom": {
341 | "version": "3.1.5",
342 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.1.5.tgz",
343 | "integrity": "sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg==",
344 | "requires": {
345 | "@vue/runtime-core": "3.1.5",
346 | "@vue/shared": "3.1.5",
347 | "csstype": "^2.6.8"
348 | }
349 | },
350 | "@vue/shared": {
351 | "version": "3.1.5",
352 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
353 | "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
354 | },
355 | "@vue/test-utils": {
356 | "version": "2.0.0-rc.12",
357 | "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.12.tgz",
358 | "integrity": "sha512-G9BGRYlfwWjhorGjnpniC3hcYn1pCG2NqKG68fdUpk3DgWKordZ+BsEFD/SAmKdTZVMCY1huFwY3XAbPc+AgRw==",
359 | "dev": true
360 | },
361 | "acorn": {
362 | "version": "7.4.1",
363 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
364 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
365 | "dev": true
366 | },
367 | "acorn-jsx": {
368 | "version": "5.3.2",
369 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
370 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
371 | "dev": true
372 | },
373 | "acorn-node": {
374 | "version": "1.8.2",
375 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
376 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
377 | "dev": true,
378 | "requires": {
379 | "acorn": "^7.0.0",
380 | "acorn-walk": "^7.0.0",
381 | "xtend": "^4.0.2"
382 | }
383 | },
384 | "acorn-walk": {
385 | "version": "7.2.0",
386 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
387 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
388 | "dev": true
389 | },
390 | "aggregate-error": {
391 | "version": "3.1.0",
392 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
393 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
394 | "dev": true,
395 | "requires": {
396 | "clean-stack": "^2.0.0",
397 | "indent-string": "^4.0.0"
398 | }
399 | },
400 | "ajv": {
401 | "version": "6.12.6",
402 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
403 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
404 | "dev": true,
405 | "requires": {
406 | "fast-deep-equal": "^3.1.1",
407 | "fast-json-stable-stringify": "^2.0.0",
408 | "json-schema-traverse": "^0.4.1",
409 | "uri-js": "^4.2.2"
410 | }
411 | },
412 | "ansi-colors": {
413 | "version": "4.1.1",
414 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
415 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
416 | "dev": true
417 | },
418 | "ansi-escapes": {
419 | "version": "4.3.2",
420 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
421 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
422 | "dev": true,
423 | "requires": {
424 | "type-fest": "^0.21.3"
425 | },
426 | "dependencies": {
427 | "type-fest": {
428 | "version": "0.21.3",
429 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
430 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
431 | "dev": true
432 | }
433 | }
434 | },
435 | "ansi-regex": {
436 | "version": "5.0.0",
437 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
438 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
439 | "dev": true
440 | },
441 | "ansi-styles": {
442 | "version": "3.2.1",
443 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
444 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
445 | "dev": true,
446 | "requires": {
447 | "color-convert": "^1.9.0"
448 | }
449 | },
450 | "anymatch": {
451 | "version": "3.1.2",
452 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
453 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
454 | "dev": true,
455 | "requires": {
456 | "normalize-path": "^3.0.0",
457 | "picomatch": "^2.0.4"
458 | }
459 | },
460 | "arch": {
461 | "version": "2.2.0",
462 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
463 | "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
464 | "dev": true
465 | },
466 | "arg": {
467 | "version": "5.0.0",
468 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.0.tgz",
469 | "integrity": "sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ==",
470 | "dev": true
471 | },
472 | "argparse": {
473 | "version": "1.0.10",
474 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
475 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
476 | "dev": true,
477 | "requires": {
478 | "sprintf-js": "~1.0.2"
479 | }
480 | },
481 | "asn1": {
482 | "version": "0.2.4",
483 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
484 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
485 | "dev": true,
486 | "requires": {
487 | "safer-buffer": "~2.1.0"
488 | }
489 | },
490 | "assert-plus": {
491 | "version": "1.0.0",
492 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
493 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
494 | "dev": true
495 | },
496 | "astral-regex": {
497 | "version": "2.0.0",
498 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
499 | "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
500 | "dev": true
501 | },
502 | "async": {
503 | "version": "3.2.1",
504 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
505 | "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==",
506 | "dev": true
507 | },
508 | "asynckit": {
509 | "version": "0.4.0",
510 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
511 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
512 | "dev": true
513 | },
514 | "at-least-node": {
515 | "version": "1.0.0",
516 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
517 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
518 | "dev": true
519 | },
520 | "autoprefixer": {
521 | "version": "10.3.1",
522 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.1.tgz",
523 | "integrity": "sha512-L8AmtKzdiRyYg7BUXJTzigmhbQRCXFKz6SA1Lqo0+AR2FBbQ4aTAPFSDlOutnFkjhiz8my4agGXog1xlMjPJ6A==",
524 | "dev": true,
525 | "requires": {
526 | "browserslist": "^4.16.6",
527 | "caniuse-lite": "^1.0.30001243",
528 | "colorette": "^1.2.2",
529 | "fraction.js": "^4.1.1",
530 | "normalize-range": "^0.1.2",
531 | "postcss-value-parser": "^4.1.0"
532 | }
533 | },
534 | "aws-sign2": {
535 | "version": "0.7.0",
536 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
537 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
538 | "dev": true
539 | },
540 | "aws4": {
541 | "version": "1.11.0",
542 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
543 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
544 | "dev": true
545 | },
546 | "balanced-match": {
547 | "version": "1.0.2",
548 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
549 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
550 | "dev": true
551 | },
552 | "bcrypt-pbkdf": {
553 | "version": "1.0.2",
554 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
555 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
556 | "dev": true,
557 | "requires": {
558 | "tweetnacl": "^0.14.3"
559 | }
560 | },
561 | "big.js": {
562 | "version": "5.2.2",
563 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
564 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
565 | "dev": true
566 | },
567 | "binary-extensions": {
568 | "version": "2.2.0",
569 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
570 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
571 | "dev": true
572 | },
573 | "blob-util": {
574 | "version": "2.0.2",
575 | "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
576 | "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
577 | "dev": true
578 | },
579 | "bluebird": {
580 | "version": "3.7.2",
581 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
582 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
583 | "dev": true
584 | },
585 | "brace-expansion": {
586 | "version": "1.1.11",
587 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
588 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
589 | "dev": true,
590 | "requires": {
591 | "balanced-match": "^1.0.0",
592 | "concat-map": "0.0.1"
593 | }
594 | },
595 | "braces": {
596 | "version": "3.0.2",
597 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
598 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
599 | "dev": true,
600 | "requires": {
601 | "fill-range": "^7.0.1"
602 | }
603 | },
604 | "browserslist": {
605 | "version": "4.16.6",
606 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
607 | "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
608 | "dev": true,
609 | "requires": {
610 | "caniuse-lite": "^1.0.30001219",
611 | "colorette": "^1.2.2",
612 | "electron-to-chromium": "^1.3.723",
613 | "escalade": "^3.1.1",
614 | "node-releases": "^1.1.71"
615 | }
616 | },
617 | "buffer-crc32": {
618 | "version": "0.2.13",
619 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
620 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
621 | "dev": true
622 | },
623 | "bytes": {
624 | "version": "3.1.0",
625 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
626 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
627 | "dev": true
628 | },
629 | "cachedir": {
630 | "version": "2.3.0",
631 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
632 | "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
633 | "dev": true
634 | },
635 | "callsites": {
636 | "version": "3.1.0",
637 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
638 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
639 | "dev": true
640 | },
641 | "camelcase-css": {
642 | "version": "2.0.1",
643 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
644 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
645 | "dev": true
646 | },
647 | "caniuse-lite": {
648 | "version": "1.0.30001248",
649 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
650 | "integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
651 | "dev": true
652 | },
653 | "caseless": {
654 | "version": "0.12.0",
655 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
656 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
657 | "dev": true
658 | },
659 | "chalk": {
660 | "version": "4.1.1",
661 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
662 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
663 | "dev": true,
664 | "requires": {
665 | "ansi-styles": "^4.1.0",
666 | "supports-color": "^7.1.0"
667 | },
668 | "dependencies": {
669 | "ansi-styles": {
670 | "version": "4.3.0",
671 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
672 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
673 | "dev": true,
674 | "requires": {
675 | "color-convert": "^2.0.1"
676 | }
677 | },
678 | "color-convert": {
679 | "version": "2.0.1",
680 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
681 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
682 | "dev": true,
683 | "requires": {
684 | "color-name": "~1.1.4"
685 | }
686 | },
687 | "color-name": {
688 | "version": "1.1.4",
689 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
690 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
691 | "dev": true
692 | },
693 | "has-flag": {
694 | "version": "4.0.0",
695 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
696 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
697 | "dev": true
698 | },
699 | "supports-color": {
700 | "version": "7.2.0",
701 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
702 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
703 | "dev": true,
704 | "requires": {
705 | "has-flag": "^4.0.0"
706 | }
707 | }
708 | }
709 | },
710 | "check-more-types": {
711 | "version": "2.24.0",
712 | "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
713 | "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
714 | "dev": true
715 | },
716 | "chokidar": {
717 | "version": "3.5.2",
718 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
719 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
720 | "dev": true,
721 | "requires": {
722 | "anymatch": "~3.1.2",
723 | "braces": "~3.0.2",
724 | "fsevents": "~2.3.2",
725 | "glob-parent": "~5.1.2",
726 | "is-binary-path": "~2.1.0",
727 | "is-glob": "~4.0.1",
728 | "normalize-path": "~3.0.0",
729 | "readdirp": "~3.6.0"
730 | }
731 | },
732 | "ci-info": {
733 | "version": "3.2.0",
734 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz",
735 | "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==",
736 | "dev": true
737 | },
738 | "clean-stack": {
739 | "version": "2.2.0",
740 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
741 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
742 | "dev": true
743 | },
744 | "cli-cursor": {
745 | "version": "3.1.0",
746 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
747 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
748 | "dev": true,
749 | "requires": {
750 | "restore-cursor": "^3.1.0"
751 | }
752 | },
753 | "cli-table3": {
754 | "version": "0.6.0",
755 | "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz",
756 | "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==",
757 | "dev": true,
758 | "requires": {
759 | "colors": "^1.1.2",
760 | "object-assign": "^4.1.0",
761 | "string-width": "^4.2.0"
762 | }
763 | },
764 | "cli-truncate": {
765 | "version": "2.1.0",
766 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
767 | "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
768 | "dev": true,
769 | "requires": {
770 | "slice-ansi": "^3.0.0",
771 | "string-width": "^4.2.0"
772 | },
773 | "dependencies": {
774 | "ansi-styles": {
775 | "version": "4.3.0",
776 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
777 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
778 | "dev": true,
779 | "requires": {
780 | "color-convert": "^2.0.1"
781 | }
782 | },
783 | "color-convert": {
784 | "version": "2.0.1",
785 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
786 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
787 | "dev": true,
788 | "requires": {
789 | "color-name": "~1.1.4"
790 | }
791 | },
792 | "color-name": {
793 | "version": "1.1.4",
794 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
795 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
796 | "dev": true
797 | },
798 | "slice-ansi": {
799 | "version": "3.0.0",
800 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
801 | "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
802 | "dev": true,
803 | "requires": {
804 | "ansi-styles": "^4.0.0",
805 | "astral-regex": "^2.0.0",
806 | "is-fullwidth-code-point": "^3.0.0"
807 | }
808 | }
809 | }
810 | },
811 | "color": {
812 | "version": "3.2.1",
813 | "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
814 | "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
815 | "dev": true,
816 | "requires": {
817 | "color-convert": "^1.9.3",
818 | "color-string": "^1.6.0"
819 | }
820 | },
821 | "color-convert": {
822 | "version": "1.9.3",
823 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
824 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
825 | "dev": true,
826 | "requires": {
827 | "color-name": "1.1.3"
828 | }
829 | },
830 | "color-name": {
831 | "version": "1.1.3",
832 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
833 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
834 | "dev": true
835 | },
836 | "color-string": {
837 | "version": "1.6.0",
838 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz",
839 | "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==",
840 | "dev": true,
841 | "requires": {
842 | "color-name": "^1.0.0",
843 | "simple-swizzle": "^0.2.2"
844 | }
845 | },
846 | "colorette": {
847 | "version": "1.2.2",
848 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
849 | "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
850 | "dev": true
851 | },
852 | "colors": {
853 | "version": "1.4.0",
854 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
855 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
856 | "dev": true,
857 | "optional": true
858 | },
859 | "combined-stream": {
860 | "version": "1.0.8",
861 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
862 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
863 | "dev": true,
864 | "requires": {
865 | "delayed-stream": "~1.0.0"
866 | }
867 | },
868 | "commander": {
869 | "version": "6.2.1",
870 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
871 | "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
872 | "dev": true
873 | },
874 | "common-tags": {
875 | "version": "1.8.0",
876 | "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
877 | "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
878 | "dev": true
879 | },
880 | "concat-map": {
881 | "version": "0.0.1",
882 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
883 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
884 | "dev": true
885 | },
886 | "consolidate": {
887 | "version": "0.16.0",
888 | "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz",
889 | "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==",
890 | "dev": true,
891 | "requires": {
892 | "bluebird": "^3.7.2"
893 | }
894 | },
895 | "core-util-is": {
896 | "version": "1.0.2",
897 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
898 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
899 | "dev": true
900 | },
901 | "cosmiconfig": {
902 | "version": "7.0.0",
903 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
904 | "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
905 | "dev": true,
906 | "requires": {
907 | "@types/parse-json": "^4.0.0",
908 | "import-fresh": "^3.2.1",
909 | "parse-json": "^5.0.0",
910 | "path-type": "^4.0.0",
911 | "yaml": "^1.10.0"
912 | }
913 | },
914 | "cross-spawn": {
915 | "version": "7.0.3",
916 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
917 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
918 | "dev": true,
919 | "requires": {
920 | "path-key": "^3.1.0",
921 | "shebang-command": "^2.0.0",
922 | "which": "^2.0.1"
923 | }
924 | },
925 | "css-unit-converter": {
926 | "version": "1.1.2",
927 | "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz",
928 | "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==",
929 | "dev": true
930 | },
931 | "cssesc": {
932 | "version": "3.0.0",
933 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
934 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
935 | "dev": true
936 | },
937 | "csstype": {
938 | "version": "2.6.17",
939 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz",
940 | "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A=="
941 | },
942 | "cypress": {
943 | "version": "8.3.1",
944 | "resolved": "https://registry.npmjs.org/cypress/-/cypress-8.3.1.tgz",
945 | "integrity": "sha512-1v6pfx+/5cXhaT5T6QKOvnkawmEHWHLiVzm3MYMoQN1fkX2Ma1C32STd3jBStE9qT5qPSTILjGzypVRxCBi40g==",
946 | "dev": true,
947 | "requires": {
948 | "@cypress/request": "^2.88.6",
949 | "@cypress/xvfb": "^1.2.4",
950 | "@types/node": "^14.14.31",
951 | "@types/sinonjs__fake-timers": "^6.0.2",
952 | "@types/sizzle": "^2.3.2",
953 | "arch": "^2.2.0",
954 | "blob-util": "^2.0.2",
955 | "bluebird": "^3.7.2",
956 | "cachedir": "^2.3.0",
957 | "chalk": "^4.1.0",
958 | "check-more-types": "^2.24.0",
959 | "cli-cursor": "^3.1.0",
960 | "cli-table3": "~0.6.0",
961 | "commander": "^5.1.0",
962 | "common-tags": "^1.8.0",
963 | "dayjs": "^1.10.4",
964 | "debug": "^4.3.2",
965 | "enquirer": "^2.3.6",
966 | "eventemitter2": "^6.4.3",
967 | "execa": "4.1.0",
968 | "executable": "^4.1.1",
969 | "extract-zip": "2.0.1",
970 | "figures": "^3.2.0",
971 | "fs-extra": "^9.1.0",
972 | "getos": "^3.2.1",
973 | "is-ci": "^3.0.0",
974 | "is-installed-globally": "~0.4.0",
975 | "lazy-ass": "^1.6.0",
976 | "listr2": "^3.8.3",
977 | "lodash": "^4.17.21",
978 | "log-symbols": "^4.0.0",
979 | "minimist": "^1.2.5",
980 | "ospath": "^1.2.2",
981 | "pretty-bytes": "^5.6.0",
982 | "ramda": "~0.27.1",
983 | "request-progress": "^3.0.0",
984 | "supports-color": "^8.1.1",
985 | "tmp": "~0.2.1",
986 | "untildify": "^4.0.0",
987 | "url": "^0.11.0",
988 | "yauzl": "^2.10.0"
989 | },
990 | "dependencies": {
991 | "commander": {
992 | "version": "5.1.0",
993 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
994 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
995 | "dev": true
996 | },
997 | "fs-extra": {
998 | "version": "9.1.0",
999 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
1000 | "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
1001 | "dev": true,
1002 | "requires": {
1003 | "at-least-node": "^1.0.0",
1004 | "graceful-fs": "^4.2.0",
1005 | "jsonfile": "^6.0.1",
1006 | "universalify": "^2.0.0"
1007 | }
1008 | },
1009 | "has-flag": {
1010 | "version": "4.0.0",
1011 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1012 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1013 | "dev": true
1014 | },
1015 | "supports-color": {
1016 | "version": "8.1.1",
1017 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1018 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1019 | "dev": true,
1020 | "requires": {
1021 | "has-flag": "^4.0.0"
1022 | }
1023 | }
1024 | }
1025 | },
1026 | "dashdash": {
1027 | "version": "1.14.1",
1028 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
1029 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
1030 | "dev": true,
1031 | "requires": {
1032 | "assert-plus": "^1.0.0"
1033 | }
1034 | },
1035 | "dayjs": {
1036 | "version": "1.10.6",
1037 | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz",
1038 | "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==",
1039 | "dev": true
1040 | },
1041 | "debug": {
1042 | "version": "4.3.2",
1043 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
1044 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
1045 | "dev": true,
1046 | "requires": {
1047 | "ms": "2.1.2"
1048 | }
1049 | },
1050 | "deep-is": {
1051 | "version": "0.1.3",
1052 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1053 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
1054 | "dev": true
1055 | },
1056 | "defined": {
1057 | "version": "1.0.0",
1058 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
1059 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
1060 | "dev": true
1061 | },
1062 | "delayed-stream": {
1063 | "version": "1.0.0",
1064 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1065 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
1066 | "dev": true
1067 | },
1068 | "detective": {
1069 | "version": "5.2.0",
1070 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
1071 | "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
1072 | "dev": true,
1073 | "requires": {
1074 | "acorn-node": "^1.6.1",
1075 | "defined": "^1.0.0",
1076 | "minimist": "^1.1.1"
1077 | }
1078 | },
1079 | "didyoumean": {
1080 | "version": "1.2.2",
1081 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
1082 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
1083 | "dev": true
1084 | },
1085 | "dlv": {
1086 | "version": "1.1.3",
1087 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
1088 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
1089 | "dev": true
1090 | },
1091 | "doctrine": {
1092 | "version": "3.0.0",
1093 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1094 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1095 | "dev": true,
1096 | "requires": {
1097 | "esutils": "^2.0.2"
1098 | }
1099 | },
1100 | "ecc-jsbn": {
1101 | "version": "0.1.2",
1102 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1103 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
1104 | "dev": true,
1105 | "requires": {
1106 | "jsbn": "~0.1.0",
1107 | "safer-buffer": "^2.1.0"
1108 | }
1109 | },
1110 | "electron-to-chromium": {
1111 | "version": "1.3.790",
1112 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.790.tgz",
1113 | "integrity": "sha512-epMH/S2MkhBv+Y0+nHK8dC7bzmOaPwcmiYqt+VwxSUJLgPzkqZnGUEQ8eVhy5zGmgWm9tDDdXkHDzOEsVU979A==",
1114 | "dev": true
1115 | },
1116 | "emoji-regex": {
1117 | "version": "8.0.0",
1118 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1119 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1120 | "dev": true
1121 | },
1122 | "emojis-list": {
1123 | "version": "3.0.0",
1124 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
1125 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
1126 | "dev": true
1127 | },
1128 | "end-of-stream": {
1129 | "version": "1.4.4",
1130 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1131 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
1132 | "dev": true,
1133 | "requires": {
1134 | "once": "^1.4.0"
1135 | }
1136 | },
1137 | "enquirer": {
1138 | "version": "2.3.6",
1139 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
1140 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
1141 | "dev": true,
1142 | "requires": {
1143 | "ansi-colors": "^4.1.1"
1144 | }
1145 | },
1146 | "error-ex": {
1147 | "version": "1.3.2",
1148 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1149 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1150 | "dev": true,
1151 | "requires": {
1152 | "is-arrayish": "^0.2.1"
1153 | },
1154 | "dependencies": {
1155 | "is-arrayish": {
1156 | "version": "0.2.1",
1157 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1158 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1159 | "dev": true
1160 | }
1161 | }
1162 | },
1163 | "esbuild": {
1164 | "version": "0.12.16",
1165 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.16.tgz",
1166 | "integrity": "sha512-XqI9cXP2bmQ6MREIqrYBb13KfYFSERsV1+e5jSVWps8dNlLZK+hln7d0mznzDIpfISsg/AgQW0DW3kSInXWhrg==",
1167 | "dev": true
1168 | },
1169 | "escalade": {
1170 | "version": "3.1.1",
1171 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1172 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1173 | "dev": true
1174 | },
1175 | "escape-string-regexp": {
1176 | "version": "4.0.0",
1177 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1178 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1179 | "dev": true
1180 | },
1181 | "eslint": {
1182 | "version": "7.31.0",
1183 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz",
1184 | "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==",
1185 | "dev": true,
1186 | "requires": {
1187 | "@babel/code-frame": "7.12.11",
1188 | "@eslint/eslintrc": "^0.4.3",
1189 | "@humanwhocodes/config-array": "^0.5.0",
1190 | "ajv": "^6.10.0",
1191 | "chalk": "^4.0.0",
1192 | "cross-spawn": "^7.0.2",
1193 | "debug": "^4.0.1",
1194 | "doctrine": "^3.0.0",
1195 | "enquirer": "^2.3.5",
1196 | "escape-string-regexp": "^4.0.0",
1197 | "eslint-scope": "^5.1.1",
1198 | "eslint-utils": "^2.1.0",
1199 | "eslint-visitor-keys": "^2.0.0",
1200 | "espree": "^7.3.1",
1201 | "esquery": "^1.4.0",
1202 | "esutils": "^2.0.2",
1203 | "fast-deep-equal": "^3.1.3",
1204 | "file-entry-cache": "^6.0.1",
1205 | "functional-red-black-tree": "^1.0.1",
1206 | "glob-parent": "^5.1.2",
1207 | "globals": "^13.6.0",
1208 | "ignore": "^4.0.6",
1209 | "import-fresh": "^3.0.0",
1210 | "imurmurhash": "^0.1.4",
1211 | "is-glob": "^4.0.0",
1212 | "js-yaml": "^3.13.1",
1213 | "json-stable-stringify-without-jsonify": "^1.0.1",
1214 | "levn": "^0.4.1",
1215 | "lodash.merge": "^4.6.2",
1216 | "minimatch": "^3.0.4",
1217 | "natural-compare": "^1.4.0",
1218 | "optionator": "^0.9.1",
1219 | "progress": "^2.0.0",
1220 | "regexpp": "^3.1.0",
1221 | "semver": "^7.2.1",
1222 | "strip-ansi": "^6.0.0",
1223 | "strip-json-comments": "^3.1.0",
1224 | "table": "^6.0.9",
1225 | "text-table": "^0.2.0",
1226 | "v8-compile-cache": "^2.0.3"
1227 | },
1228 | "dependencies": {
1229 | "eslint-visitor-keys": {
1230 | "version": "2.1.0",
1231 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1232 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1233 | "dev": true
1234 | },
1235 | "espree": {
1236 | "version": "7.3.1",
1237 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
1238 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
1239 | "dev": true,
1240 | "requires": {
1241 | "acorn": "^7.4.0",
1242 | "acorn-jsx": "^5.3.1",
1243 | "eslint-visitor-keys": "^1.3.0"
1244 | },
1245 | "dependencies": {
1246 | "eslint-visitor-keys": {
1247 | "version": "1.3.0",
1248 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
1249 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
1250 | "dev": true
1251 | }
1252 | }
1253 | },
1254 | "lru-cache": {
1255 | "version": "6.0.0",
1256 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1257 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1258 | "dev": true,
1259 | "requires": {
1260 | "yallist": "^4.0.0"
1261 | }
1262 | },
1263 | "semver": {
1264 | "version": "7.3.5",
1265 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1266 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1267 | "dev": true,
1268 | "requires": {
1269 | "lru-cache": "^6.0.0"
1270 | }
1271 | },
1272 | "yallist": {
1273 | "version": "4.0.0",
1274 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1275 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1276 | "dev": true
1277 | }
1278 | }
1279 | },
1280 | "eslint-config-prettier": {
1281 | "version": "6.15.0",
1282 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz",
1283 | "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==",
1284 | "dev": true,
1285 | "requires": {
1286 | "get-stdin": "^6.0.0"
1287 | }
1288 | },
1289 | "eslint-plugin-prettier": {
1290 | "version": "3.4.0",
1291 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz",
1292 | "integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==",
1293 | "dev": true,
1294 | "requires": {
1295 | "prettier-linter-helpers": "^1.0.0"
1296 | }
1297 | },
1298 | "eslint-plugin-vue": {
1299 | "version": "7.14.0",
1300 | "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.14.0.tgz",
1301 | "integrity": "sha512-IW5A2Td0wEWjFGaGVEO24JNXa8cVFzAQTXrYv/Vu3zyDVS9sjwOpZY0iqub7FOkT2AK3Imtw4U4wg48pP9oWww==",
1302 | "dev": true,
1303 | "requires": {
1304 | "eslint-utils": "^2.1.0",
1305 | "natural-compare": "^1.4.0",
1306 | "semver": "^6.3.0",
1307 | "vue-eslint-parser": "^7.9.0"
1308 | }
1309 | },
1310 | "eslint-scope": {
1311 | "version": "5.1.1",
1312 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
1313 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
1314 | "dev": true,
1315 | "requires": {
1316 | "esrecurse": "^4.3.0",
1317 | "estraverse": "^4.1.1"
1318 | }
1319 | },
1320 | "eslint-utils": {
1321 | "version": "2.1.0",
1322 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
1323 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
1324 | "dev": true,
1325 | "requires": {
1326 | "eslint-visitor-keys": "^1.1.0"
1327 | }
1328 | },
1329 | "eslint-visitor-keys": {
1330 | "version": "1.3.0",
1331 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
1332 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
1333 | "dev": true
1334 | },
1335 | "espree": {
1336 | "version": "6.2.1",
1337 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
1338 | "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
1339 | "dev": true,
1340 | "requires": {
1341 | "acorn": "^7.1.1",
1342 | "acorn-jsx": "^5.2.0",
1343 | "eslint-visitor-keys": "^1.1.0"
1344 | }
1345 | },
1346 | "esprima": {
1347 | "version": "4.0.1",
1348 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1349 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1350 | "dev": true
1351 | },
1352 | "esquery": {
1353 | "version": "1.4.0",
1354 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1355 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1356 | "dev": true,
1357 | "requires": {
1358 | "estraverse": "^5.1.0"
1359 | },
1360 | "dependencies": {
1361 | "estraverse": {
1362 | "version": "5.2.0",
1363 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
1364 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
1365 | "dev": true
1366 | }
1367 | }
1368 | },
1369 | "esrecurse": {
1370 | "version": "4.3.0",
1371 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1372 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1373 | "dev": true,
1374 | "requires": {
1375 | "estraverse": "^5.2.0"
1376 | },
1377 | "dependencies": {
1378 | "estraverse": {
1379 | "version": "5.2.0",
1380 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
1381 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
1382 | "dev": true
1383 | }
1384 | }
1385 | },
1386 | "estraverse": {
1387 | "version": "4.3.0",
1388 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
1389 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
1390 | "dev": true
1391 | },
1392 | "estree-walker": {
1393 | "version": "2.0.2",
1394 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1395 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1396 | },
1397 | "esutils": {
1398 | "version": "2.0.3",
1399 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1400 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1401 | "dev": true
1402 | },
1403 | "eventemitter2": {
1404 | "version": "6.4.4",
1405 | "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz",
1406 | "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==",
1407 | "dev": true
1408 | },
1409 | "execa": {
1410 | "version": "4.1.0",
1411 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
1412 | "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
1413 | "dev": true,
1414 | "requires": {
1415 | "cross-spawn": "^7.0.0",
1416 | "get-stream": "^5.0.0",
1417 | "human-signals": "^1.1.1",
1418 | "is-stream": "^2.0.0",
1419 | "merge-stream": "^2.0.0",
1420 | "npm-run-path": "^4.0.0",
1421 | "onetime": "^5.1.0",
1422 | "signal-exit": "^3.0.2",
1423 | "strip-final-newline": "^2.0.0"
1424 | }
1425 | },
1426 | "executable": {
1427 | "version": "4.1.1",
1428 | "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
1429 | "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
1430 | "dev": true,
1431 | "requires": {
1432 | "pify": "^2.2.0"
1433 | }
1434 | },
1435 | "extend": {
1436 | "version": "3.0.2",
1437 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1438 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
1439 | "dev": true
1440 | },
1441 | "extract-zip": {
1442 | "version": "2.0.1",
1443 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
1444 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
1445 | "dev": true,
1446 | "requires": {
1447 | "@types/yauzl": "^2.9.1",
1448 | "debug": "^4.1.1",
1449 | "get-stream": "^5.1.0",
1450 | "yauzl": "^2.10.0"
1451 | }
1452 | },
1453 | "extsprintf": {
1454 | "version": "1.3.0",
1455 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1456 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
1457 | "dev": true
1458 | },
1459 | "fast-deep-equal": {
1460 | "version": "3.1.3",
1461 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1462 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1463 | "dev": true
1464 | },
1465 | "fast-diff": {
1466 | "version": "1.2.0",
1467 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
1468 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
1469 | "dev": true
1470 | },
1471 | "fast-glob": {
1472 | "version": "3.2.7",
1473 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
1474 | "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
1475 | "dev": true,
1476 | "requires": {
1477 | "@nodelib/fs.stat": "^2.0.2",
1478 | "@nodelib/fs.walk": "^1.2.3",
1479 | "glob-parent": "^5.1.2",
1480 | "merge2": "^1.3.0",
1481 | "micromatch": "^4.0.4"
1482 | }
1483 | },
1484 | "fast-json-stable-stringify": {
1485 | "version": "2.1.0",
1486 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1487 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1488 | "dev": true
1489 | },
1490 | "fast-levenshtein": {
1491 | "version": "2.0.6",
1492 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1493 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1494 | "dev": true
1495 | },
1496 | "fastq": {
1497 | "version": "1.11.1",
1498 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz",
1499 | "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==",
1500 | "dev": true,
1501 | "requires": {
1502 | "reusify": "^1.0.4"
1503 | }
1504 | },
1505 | "fd-slicer": {
1506 | "version": "1.1.0",
1507 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
1508 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
1509 | "dev": true,
1510 | "requires": {
1511 | "pend": "~1.2.0"
1512 | }
1513 | },
1514 | "figures": {
1515 | "version": "3.2.0",
1516 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
1517 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
1518 | "dev": true,
1519 | "requires": {
1520 | "escape-string-regexp": "^1.0.5"
1521 | },
1522 | "dependencies": {
1523 | "escape-string-regexp": {
1524 | "version": "1.0.5",
1525 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1526 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1527 | "dev": true
1528 | }
1529 | }
1530 | },
1531 | "file-entry-cache": {
1532 | "version": "6.0.1",
1533 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1534 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1535 | "dev": true,
1536 | "requires": {
1537 | "flat-cache": "^3.0.4"
1538 | }
1539 | },
1540 | "fill-range": {
1541 | "version": "7.0.1",
1542 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1543 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1544 | "dev": true,
1545 | "requires": {
1546 | "to-regex-range": "^5.0.1"
1547 | }
1548 | },
1549 | "flat-cache": {
1550 | "version": "3.0.4",
1551 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
1552 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
1553 | "dev": true,
1554 | "requires": {
1555 | "flatted": "^3.1.0",
1556 | "rimraf": "^3.0.2"
1557 | }
1558 | },
1559 | "flatted": {
1560 | "version": "3.2.1",
1561 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz",
1562 | "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==",
1563 | "dev": true
1564 | },
1565 | "forever-agent": {
1566 | "version": "0.6.1",
1567 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1568 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
1569 | "dev": true
1570 | },
1571 | "form-data": {
1572 | "version": "2.3.3",
1573 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1574 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1575 | "dev": true,
1576 | "requires": {
1577 | "asynckit": "^0.4.0",
1578 | "combined-stream": "^1.0.6",
1579 | "mime-types": "^2.1.12"
1580 | }
1581 | },
1582 | "fraction.js": {
1583 | "version": "4.1.1",
1584 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
1585 | "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
1586 | "dev": true
1587 | },
1588 | "fs-extra": {
1589 | "version": "10.0.0",
1590 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
1591 | "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
1592 | "dev": true,
1593 | "requires": {
1594 | "graceful-fs": "^4.2.0",
1595 | "jsonfile": "^6.0.1",
1596 | "universalify": "^2.0.0"
1597 | }
1598 | },
1599 | "fs.realpath": {
1600 | "version": "1.0.0",
1601 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1602 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1603 | "dev": true
1604 | },
1605 | "fsevents": {
1606 | "version": "2.3.2",
1607 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1608 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1609 | "dev": true,
1610 | "optional": true
1611 | },
1612 | "function-bind": {
1613 | "version": "1.1.1",
1614 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1615 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1616 | "dev": true
1617 | },
1618 | "functional-red-black-tree": {
1619 | "version": "1.0.1",
1620 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
1621 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
1622 | "dev": true
1623 | },
1624 | "generic-names": {
1625 | "version": "2.0.1",
1626 | "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz",
1627 | "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==",
1628 | "dev": true,
1629 | "requires": {
1630 | "loader-utils": "^1.1.0"
1631 | }
1632 | },
1633 | "get-port": {
1634 | "version": "5.1.1",
1635 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
1636 | "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
1637 | "dev": true
1638 | },
1639 | "get-stdin": {
1640 | "version": "6.0.0",
1641 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
1642 | "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
1643 | "dev": true
1644 | },
1645 | "get-stream": {
1646 | "version": "5.2.0",
1647 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
1648 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
1649 | "dev": true,
1650 | "requires": {
1651 | "pump": "^3.0.0"
1652 | }
1653 | },
1654 | "getos": {
1655 | "version": "3.2.1",
1656 | "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
1657 | "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
1658 | "dev": true,
1659 | "requires": {
1660 | "async": "^3.2.0"
1661 | }
1662 | },
1663 | "getpass": {
1664 | "version": "0.1.7",
1665 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1666 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1667 | "dev": true,
1668 | "requires": {
1669 | "assert-plus": "^1.0.0"
1670 | }
1671 | },
1672 | "glob": {
1673 | "version": "7.1.7",
1674 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
1675 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
1676 | "dev": true,
1677 | "requires": {
1678 | "fs.realpath": "^1.0.0",
1679 | "inflight": "^1.0.4",
1680 | "inherits": "2",
1681 | "minimatch": "^3.0.4",
1682 | "once": "^1.3.0",
1683 | "path-is-absolute": "^1.0.0"
1684 | }
1685 | },
1686 | "glob-parent": {
1687 | "version": "5.1.2",
1688 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1689 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1690 | "dev": true,
1691 | "requires": {
1692 | "is-glob": "^4.0.1"
1693 | }
1694 | },
1695 | "global-dirs": {
1696 | "version": "3.0.0",
1697 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
1698 | "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
1699 | "dev": true,
1700 | "requires": {
1701 | "ini": "2.0.0"
1702 | }
1703 | },
1704 | "globals": {
1705 | "version": "13.10.0",
1706 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz",
1707 | "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==",
1708 | "dev": true,
1709 | "requires": {
1710 | "type-fest": "^0.20.2"
1711 | }
1712 | },
1713 | "graceful-fs": {
1714 | "version": "4.2.6",
1715 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
1716 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
1717 | "dev": true
1718 | },
1719 | "har-schema": {
1720 | "version": "2.0.0",
1721 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1722 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
1723 | "dev": true
1724 | },
1725 | "har-validator": {
1726 | "version": "5.1.5",
1727 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
1728 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
1729 | "dev": true,
1730 | "requires": {
1731 | "ajv": "^6.12.3",
1732 | "har-schema": "^2.0.0"
1733 | }
1734 | },
1735 | "has": {
1736 | "version": "1.0.3",
1737 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1738 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1739 | "dev": true,
1740 | "requires": {
1741 | "function-bind": "^1.1.1"
1742 | }
1743 | },
1744 | "has-flag": {
1745 | "version": "3.0.0",
1746 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1747 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1748 | "dev": true
1749 | },
1750 | "hash-sum": {
1751 | "version": "2.0.0",
1752 | "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
1753 | "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
1754 | "dev": true
1755 | },
1756 | "html-tags": {
1757 | "version": "3.1.0",
1758 | "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
1759 | "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
1760 | "dev": true
1761 | },
1762 | "http-signature": {
1763 | "version": "1.2.0",
1764 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1765 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1766 | "dev": true,
1767 | "requires": {
1768 | "assert-plus": "^1.0.0",
1769 | "jsprim": "^1.2.2",
1770 | "sshpk": "^1.7.0"
1771 | }
1772 | },
1773 | "human-signals": {
1774 | "version": "1.1.1",
1775 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
1776 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
1777 | "dev": true
1778 | },
1779 | "icss-replace-symbols": {
1780 | "version": "1.1.0",
1781 | "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
1782 | "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
1783 | "dev": true
1784 | },
1785 | "icss-utils": {
1786 | "version": "5.1.0",
1787 | "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
1788 | "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
1789 | "dev": true
1790 | },
1791 | "ignore": {
1792 | "version": "4.0.6",
1793 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
1794 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
1795 | "dev": true
1796 | },
1797 | "import-cwd": {
1798 | "version": "3.0.0",
1799 | "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
1800 | "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
1801 | "dev": true,
1802 | "requires": {
1803 | "import-from": "^3.0.0"
1804 | }
1805 | },
1806 | "import-fresh": {
1807 | "version": "3.3.0",
1808 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1809 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1810 | "dev": true,
1811 | "requires": {
1812 | "parent-module": "^1.0.0",
1813 | "resolve-from": "^4.0.0"
1814 | }
1815 | },
1816 | "import-from": {
1817 | "version": "3.0.0",
1818 | "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
1819 | "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
1820 | "dev": true,
1821 | "requires": {
1822 | "resolve-from": "^5.0.0"
1823 | },
1824 | "dependencies": {
1825 | "resolve-from": {
1826 | "version": "5.0.0",
1827 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
1828 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
1829 | "dev": true
1830 | }
1831 | }
1832 | },
1833 | "imurmurhash": {
1834 | "version": "0.1.4",
1835 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1836 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1837 | "dev": true
1838 | },
1839 | "indent-string": {
1840 | "version": "4.0.0",
1841 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1842 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
1843 | "dev": true
1844 | },
1845 | "inflight": {
1846 | "version": "1.0.6",
1847 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1848 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1849 | "dev": true,
1850 | "requires": {
1851 | "once": "^1.3.0",
1852 | "wrappy": "1"
1853 | }
1854 | },
1855 | "inherits": {
1856 | "version": "2.0.4",
1857 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1858 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1859 | "dev": true
1860 | },
1861 | "ini": {
1862 | "version": "2.0.0",
1863 | "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
1864 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
1865 | "dev": true
1866 | },
1867 | "is-arrayish": {
1868 | "version": "0.3.2",
1869 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
1870 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
1871 | "dev": true
1872 | },
1873 | "is-binary-path": {
1874 | "version": "2.1.0",
1875 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1876 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1877 | "dev": true,
1878 | "requires": {
1879 | "binary-extensions": "^2.0.0"
1880 | }
1881 | },
1882 | "is-ci": {
1883 | "version": "3.0.0",
1884 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz",
1885 | "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==",
1886 | "dev": true,
1887 | "requires": {
1888 | "ci-info": "^3.1.1"
1889 | }
1890 | },
1891 | "is-core-module": {
1892 | "version": "2.5.0",
1893 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
1894 | "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
1895 | "dev": true,
1896 | "requires": {
1897 | "has": "^1.0.3"
1898 | }
1899 | },
1900 | "is-extglob": {
1901 | "version": "2.1.1",
1902 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1903 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1904 | "dev": true
1905 | },
1906 | "is-fullwidth-code-point": {
1907 | "version": "3.0.0",
1908 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1909 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1910 | "dev": true
1911 | },
1912 | "is-glob": {
1913 | "version": "4.0.1",
1914 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1915 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1916 | "dev": true,
1917 | "requires": {
1918 | "is-extglob": "^2.1.1"
1919 | }
1920 | },
1921 | "is-installed-globally": {
1922 | "version": "0.4.0",
1923 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
1924 | "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
1925 | "dev": true,
1926 | "requires": {
1927 | "global-dirs": "^3.0.0",
1928 | "is-path-inside": "^3.0.2"
1929 | }
1930 | },
1931 | "is-number": {
1932 | "version": "7.0.0",
1933 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1934 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1935 | "dev": true
1936 | },
1937 | "is-path-inside": {
1938 | "version": "3.0.3",
1939 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1940 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
1941 | "dev": true
1942 | },
1943 | "is-stream": {
1944 | "version": "2.0.1",
1945 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1946 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1947 | "dev": true
1948 | },
1949 | "is-typedarray": {
1950 | "version": "1.0.0",
1951 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1952 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1953 | "dev": true
1954 | },
1955 | "is-unicode-supported": {
1956 | "version": "0.1.0",
1957 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
1958 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
1959 | "dev": true
1960 | },
1961 | "isexe": {
1962 | "version": "2.0.0",
1963 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1964 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1965 | "dev": true
1966 | },
1967 | "isstream": {
1968 | "version": "0.1.2",
1969 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1970 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1971 | "dev": true
1972 | },
1973 | "js-tokens": {
1974 | "version": "4.0.0",
1975 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1976 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1977 | "dev": true
1978 | },
1979 | "js-yaml": {
1980 | "version": "3.14.1",
1981 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
1982 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
1983 | "dev": true,
1984 | "requires": {
1985 | "argparse": "^1.0.7",
1986 | "esprima": "^4.0.0"
1987 | }
1988 | },
1989 | "jsbn": {
1990 | "version": "0.1.1",
1991 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1992 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1993 | "dev": true
1994 | },
1995 | "json-parse-even-better-errors": {
1996 | "version": "2.3.1",
1997 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1998 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
1999 | "dev": true
2000 | },
2001 | "json-schema": {
2002 | "version": "0.2.3",
2003 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2004 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
2005 | "dev": true
2006 | },
2007 | "json-schema-traverse": {
2008 | "version": "0.4.1",
2009 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2010 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2011 | "dev": true
2012 | },
2013 | "json-stable-stringify-without-jsonify": {
2014 | "version": "1.0.1",
2015 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2016 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
2017 | "dev": true
2018 | },
2019 | "json-stringify-safe": {
2020 | "version": "5.0.1",
2021 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2022 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
2023 | "dev": true
2024 | },
2025 | "json5": {
2026 | "version": "1.0.1",
2027 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
2028 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
2029 | "dev": true,
2030 | "requires": {
2031 | "minimist": "^1.2.0"
2032 | }
2033 | },
2034 | "jsonfile": {
2035 | "version": "6.1.0",
2036 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
2037 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
2038 | "dev": true,
2039 | "requires": {
2040 | "graceful-fs": "^4.1.6",
2041 | "universalify": "^2.0.0"
2042 | }
2043 | },
2044 | "jsprim": {
2045 | "version": "1.4.1",
2046 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2047 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2048 | "dev": true,
2049 | "requires": {
2050 | "assert-plus": "1.0.0",
2051 | "extsprintf": "1.3.0",
2052 | "json-schema": "0.2.3",
2053 | "verror": "1.10.0"
2054 | }
2055 | },
2056 | "lazy-ass": {
2057 | "version": "1.6.0",
2058 | "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
2059 | "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
2060 | "dev": true
2061 | },
2062 | "levn": {
2063 | "version": "0.4.1",
2064 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2065 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2066 | "dev": true,
2067 | "requires": {
2068 | "prelude-ls": "^1.2.1",
2069 | "type-check": "~0.4.0"
2070 | }
2071 | },
2072 | "lilconfig": {
2073 | "version": "2.0.3",
2074 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz",
2075 | "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==",
2076 | "dev": true
2077 | },
2078 | "lines-and-columns": {
2079 | "version": "1.1.6",
2080 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
2081 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
2082 | "dev": true
2083 | },
2084 | "listr2": {
2085 | "version": "3.11.0",
2086 | "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.0.tgz",
2087 | "integrity": "sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ==",
2088 | "dev": true,
2089 | "requires": {
2090 | "cli-truncate": "^2.1.0",
2091 | "colorette": "^1.2.2",
2092 | "log-update": "^4.0.0",
2093 | "p-map": "^4.0.0",
2094 | "rxjs": "^6.6.7",
2095 | "through": "^2.3.8",
2096 | "wrap-ansi": "^7.0.0"
2097 | }
2098 | },
2099 | "loader-utils": {
2100 | "version": "1.4.0",
2101 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
2102 | "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
2103 | "dev": true,
2104 | "requires": {
2105 | "big.js": "^5.2.2",
2106 | "emojis-list": "^3.0.0",
2107 | "json5": "^1.0.1"
2108 | }
2109 | },
2110 | "lodash": {
2111 | "version": "4.17.21",
2112 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2113 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
2114 | "dev": true
2115 | },
2116 | "lodash.camelcase": {
2117 | "version": "4.3.0",
2118 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
2119 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
2120 | "dev": true
2121 | },
2122 | "lodash.clonedeep": {
2123 | "version": "4.5.0",
2124 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
2125 | "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
2126 | "dev": true
2127 | },
2128 | "lodash.merge": {
2129 | "version": "4.6.2",
2130 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2131 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2132 | "dev": true
2133 | },
2134 | "lodash.once": {
2135 | "version": "4.1.1",
2136 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
2137 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
2138 | "dev": true
2139 | },
2140 | "lodash.toarray": {
2141 | "version": "4.4.0",
2142 | "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
2143 | "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
2144 | "dev": true
2145 | },
2146 | "lodash.topath": {
2147 | "version": "4.5.2",
2148 | "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz",
2149 | "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=",
2150 | "dev": true
2151 | },
2152 | "lodash.truncate": {
2153 | "version": "4.4.2",
2154 | "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
2155 | "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
2156 | "dev": true
2157 | },
2158 | "log-symbols": {
2159 | "version": "4.1.0",
2160 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
2161 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
2162 | "dev": true,
2163 | "requires": {
2164 | "chalk": "^4.1.0",
2165 | "is-unicode-supported": "^0.1.0"
2166 | }
2167 | },
2168 | "log-update": {
2169 | "version": "4.0.0",
2170 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
2171 | "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
2172 | "dev": true,
2173 | "requires": {
2174 | "ansi-escapes": "^4.3.0",
2175 | "cli-cursor": "^3.1.0",
2176 | "slice-ansi": "^4.0.0",
2177 | "wrap-ansi": "^6.2.0"
2178 | },
2179 | "dependencies": {
2180 | "ansi-styles": {
2181 | "version": "4.3.0",
2182 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2183 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2184 | "dev": true,
2185 | "requires": {
2186 | "color-convert": "^2.0.1"
2187 | }
2188 | },
2189 | "color-convert": {
2190 | "version": "2.0.1",
2191 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2192 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2193 | "dev": true,
2194 | "requires": {
2195 | "color-name": "~1.1.4"
2196 | }
2197 | },
2198 | "color-name": {
2199 | "version": "1.1.4",
2200 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2201 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2202 | "dev": true
2203 | },
2204 | "wrap-ansi": {
2205 | "version": "6.2.0",
2206 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
2207 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
2208 | "dev": true,
2209 | "requires": {
2210 | "ansi-styles": "^4.0.0",
2211 | "string-width": "^4.1.0",
2212 | "strip-ansi": "^6.0.0"
2213 | }
2214 | }
2215 | }
2216 | },
2217 | "lru-cache": {
2218 | "version": "5.1.1",
2219 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
2220 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
2221 | "dev": true,
2222 | "requires": {
2223 | "yallist": "^3.0.2"
2224 | }
2225 | },
2226 | "magic-string": {
2227 | "version": "0.25.7",
2228 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
2229 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
2230 | "dev": true,
2231 | "requires": {
2232 | "sourcemap-codec": "^1.4.4"
2233 | }
2234 | },
2235 | "merge-source-map": {
2236 | "version": "1.1.0",
2237 | "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
2238 | "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
2239 | "dev": true,
2240 | "requires": {
2241 | "source-map": "^0.6.1"
2242 | }
2243 | },
2244 | "merge-stream": {
2245 | "version": "2.0.0",
2246 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
2247 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
2248 | "dev": true
2249 | },
2250 | "merge2": {
2251 | "version": "1.4.1",
2252 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2253 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2254 | "dev": true
2255 | },
2256 | "micromatch": {
2257 | "version": "4.0.4",
2258 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
2259 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
2260 | "dev": true,
2261 | "requires": {
2262 | "braces": "^3.0.1",
2263 | "picomatch": "^2.2.3"
2264 | }
2265 | },
2266 | "mime-db": {
2267 | "version": "1.49.0",
2268 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
2269 | "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
2270 | "dev": true
2271 | },
2272 | "mime-types": {
2273 | "version": "2.1.32",
2274 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
2275 | "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
2276 | "dev": true,
2277 | "requires": {
2278 | "mime-db": "1.49.0"
2279 | }
2280 | },
2281 | "mimic-fn": {
2282 | "version": "2.1.0",
2283 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2284 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2285 | "dev": true
2286 | },
2287 | "minimatch": {
2288 | "version": "3.0.4",
2289 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2290 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2291 | "dev": true,
2292 | "requires": {
2293 | "brace-expansion": "^1.1.7"
2294 | }
2295 | },
2296 | "minimist": {
2297 | "version": "1.2.5",
2298 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2299 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
2300 | "dev": true
2301 | },
2302 | "modern-normalize": {
2303 | "version": "1.1.0",
2304 | "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz",
2305 | "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==",
2306 | "dev": true
2307 | },
2308 | "ms": {
2309 | "version": "2.1.2",
2310 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2311 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2312 | "dev": true
2313 | },
2314 | "nanoid": {
2315 | "version": "3.1.23",
2316 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
2317 | "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
2318 | "dev": true
2319 | },
2320 | "natural-compare": {
2321 | "version": "1.4.0",
2322 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2323 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
2324 | "dev": true
2325 | },
2326 | "node-emoji": {
2327 | "version": "1.10.0",
2328 | "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
2329 | "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
2330 | "dev": true,
2331 | "requires": {
2332 | "lodash.toarray": "^4.4.0"
2333 | }
2334 | },
2335 | "node-releases": {
2336 | "version": "1.1.73",
2337 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
2338 | "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
2339 | "dev": true
2340 | },
2341 | "normalize-path": {
2342 | "version": "3.0.0",
2343 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2344 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2345 | "dev": true
2346 | },
2347 | "normalize-range": {
2348 | "version": "0.1.2",
2349 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
2350 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
2351 | "dev": true
2352 | },
2353 | "npm-run-path": {
2354 | "version": "4.0.1",
2355 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
2356 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
2357 | "dev": true,
2358 | "requires": {
2359 | "path-key": "^3.0.0"
2360 | }
2361 | },
2362 | "object-assign": {
2363 | "version": "4.1.1",
2364 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2365 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2366 | "dev": true
2367 | },
2368 | "object-hash": {
2369 | "version": "2.2.0",
2370 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
2371 | "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
2372 | "dev": true
2373 | },
2374 | "once": {
2375 | "version": "1.4.0",
2376 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2377 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2378 | "dev": true,
2379 | "requires": {
2380 | "wrappy": "1"
2381 | }
2382 | },
2383 | "onetime": {
2384 | "version": "5.1.2",
2385 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
2386 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
2387 | "dev": true,
2388 | "requires": {
2389 | "mimic-fn": "^2.1.0"
2390 | }
2391 | },
2392 | "optionator": {
2393 | "version": "0.9.1",
2394 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
2395 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
2396 | "dev": true,
2397 | "requires": {
2398 | "deep-is": "^0.1.3",
2399 | "fast-levenshtein": "^2.0.6",
2400 | "levn": "^0.4.1",
2401 | "prelude-ls": "^1.2.1",
2402 | "type-check": "^0.4.0",
2403 | "word-wrap": "^1.2.3"
2404 | }
2405 | },
2406 | "ospath": {
2407 | "version": "1.2.2",
2408 | "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
2409 | "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
2410 | "dev": true
2411 | },
2412 | "p-map": {
2413 | "version": "4.0.0",
2414 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
2415 | "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
2416 | "dev": true,
2417 | "requires": {
2418 | "aggregate-error": "^3.0.0"
2419 | }
2420 | },
2421 | "parent-module": {
2422 | "version": "1.0.1",
2423 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2424 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2425 | "dev": true,
2426 | "requires": {
2427 | "callsites": "^3.0.0"
2428 | }
2429 | },
2430 | "parse-json": {
2431 | "version": "5.2.0",
2432 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
2433 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
2434 | "dev": true,
2435 | "requires": {
2436 | "@babel/code-frame": "^7.0.0",
2437 | "error-ex": "^1.3.1",
2438 | "json-parse-even-better-errors": "^2.3.0",
2439 | "lines-and-columns": "^1.1.6"
2440 | }
2441 | },
2442 | "path-is-absolute": {
2443 | "version": "1.0.1",
2444 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2445 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2446 | "dev": true
2447 | },
2448 | "path-key": {
2449 | "version": "3.1.1",
2450 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2451 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2452 | "dev": true
2453 | },
2454 | "path-parse": {
2455 | "version": "1.0.7",
2456 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2457 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2458 | "dev": true
2459 | },
2460 | "path-type": {
2461 | "version": "4.0.0",
2462 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2463 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2464 | "dev": true
2465 | },
2466 | "pend": {
2467 | "version": "1.2.0",
2468 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
2469 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
2470 | "dev": true
2471 | },
2472 | "performance-now": {
2473 | "version": "2.1.0",
2474 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2475 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
2476 | "dev": true
2477 | },
2478 | "picomatch": {
2479 | "version": "2.3.0",
2480 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
2481 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
2482 | "dev": true
2483 | },
2484 | "pify": {
2485 | "version": "2.3.0",
2486 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2487 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2488 | "dev": true
2489 | },
2490 | "postcss": {
2491 | "version": "8.3.6",
2492 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz",
2493 | "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==",
2494 | "dev": true,
2495 | "requires": {
2496 | "colorette": "^1.2.2",
2497 | "nanoid": "^3.1.23",
2498 | "source-map-js": "^0.6.2"
2499 | }
2500 | },
2501 | "postcss-js": {
2502 | "version": "3.0.3",
2503 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz",
2504 | "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==",
2505 | "dev": true,
2506 | "requires": {
2507 | "camelcase-css": "^2.0.1",
2508 | "postcss": "^8.1.6"
2509 | }
2510 | },
2511 | "postcss-load-config": {
2512 | "version": "3.1.0",
2513 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz",
2514 | "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==",
2515 | "dev": true,
2516 | "requires": {
2517 | "import-cwd": "^3.0.0",
2518 | "lilconfig": "^2.0.3",
2519 | "yaml": "^1.10.2"
2520 | }
2521 | },
2522 | "postcss-modules": {
2523 | "version": "4.2.2",
2524 | "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz",
2525 | "integrity": "sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==",
2526 | "dev": true,
2527 | "requires": {
2528 | "generic-names": "^2.0.1",
2529 | "icss-replace-symbols": "^1.1.0",
2530 | "lodash.camelcase": "^4.3.0",
2531 | "postcss-modules-extract-imports": "^3.0.0",
2532 | "postcss-modules-local-by-default": "^4.0.0",
2533 | "postcss-modules-scope": "^3.0.0",
2534 | "postcss-modules-values": "^4.0.0",
2535 | "string-hash": "^1.1.1"
2536 | }
2537 | },
2538 | "postcss-modules-extract-imports": {
2539 | "version": "3.0.0",
2540 | "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
2541 | "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
2542 | "dev": true
2543 | },
2544 | "postcss-modules-local-by-default": {
2545 | "version": "4.0.0",
2546 | "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
2547 | "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
2548 | "dev": true,
2549 | "requires": {
2550 | "icss-utils": "^5.0.0",
2551 | "postcss-selector-parser": "^6.0.2",
2552 | "postcss-value-parser": "^4.1.0"
2553 | }
2554 | },
2555 | "postcss-modules-scope": {
2556 | "version": "3.0.0",
2557 | "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
2558 | "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
2559 | "dev": true,
2560 | "requires": {
2561 | "postcss-selector-parser": "^6.0.4"
2562 | }
2563 | },
2564 | "postcss-modules-values": {
2565 | "version": "4.0.0",
2566 | "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
2567 | "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
2568 | "dev": true,
2569 | "requires": {
2570 | "icss-utils": "^5.0.0"
2571 | }
2572 | },
2573 | "postcss-nested": {
2574 | "version": "5.0.5",
2575 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.5.tgz",
2576 | "integrity": "sha512-GSRXYz5bccobpTzLQZXOnSOfKl6TwVr5CyAQJUPub4nuRJSOECK5AqurxVgmtxP48p0Kc/ndY/YyS1yqldX0Ew==",
2577 | "dev": true,
2578 | "requires": {
2579 | "postcss-selector-parser": "^6.0.4"
2580 | }
2581 | },
2582 | "postcss-selector-parser": {
2583 | "version": "6.0.6",
2584 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz",
2585 | "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==",
2586 | "dev": true,
2587 | "requires": {
2588 | "cssesc": "^3.0.0",
2589 | "util-deprecate": "^1.0.2"
2590 | }
2591 | },
2592 | "postcss-value-parser": {
2593 | "version": "4.1.0",
2594 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
2595 | "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
2596 | "dev": true
2597 | },
2598 | "prelude-ls": {
2599 | "version": "1.2.1",
2600 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2601 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2602 | "dev": true
2603 | },
2604 | "prettier": {
2605 | "version": "2.3.2",
2606 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
2607 | "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
2608 | "dev": true
2609 | },
2610 | "prettier-linter-helpers": {
2611 | "version": "1.0.0",
2612 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
2613 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
2614 | "dev": true,
2615 | "requires": {
2616 | "fast-diff": "^1.1.2"
2617 | }
2618 | },
2619 | "pretty-bytes": {
2620 | "version": "5.6.0",
2621 | "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
2622 | "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
2623 | "dev": true
2624 | },
2625 | "pretty-hrtime": {
2626 | "version": "1.0.3",
2627 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
2628 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
2629 | "dev": true
2630 | },
2631 | "progress": {
2632 | "version": "2.0.3",
2633 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2634 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2635 | "dev": true
2636 | },
2637 | "psl": {
2638 | "version": "1.8.0",
2639 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
2640 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
2641 | "dev": true
2642 | },
2643 | "pump": {
2644 | "version": "3.0.0",
2645 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2646 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2647 | "dev": true,
2648 | "requires": {
2649 | "end-of-stream": "^1.1.0",
2650 | "once": "^1.3.1"
2651 | }
2652 | },
2653 | "punycode": {
2654 | "version": "2.1.1",
2655 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2656 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2657 | "dev": true
2658 | },
2659 | "purgecss": {
2660 | "version": "4.0.3",
2661 | "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz",
2662 | "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==",
2663 | "dev": true,
2664 | "requires": {
2665 | "commander": "^6.0.0",
2666 | "glob": "^7.0.0",
2667 | "postcss": "^8.2.1",
2668 | "postcss-selector-parser": "^6.0.2"
2669 | }
2670 | },
2671 | "qs": {
2672 | "version": "6.5.2",
2673 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2674 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
2675 | "dev": true
2676 | },
2677 | "querystring": {
2678 | "version": "0.2.0",
2679 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
2680 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
2681 | "dev": true
2682 | },
2683 | "queue-microtask": {
2684 | "version": "1.2.3",
2685 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2686 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2687 | "dev": true
2688 | },
2689 | "quick-lru": {
2690 | "version": "5.1.1",
2691 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
2692 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
2693 | "dev": true
2694 | },
2695 | "ramda": {
2696 | "version": "0.27.1",
2697 | "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
2698 | "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==",
2699 | "dev": true
2700 | },
2701 | "readdirp": {
2702 | "version": "3.6.0",
2703 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2704 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2705 | "dev": true,
2706 | "requires": {
2707 | "picomatch": "^2.2.1"
2708 | }
2709 | },
2710 | "reduce-css-calc": {
2711 | "version": "2.1.8",
2712 | "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz",
2713 | "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==",
2714 | "dev": true,
2715 | "requires": {
2716 | "css-unit-converter": "^1.1.1",
2717 | "postcss-value-parser": "^3.3.0"
2718 | },
2719 | "dependencies": {
2720 | "postcss-value-parser": {
2721 | "version": "3.3.1",
2722 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
2723 | "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
2724 | "dev": true
2725 | }
2726 | }
2727 | },
2728 | "regexpp": {
2729 | "version": "3.2.0",
2730 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
2731 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
2732 | "dev": true
2733 | },
2734 | "request-progress": {
2735 | "version": "3.0.0",
2736 | "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
2737 | "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
2738 | "dev": true,
2739 | "requires": {
2740 | "throttleit": "^1.0.0"
2741 | }
2742 | },
2743 | "require-from-string": {
2744 | "version": "2.0.2",
2745 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
2746 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
2747 | "dev": true
2748 | },
2749 | "resolve": {
2750 | "version": "1.20.0",
2751 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
2752 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
2753 | "dev": true,
2754 | "requires": {
2755 | "is-core-module": "^2.2.0",
2756 | "path-parse": "^1.0.6"
2757 | }
2758 | },
2759 | "resolve-from": {
2760 | "version": "4.0.0",
2761 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2762 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2763 | "dev": true
2764 | },
2765 | "restore-cursor": {
2766 | "version": "3.1.0",
2767 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
2768 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
2769 | "dev": true,
2770 | "requires": {
2771 | "onetime": "^5.1.0",
2772 | "signal-exit": "^3.0.2"
2773 | }
2774 | },
2775 | "reusify": {
2776 | "version": "1.0.4",
2777 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2778 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2779 | "dev": true
2780 | },
2781 | "rimraf": {
2782 | "version": "3.0.2",
2783 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2784 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2785 | "dev": true,
2786 | "requires": {
2787 | "glob": "^7.1.3"
2788 | }
2789 | },
2790 | "rollup": {
2791 | "version": "2.55.0",
2792 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.55.0.tgz",
2793 | "integrity": "sha512-Atc3QqelKzrKwRkqnSdq0d2Mi8e0iGuL+kZebKMZ4ysyWHD5hw9VfVCAuODIW5837RENV8LXcbAEHurYf+ArvA==",
2794 | "dev": true,
2795 | "requires": {
2796 | "fsevents": "~2.3.2"
2797 | }
2798 | },
2799 | "run-parallel": {
2800 | "version": "1.2.0",
2801 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2802 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2803 | "dev": true,
2804 | "requires": {
2805 | "queue-microtask": "^1.2.2"
2806 | }
2807 | },
2808 | "rxjs": {
2809 | "version": "6.6.7",
2810 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
2811 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
2812 | "dev": true,
2813 | "requires": {
2814 | "tslib": "^1.9.0"
2815 | }
2816 | },
2817 | "safe-buffer": {
2818 | "version": "5.2.1",
2819 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2820 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
2821 | "dev": true
2822 | },
2823 | "safer-buffer": {
2824 | "version": "2.1.2",
2825 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2826 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2827 | "dev": true
2828 | },
2829 | "semver": {
2830 | "version": "6.3.0",
2831 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2832 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2833 | "dev": true
2834 | },
2835 | "shebang-command": {
2836 | "version": "2.0.0",
2837 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2838 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2839 | "dev": true,
2840 | "requires": {
2841 | "shebang-regex": "^3.0.0"
2842 | }
2843 | },
2844 | "shebang-regex": {
2845 | "version": "3.0.0",
2846 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2847 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2848 | "dev": true
2849 | },
2850 | "signal-exit": {
2851 | "version": "3.0.3",
2852 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
2853 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
2854 | "dev": true
2855 | },
2856 | "simple-swizzle": {
2857 | "version": "0.2.2",
2858 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
2859 | "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
2860 | "dev": true,
2861 | "requires": {
2862 | "is-arrayish": "^0.3.1"
2863 | }
2864 | },
2865 | "slice-ansi": {
2866 | "version": "4.0.0",
2867 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
2868 | "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
2869 | "dev": true,
2870 | "requires": {
2871 | "ansi-styles": "^4.0.0",
2872 | "astral-regex": "^2.0.0",
2873 | "is-fullwidth-code-point": "^3.0.0"
2874 | },
2875 | "dependencies": {
2876 | "ansi-styles": {
2877 | "version": "4.3.0",
2878 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2879 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2880 | "dev": true,
2881 | "requires": {
2882 | "color-convert": "^2.0.1"
2883 | }
2884 | },
2885 | "color-convert": {
2886 | "version": "2.0.1",
2887 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2888 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2889 | "dev": true,
2890 | "requires": {
2891 | "color-name": "~1.1.4"
2892 | }
2893 | },
2894 | "color-name": {
2895 | "version": "1.1.4",
2896 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2897 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2898 | "dev": true
2899 | }
2900 | }
2901 | },
2902 | "sortablejs": {
2903 | "version": "1.10.2",
2904 | "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
2905 | "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
2906 | },
2907 | "source-map": {
2908 | "version": "0.6.1",
2909 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2910 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
2911 | },
2912 | "source-map-js": {
2913 | "version": "0.6.2",
2914 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
2915 | "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
2916 | "dev": true
2917 | },
2918 | "sourcemap-codec": {
2919 | "version": "1.4.8",
2920 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
2921 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
2922 | "dev": true
2923 | },
2924 | "sprintf-js": {
2925 | "version": "1.0.3",
2926 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2927 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2928 | "dev": true
2929 | },
2930 | "sshpk": {
2931 | "version": "1.16.1",
2932 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
2933 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
2934 | "dev": true,
2935 | "requires": {
2936 | "asn1": "~0.2.3",
2937 | "assert-plus": "^1.0.0",
2938 | "bcrypt-pbkdf": "^1.0.0",
2939 | "dashdash": "^1.12.0",
2940 | "ecc-jsbn": "~0.1.1",
2941 | "getpass": "^0.1.1",
2942 | "jsbn": "~0.1.0",
2943 | "safer-buffer": "^2.0.2",
2944 | "tweetnacl": "~0.14.0"
2945 | }
2946 | },
2947 | "string-hash": {
2948 | "version": "1.1.3",
2949 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
2950 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
2951 | "dev": true
2952 | },
2953 | "string-width": {
2954 | "version": "4.2.2",
2955 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
2956 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
2957 | "dev": true,
2958 | "requires": {
2959 | "emoji-regex": "^8.0.0",
2960 | "is-fullwidth-code-point": "^3.0.0",
2961 | "strip-ansi": "^6.0.0"
2962 | }
2963 | },
2964 | "strip-ansi": {
2965 | "version": "6.0.0",
2966 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2967 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2968 | "dev": true,
2969 | "requires": {
2970 | "ansi-regex": "^5.0.0"
2971 | }
2972 | },
2973 | "strip-final-newline": {
2974 | "version": "2.0.0",
2975 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
2976 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
2977 | "dev": true
2978 | },
2979 | "strip-json-comments": {
2980 | "version": "3.1.1",
2981 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2982 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2983 | "dev": true
2984 | },
2985 | "supports-color": {
2986 | "version": "5.5.0",
2987 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2988 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2989 | "dev": true,
2990 | "requires": {
2991 | "has-flag": "^3.0.0"
2992 | }
2993 | },
2994 | "table": {
2995 | "version": "6.7.1",
2996 | "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
2997 | "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
2998 | "dev": true,
2999 | "requires": {
3000 | "ajv": "^8.0.1",
3001 | "lodash.clonedeep": "^4.5.0",
3002 | "lodash.truncate": "^4.4.2",
3003 | "slice-ansi": "^4.0.0",
3004 | "string-width": "^4.2.0",
3005 | "strip-ansi": "^6.0.0"
3006 | },
3007 | "dependencies": {
3008 | "ajv": {
3009 | "version": "8.6.2",
3010 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz",
3011 | "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==",
3012 | "dev": true,
3013 | "requires": {
3014 | "fast-deep-equal": "^3.1.1",
3015 | "json-schema-traverse": "^1.0.0",
3016 | "require-from-string": "^2.0.2",
3017 | "uri-js": "^4.2.2"
3018 | }
3019 | },
3020 | "json-schema-traverse": {
3021 | "version": "1.0.0",
3022 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
3023 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
3024 | "dev": true
3025 | }
3026 | }
3027 | },
3028 | "tailwindcss": {
3029 | "version": "2.2.7",
3030 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.7.tgz",
3031 | "integrity": "sha512-jv35rugP5j8PpzbXnsria7ZAry7Evh0KtQ4MZqNd+PhF+oIKPwJTVwe/rmfRx9cZw3W7iPZyzBmeoAoNwfJ1yg==",
3032 | "dev": true,
3033 | "requires": {
3034 | "arg": "^5.0.0",
3035 | "bytes": "^3.0.0",
3036 | "chalk": "^4.1.1",
3037 | "chokidar": "^3.5.2",
3038 | "color": "^3.2.0",
3039 | "cosmiconfig": "^7.0.0",
3040 | "detective": "^5.2.0",
3041 | "didyoumean": "^1.2.2",
3042 | "dlv": "^1.1.3",
3043 | "fast-glob": "^3.2.7",
3044 | "fs-extra": "^10.0.0",
3045 | "glob-parent": "^6.0.0",
3046 | "html-tags": "^3.1.0",
3047 | "is-glob": "^4.0.1",
3048 | "lodash": "^4.17.21",
3049 | "lodash.topath": "^4.5.2",
3050 | "modern-normalize": "^1.1.0",
3051 | "node-emoji": "^1.8.1",
3052 | "normalize-path": "^3.0.0",
3053 | "object-hash": "^2.2.0",
3054 | "postcss-js": "^3.0.3",
3055 | "postcss-load-config": "^3.1.0",
3056 | "postcss-nested": "5.0.5",
3057 | "postcss-selector-parser": "^6.0.6",
3058 | "postcss-value-parser": "^4.1.0",
3059 | "pretty-hrtime": "^1.0.3",
3060 | "purgecss": "^4.0.3",
3061 | "quick-lru": "^5.1.1",
3062 | "reduce-css-calc": "^2.1.8",
3063 | "resolve": "^1.20.0",
3064 | "tmp": "^0.2.1"
3065 | },
3066 | "dependencies": {
3067 | "glob-parent": {
3068 | "version": "6.0.1",
3069 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz",
3070 | "integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==",
3071 | "dev": true,
3072 | "requires": {
3073 | "is-glob": "^4.0.1"
3074 | }
3075 | }
3076 | }
3077 | },
3078 | "text-table": {
3079 | "version": "0.2.0",
3080 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3081 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
3082 | "dev": true
3083 | },
3084 | "throttleit": {
3085 | "version": "1.0.0",
3086 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
3087 | "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
3088 | "dev": true
3089 | },
3090 | "through": {
3091 | "version": "2.3.8",
3092 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
3093 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
3094 | "dev": true
3095 | },
3096 | "tmp": {
3097 | "version": "0.2.1",
3098 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
3099 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
3100 | "dev": true,
3101 | "requires": {
3102 | "rimraf": "^3.0.0"
3103 | }
3104 | },
3105 | "to-fast-properties": {
3106 | "version": "2.0.0",
3107 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3108 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
3109 | },
3110 | "to-regex-range": {
3111 | "version": "5.0.1",
3112 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3113 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3114 | "dev": true,
3115 | "requires": {
3116 | "is-number": "^7.0.0"
3117 | }
3118 | },
3119 | "tough-cookie": {
3120 | "version": "2.5.0",
3121 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
3122 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
3123 | "dev": true,
3124 | "requires": {
3125 | "psl": "^1.1.28",
3126 | "punycode": "^2.1.1"
3127 | }
3128 | },
3129 | "tslib": {
3130 | "version": "1.14.1",
3131 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
3132 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
3133 | "dev": true
3134 | },
3135 | "tunnel-agent": {
3136 | "version": "0.6.0",
3137 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
3138 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
3139 | "dev": true,
3140 | "requires": {
3141 | "safe-buffer": "^5.0.1"
3142 | }
3143 | },
3144 | "tweetnacl": {
3145 | "version": "0.14.5",
3146 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
3147 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
3148 | "dev": true
3149 | },
3150 | "type-check": {
3151 | "version": "0.4.0",
3152 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3153 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3154 | "dev": true,
3155 | "requires": {
3156 | "prelude-ls": "^1.2.1"
3157 | }
3158 | },
3159 | "type-fest": {
3160 | "version": "0.20.2",
3161 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3162 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3163 | "dev": true
3164 | },
3165 | "universalify": {
3166 | "version": "2.0.0",
3167 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
3168 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
3169 | "dev": true
3170 | },
3171 | "untildify": {
3172 | "version": "4.0.0",
3173 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
3174 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
3175 | "dev": true
3176 | },
3177 | "uri-js": {
3178 | "version": "4.4.1",
3179 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3180 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3181 | "dev": true,
3182 | "requires": {
3183 | "punycode": "^2.1.0"
3184 | }
3185 | },
3186 | "url": {
3187 | "version": "0.11.0",
3188 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
3189 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
3190 | "dev": true,
3191 | "requires": {
3192 | "punycode": "1.3.2",
3193 | "querystring": "0.2.0"
3194 | },
3195 | "dependencies": {
3196 | "punycode": {
3197 | "version": "1.3.2",
3198 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3199 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
3200 | "dev": true
3201 | }
3202 | }
3203 | },
3204 | "util-deprecate": {
3205 | "version": "1.0.2",
3206 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3207 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3208 | "dev": true
3209 | },
3210 | "uuid": {
3211 | "version": "8.3.2",
3212 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
3213 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
3214 | },
3215 | "v8-compile-cache": {
3216 | "version": "2.3.0",
3217 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
3218 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
3219 | "dev": true
3220 | },
3221 | "verror": {
3222 | "version": "1.10.0",
3223 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
3224 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
3225 | "dev": true,
3226 | "requires": {
3227 | "assert-plus": "^1.0.0",
3228 | "core-util-is": "1.0.2",
3229 | "extsprintf": "^1.2.0"
3230 | }
3231 | },
3232 | "vite": {
3233 | "version": "2.4.4",
3234 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.4.4.tgz",
3235 | "integrity": "sha512-m1wK6pFJKmaYA6AeZIUXyiAgUAAJzVXhIMYCdZUpCaFMGps0v0IlNJtbmPvkUhVEyautalajmnW5X6NboUPsnw==",
3236 | "dev": true,
3237 | "requires": {
3238 | "esbuild": "^0.12.8",
3239 | "fsevents": "~2.3.2",
3240 | "postcss": "^8.3.6",
3241 | "resolve": "^1.20.0",
3242 | "rollup": "^2.38.5"
3243 | }
3244 | },
3245 | "vue": {
3246 | "version": "3.1.5",
3247 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.1.5.tgz",
3248 | "integrity": "sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ==",
3249 | "requires": {
3250 | "@vue/compiler-dom": "3.1.5",
3251 | "@vue/runtime-dom": "3.1.5",
3252 | "@vue/shared": "3.1.5"
3253 | }
3254 | },
3255 | "vue-contenteditable": {
3256 | "version": "3.0.4",
3257 | "resolved": "https://registry.npmjs.org/vue-contenteditable/-/vue-contenteditable-3.0.4.tgz",
3258 | "integrity": "sha512-CmtqT4zHQwLoJEyNVaXUjjUFPUVYlXXBHfSbRCHCUjODMqrn6L293LM1nc1ELx8epitZZvecTfIqOLlSzB3d+w=="
3259 | },
3260 | "vue-eslint-parser": {
3261 | "version": "7.10.0",
3262 | "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz",
3263 | "integrity": "sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg==",
3264 | "dev": true,
3265 | "requires": {
3266 | "debug": "^4.1.1",
3267 | "eslint-scope": "^5.1.1",
3268 | "eslint-visitor-keys": "^1.1.0",
3269 | "espree": "^6.2.1",
3270 | "esquery": "^1.4.0",
3271 | "lodash": "^4.17.21",
3272 | "semver": "^6.3.0"
3273 | }
3274 | },
3275 | "vuedraggable": {
3276 | "version": "4.0.3",
3277 | "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.0.3.tgz",
3278 | "integrity": "sha512-NkJYk+UyxgEoSQcgvVZtqY6dYpdXkBHS8aq6CqoJAfXVM9ZRYT0WPdlBbTttG4nCwllU2M5JGGgo9Drt/L0a7w==",
3279 | "requires": {
3280 | "sortablejs": "1.10.2"
3281 | }
3282 | },
3283 | "which": {
3284 | "version": "2.0.2",
3285 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3286 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3287 | "dev": true,
3288 | "requires": {
3289 | "isexe": "^2.0.0"
3290 | }
3291 | },
3292 | "word-wrap": {
3293 | "version": "1.2.3",
3294 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
3295 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
3296 | "dev": true
3297 | },
3298 | "wrap-ansi": {
3299 | "version": "7.0.0",
3300 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3301 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3302 | "dev": true,
3303 | "requires": {
3304 | "ansi-styles": "^4.0.0",
3305 | "string-width": "^4.1.0",
3306 | "strip-ansi": "^6.0.0"
3307 | },
3308 | "dependencies": {
3309 | "ansi-styles": {
3310 | "version": "4.3.0",
3311 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3312 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3313 | "dev": true,
3314 | "requires": {
3315 | "color-convert": "^2.0.1"
3316 | }
3317 | },
3318 | "color-convert": {
3319 | "version": "2.0.1",
3320 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3321 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3322 | "dev": true,
3323 | "requires": {
3324 | "color-name": "~1.1.4"
3325 | }
3326 | },
3327 | "color-name": {
3328 | "version": "1.1.4",
3329 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3330 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3331 | "dev": true
3332 | }
3333 | }
3334 | },
3335 | "wrappy": {
3336 | "version": "1.0.2",
3337 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3338 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3339 | "dev": true
3340 | },
3341 | "xtend": {
3342 | "version": "4.0.2",
3343 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
3344 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
3345 | "dev": true
3346 | },
3347 | "yallist": {
3348 | "version": "3.1.1",
3349 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
3350 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
3351 | "dev": true
3352 | },
3353 | "yaml": {
3354 | "version": "1.10.2",
3355 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
3356 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
3357 | "dev": true
3358 | },
3359 | "yauzl": {
3360 | "version": "2.10.0",
3361 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
3362 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
3363 | "dev": true,
3364 | "requires": {
3365 | "buffer-crc32": "~0.2.3",
3366 | "fd-slicer": "~1.1.0"
3367 | }
3368 | }
3369 | }
3370 | }
3371 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-contenteditable-form",
3 | "author": "Vanessa Otto (https:/vannsl.io/)",
4 | "version": "0.0.1",
5 | "license": "MIT",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "serve": "vite preview",
10 | "test": "cypress open-ct",
11 | "lint:script": "eslint --ext .ts,vue --ignore-path .gitignore ."
12 | },
13 | "dependencies": {
14 | "uuid": "^8.3.2",
15 | "vue": "^3.0.5",
16 | "vue-contenteditable": "^3.0.4",
17 | "vuedraggable": "^4.0.3"
18 | },
19 | "devDependencies": {
20 | "@cypress/vite-dev-server": "^2.0.7",
21 | "@cypress/vue": "^3.0.3",
22 | "@vitejs/plugin-vue": "^1.3.0",
23 | "@vue/compiler-sfc": "^3.0.5",
24 | "@vue/eslint-config-prettier": "^6.0.0",
25 | "autoprefixer": "^10.3.1",
26 | "cypress": "^8.3.1",
27 | "eslint": "^7.31.0",
28 | "eslint-plugin-prettier": "^3.4.0",
29 | "eslint-plugin-vue": "^7.14.0",
30 | "postcss": "^8.3.6",
31 | "prettier": "^2.3.2",
32 | "tailwindcss": "^2.2.7",
33 | "vite": "^2.4.4"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Vannsl/vue-contenteditable-form/8ed9a23cbe785d9afcc4d25bd3d4a172db43cc61/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
27 |
28 |
36 |
--------------------------------------------------------------------------------
/src/components/BaseButton.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
48 |
--------------------------------------------------------------------------------
/src/components/BaseSpacer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/components/ChangeType.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
24 |
30 | Title
31 |
32 |
38 | Paragraph
39 |
40 |
41 |
42 |
43 |
49 |
--------------------------------------------------------------------------------
/src/components/EditableBlock.vue:
--------------------------------------------------------------------------------
1 |
11 |
12 |
164 |
165 |
166 |
167 |
173 |
177 |
178 |
183 |
195 |
196 |
197 |
198 |
216 |
--------------------------------------------------------------------------------
/src/components/EditableForm.vue:
--------------------------------------------------------------------------------
1 |
172 |
173 |
174 |
182 |
183 |
197 |
198 |
203 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
pasteFromToClipboard(index, event)"
233 | />
234 | updateBlock(element.id, html)"
246 | @enterPressed="addAndFocusOnBlock(index)"
247 | @deleteBlock="deleteAndFocusPreviousBlock(element.id, index)"
248 | @copy="copyToClipboard(index)"
249 | @paste="(event) => pasteFromToClipboard(index, event)"
250 | />
251 |
252 |
253 |
254 |
255 |
256 |
270 |
--------------------------------------------------------------------------------
/src/components/IconBin.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/components/IconDrag.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/components/IconPlus.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/components/ImageBlock.vue:
--------------------------------------------------------------------------------
1 |
46 |
47 |
48 |
56 |
57 |
--------------------------------------------------------------------------------
/src/components/TextToolbar.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
21 |
27 | B
28 |
29 |
35 | I
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/composables/useBlocks.js:
--------------------------------------------------------------------------------
1 | import { v4 } from 'uuid'
2 | import { readonly, ref } from 'vue'
3 | import {
4 | localStorageSave,
5 | localStorageHas,
6 | localStorageGet,
7 | } from '../utils/localStorage'
8 |
9 | const BLOCKS = 'blocks'
10 | const TITLE = 'title'
11 |
12 | const createInitialBlock = () => ({ id: v4(), html: '', tag: 'p' })
13 | const title = ref('')
14 |
15 | const blocks = ref([])
16 |
17 | if (localStorageHas(BLOCKS)) {
18 | blocks.value = localStorageGet(BLOCKS)
19 | } else {
20 | blocks.value = [createInitialBlock()]
21 | }
22 |
23 | if (localStorageHas(TITLE)) {
24 | title.value = localStorageGet(TITLE)
25 | }
26 |
27 | export function useBlocks() {
28 | function updateBlock(id, html) {
29 | const block = blocks.value.find((block) => block.id === id)
30 | block.html = html
31 | }
32 |
33 | function updateTag(id, tag) {
34 | const block = blocks.value.find((block) => block.id === id)
35 | if (!block) {
36 | throw Error(`Block ${id} not found`)
37 | }
38 | block.tag = tag
39 | }
40 |
41 | function updateTitle(html) {
42 | title.value = html
43 | }
44 |
45 | function addBlockAfter(index, html = '') {
46 | const newBlock = createInitialBlock()
47 | newBlock.html = html
48 | blocks.value.splice(index + 1, 0, newBlock)
49 | return newBlock
50 | }
51 |
52 | function addCopyBlockAfter(index, block) {
53 | const newBlock = { ...block, id: v4() }
54 | blocks.value.splice(index + 1, 0, newBlock)
55 | return newBlock
56 | }
57 |
58 | function addImageBlockAfter(index, content, text) {
59 | const newBlock = { id: v4(), content: content, text, tag: 'img' }
60 | blocks.value.splice(index + 1, 0, newBlock)
61 | return newBlock
62 | }
63 |
64 | function deleteBlock(id) {
65 | blocks.value = blocks.value.filter((block) => block.id !== id)
66 | }
67 |
68 | function saveTitle() {
69 | localStorageSave(TITLE, title.value)
70 | }
71 |
72 | function saveBlocks() {
73 | localStorageSave(BLOCKS, blocks.value)
74 | }
75 |
76 | function save() {
77 | saveBlocks()
78 | saveTitle()
79 | }
80 |
81 | function resetBlocks() {
82 | blocks.value = [createInitialBlock()]
83 | saveBlocks()
84 | }
85 |
86 | function resetTitle() {
87 | title.value = ''
88 | saveTitle()
89 | }
90 |
91 | function reset() {
92 | resetBlocks()
93 | resetTitle()
94 | }
95 |
96 | return {
97 | blocks,
98 | title: readonly(title),
99 | deleteBlock,
100 | addBlockAfter,
101 | addCopyBlockAfter,
102 | addImageBlockAfter,
103 | updateTag,
104 | updateTitle,
105 | updateBlock,
106 | save,
107 | reset,
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/src/directives/clickOutside.js:
--------------------------------------------------------------------------------
1 | export default {
2 | mounted(el, binding) {
3 | el.clickOutsideEvent = (event) => {
4 | if (!(el === event.target || el.contains(event.target))) {
5 | binding.value(event, el)
6 | }
7 | }
8 | document.addEventListener('click', el.clickOutsideEvent)
9 | },
10 |
11 | unmounted(el) {
12 | document.removeEventListener('click', el.clickOutsideEvent)
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import './index.css'
4 |
5 | createApp(App).mount('#app')
6 |
--------------------------------------------------------------------------------
/src/utils/clipboard.js:
--------------------------------------------------------------------------------
1 | /*
2 | local clipboard.
3 |
4 | advantages (in contrast to the 'real' clipboard)
5 | - no special browser permission necessary on getting the clipboard content
6 | - synchronous function
7 | */
8 |
9 | let clipboardValue = null
10 |
11 | export function clipboardSetBlock(block) {
12 | const copyBlock = { ...block, id: undefined }
13 | const blockJson = JSON.stringify(copyBlock)
14 | clipboardValue = blockJson
15 | }
16 |
17 | export function clipboardClear() {
18 | clipboardValue = null
19 | }
20 |
21 | export function clipboardGetBlock() {
22 | try {
23 | const text = clipboardGetText()
24 | if (text) {
25 | const block = JSON.parse(text)
26 | return block
27 | }
28 | return null
29 | } catch (err) {
30 | return null
31 | }
32 | }
33 |
34 | export function clipboardGetText() {
35 | return clipboardValue
36 | }
37 |
--------------------------------------------------------------------------------
/src/utils/keys.js:
--------------------------------------------------------------------------------
1 | export const isDarwin = /Mac|iPod|iPhone|iPad/.test(window.navigator.platform)
2 |
3 | export const CODES = {
4 | C: 'KeyC',
5 | V: 'KeyV',
6 | }
7 |
8 | export const KEYS = {
9 | CTRL_OR_CMD: isDarwin ? 'metaKey' : 'ctrlKey',
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/localStorage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Check if key exists in local storage
3 | * @param string key
4 | * @return boolean
5 | */
6 | export function localStorageHas(key) {
7 | var item = localStorage.getItem(key)
8 |
9 | return item !== null
10 | }
11 |
12 | /**
13 | * Retrive an object from local storage.
14 | * @param string key
15 | * @return mixed
16 | */
17 | export function localStorageGet(key) {
18 | var item = localStorage.getItem(key)
19 |
20 | if (!item) return
21 |
22 | if (item[0] === '{' || item[0] === '[') return JSON.parse(item)
23 |
24 | return item
25 | }
26 |
27 | /**
28 | * Save some value to local storage.
29 | * @param string key
30 | * @param string value
31 | */
32 | export function localStorageSave(key, value) {
33 | if (value === undefined) alert("Can't store undefinded value")
34 |
35 | if (typeof value === 'object' || Array.isArray(value)) {
36 | value = JSON.stringify(value)
37 | }
38 |
39 | if (typeof value !== 'string') alert("Can't store unrecognized format value")
40 |
41 | localStorage.setItem(key, value)
42 | }
43 |
44 | /**
45 | * Remove element from local storage.
46 | * @param string key
47 | */
48 | export function localStorageRemove(key) {
49 | localStorage.removeItem(key)
50 | }
51 |
--------------------------------------------------------------------------------
/src/utils/selection.js:
--------------------------------------------------------------------------------
1 | export function selectionIsEmpty() {
2 | const sel = document.getSelection()
3 | return sel && sel.toString().length === 0
4 | }
5 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | purge: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
3 | darkMode: false, // or 'media' or 'class'
4 | theme: {
5 | extend: {},
6 | },
7 | variants: {
8 | extend: {
9 | opacity: ['group-focus'],
10 | },
11 | },
12 | plugins: [],
13 | }
14 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [vue()]
7 | })
8 |
--------------------------------------------------------------------------------