├── .editorconfig
├── .eslintrc
├── .gitignore
├── .huskyrc
├── .prettierrc
├── LICENSE.md
├── README.md
├── package.json
├── src
├── index.js
└── mix.js
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | insert_final_newline = true
7 | indent_style = space
8 | indent_size = 2
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "parserOptions": {
3 | "ecmaVersion": 6,
4 | "sourceType": "module"
5 | },
6 | "env": {
7 | "node": true
8 | },
9 | "rules": {
10 | "no-const-assign": "error",
11 | "newline-before-return": "error",
12 | "no-unreachable": "error",
13 | "no-extra-semi": "error",
14 | "no-unexpected-multiline": "error"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | npm-debug.log
3 | yarn-error.log
4 |
--------------------------------------------------------------------------------
/.huskyrc:
--------------------------------------------------------------------------------
1 | {
2 | "hooks": {
3 | "pre-commit": "yarn test"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "singleQuote": true,
4 | "trailingComma": "es5"
5 | }
6 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) Roots Software LLC
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7 | of the Software, and to permit persons to whom the Software is furnished to do
8 | so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | Automatic Color Palette Generation
31 |
32 | Built with ❤️
33 |
34 |
35 |
36 | Official Website | Donate
37 |
38 |
39 | ## Supporting
40 |
41 | Palette Webpack Plugin is an open source project and completely free to use.
42 |
43 | However, the amount of effort needed to maintain and develop new features and products within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider donating using the links below:
44 |
45 |
46 |
47 | [](https://www.patreon.com/rootsdev)
48 | [](https://www.paypal.me/rootsdev)
49 |
50 |
51 |
52 | ## Overview
53 |
54 | Palette Webpack Plugin allows you to generate a `JSON` file during the build process containing your color palette from existing [Sass maps](https://sass-lang.com/documentation/values/maps) and/or [Tailwind](https://tailwindcss.com).
55 |
56 | While we hope someone may find this useful for other purposes, this plugin and it's output format were specifically built for handling WordPress' Gutenberg [`editor-color-palette`](https://developer.wordpress.org/block-editor/developers/themes/theme-support/) theme support feature.
57 |
58 | ## Features
59 |
60 | - Built to take the headache out of maintaining the WordPress editor palette.
61 | - Merge, filter, and sort Sass color maps and your Tailwind theme colors with a configurable priority.
62 | - Uses computer vision algorithms to detect and deprioritize grayscale colors to the bottom of the list.
63 | - Gracefully loads Sass and/or Tailwind support as needed.
64 |
65 | ## Getting Started
66 |
67 | To begin, you'll need to install `palette-webpack-plugin`:
68 |
69 | ```bash
70 | $ yarn add palette-webpack-plugin -D
71 | ```
72 |
73 | Then add the plugin to your `webpack` config. Here is an example containing the default values:
74 |
75 | **webpack.config.js**
76 |
77 | ```js
78 | const PalettePlugin = require('palette-webpack-plugin');
79 |
80 | module.exports = {
81 | plugins: [
82 | new PalettePlugin({
83 | output: 'palette.json',
84 | blacklist: ['transparent', 'inherit'],
85 | priority: 'tailwind',
86 | pretty: false,
87 | tailwind: {
88 | config: './tailwind.config.js',
89 | shades: false,
90 | path: 'colors',
91 | },
92 | sass: {
93 | path: 'resources/assets/styles/config',
94 | files: ['variables.scss'],
95 | variables: ['colors'],
96 | },
97 | }),
98 | ],
99 | };
100 | ```
101 |
102 | If you are using [Laravel Mix](https://laravel-mix.com), you may use the Mix helper like so:
103 |
104 | **webpack.mix.js**
105 |
106 | ```js
107 | const mix = require('laravel-mix');
108 | require('palette-webpack-plugin/src/mix');
109 |
110 | mix.palette({ ... });
111 | ```
112 |
113 | ## Usage
114 |
115 | The plugin's signature:
116 |
117 | **webpack.config.js**
118 |
119 | ```js
120 | module.exports = {
121 | plugins: [new PalettePlugin(options)],
122 | };
123 | ```
124 |
125 | **webpack.mix.js**
126 |
127 | ```js
128 | mix.palette(options);
129 | ```
130 |
131 | ### Options
132 |
133 | | Name | Type | Default | Description |
134 | | :---------------: | :------------------------: | :--------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
135 | | `output` | `{String}` | `'palette.json'` | The filename and path relative to the public path. |
136 | | `blacklist` | `{Array}` | `['transparent, 'inherit']` | Globs to ignore colors. |
137 | | `priority` | `{String}` | `'tailwind'` | Priority when merging non-unique colors while using both Tailwind and Sass. |
138 | | `pretty` | `{Boolean}` | `false` | Use pretty formatting when writing the JSON file. |
139 | | `tailwind` | `{Object}` | `{ ... }` | Set Tailwind options. (See below) |
140 | | `tailwind.config` | `{String}` | `'./tailwind.config.js'` | Path to the Tailwind configuration file relative to the project root path. |
141 | | `tailwind.shades` | `{Object\|Array\|Boolean}` | `false` | While set to `true`, every color shade (`100-900`) will be generated. When set to `false`, only `500` will be used. Optionally, you may define either an array of shades as strings `['50', '100', '500']` or an object containing shade labels `{50: 'Lightest', 100: 'Lighter', 500: ''}`. |
142 | | `tailwind.path` | `{String}` | `'colors'` | Path to Tailwind config values for palette colors in dot notation. Uses Tailwind's color palette `theme('colors')` per default. |
143 | | `sass` | `{Object}` | `{ ... }` | Set Sass options. (See below) |
144 | | `sass.path` | `{String}` | `'resources/assets/styles/config'` | Path to Sass variable files relative to the project root path. |
145 | | `sass.files` | `{Array}` | `['variables.scss']` | An array of files to search for the defined Sass variables. |
146 | | `sass.variables` | `{Array}` | `['colors']` | An array of Sass variables (with or without `$`) to use for the color palette. |
147 |
148 | ### WordPress
149 |
150 | #### Vanilla WordPress
151 |
152 | The general idea is to [`file_get_contents()`](https://www.php.net/manual/en/function.file-get-contents.php) and [`json_decode()`](https://www.php.net/manual/en/function.json-decode.php) the palette and pass it to `add_theme_support('editor-color-palette', $palette)`.
153 |
154 | Here is an example of doing that:
155 |
156 | ```php
157 | /**
158 | * Register the initial theme setup.
159 | *
160 | * @return void
161 | */
162 | add_action('after_setup_theme', function () {
163 | /**
164 | * Enable theme color palette support
165 | * @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#block-color-palettes
166 | */
167 | add_theme_support('editor-color-palette', json_decode(file_get_contents('path/to/palette.json'), true));
168 | }, 20);
169 | ```
170 |
171 | #### Sage 10
172 |
173 | When using Sage 10, you can take advantage of the `asset()` helper to fetch the palette. A good place for doing this would be in `setup.php` with the other `add_theme_support()` options.
174 |
175 | ```php
176 | /**
177 | * Enable theme color palette support
178 | * @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#block-color-palettes
179 | */
180 | add_theme_support('editor-color-palette', json_decode(asset('palette.json')->contents(), true));
181 | ```
182 |
183 | ## Output Example
184 |
185 | ```scss
186 | $black: '#111';
187 |
188 | $colors: (
189 | 'red': '#f54242',
190 | 'black': $black,
191 | 'not-actually-black': '#42f596',
192 | 'random-gray': '#858c89',
193 | 'white': '#fff',
194 | 'blue': '#4287f5',
195 | 'orange': '#f5b342',
196 | );
197 | ```
198 |
199 | would be transformed to:
200 |
201 | ```json
202 | [
203 | { "name": "Blue", "slug": "blue", "color": "#4287f5" },
204 | {
205 | "name": "Not Actually Black",
206 | "slug": "not-actually-black",
207 | "color": "#42f596"
208 | },
209 | { "name": "Orange", "slug": "orange", "color": "#f5b342" },
210 | { "name": "Red", "slug": "red", "color": "#f54242" },
211 | { "name": "Black", "slug": "black", "color": "#111" },
212 | { "name": "Random Gray", "slug": "random-gray", "color": "#858c89" },
213 | { "name": "White", "slug": "white", "color": "#fff" }
214 | ]
215 | ```
216 |
217 | ## Contributing
218 |
219 | Contributions are welcome from everyone. We have [contributing guidelines](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md) to help you get started.
220 |
221 | ## Todo
222 |
223 | - [ ] Add tests.
224 | - [ ] Split into components.
225 | - [ ] Convert to TypeScript?
226 |
227 | ## Community
228 |
229 | Keep track of development and community news.
230 |
231 | - Participate on the [Roots Discourse](https://discourse.roots.io/)
232 | - Follow [@rootswp on Twitter](https://twitter.com/rootswp)
233 | - Read and subscribe to the [Roots Blog](https://roots.io/blog/)
234 | - Subscribe to the [Roots Newsletter](https://roots.io/subscribe/)
235 | - Listen to the [Roots Radio podcast](https://roots.io/podcast/)
236 |
237 | ## License
238 |
239 | Palette Webpack Plugin is provided under the [MIT License](https://github.com/roots/palette-webpack-plugin/blob/master/LICENSE.md).
240 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "palette-webpack-plugin",
3 | "version": "1.0.5",
4 | "description": "Generate a JSON file containing your color palette from existing Sass maps and/or Tailwind.",
5 | "author": "Brandon Nifong ",
6 | "contributors": [
7 | "Austin Pray "
8 | ],
9 | "license": "MIT",
10 | "repository": "roots/palette-webpack-plugin",
11 | "homepage": "https://github.com/roots/palette-webpack-plugin",
12 | "bugs": "https://github.com/roots/palette-webpack-plugin/issues",
13 | "keywords": [
14 | "wordpress",
15 | "webpack",
16 | "color",
17 | "tailwind",
18 | "sass",
19 | "json"
20 | ],
21 | "main": "src/index.js",
22 | "engines": {
23 | "node": ">=16.0.0"
24 | },
25 | "scripts": {
26 | "test": "eslint src/ --max-warnings=0"
27 | },
28 | "dependencies": {
29 | "d3-color": "^2.0.0",
30 | "d3-hsv": "^0.1.0",
31 | "lodash": "^4.17.20",
32 | "sass-export": "^2.1.0"
33 | },
34 | "peerDependencies": {
35 | "webpack": "^4.0.0 || ^5.0.0"
36 | },
37 | "devDependencies": {
38 | "eslint": "^8.23.0",
39 | "husky": "^8.0.1"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const fs = require('fs');
3 | const webpack = require('webpack');
4 | const _ = require('lodash');
5 |
6 | const { color: d3Color } = require('d3-color');
7 | const { hsv: d3Hsv } = require('d3-hsv');
8 |
9 | class PaletteWebpackPlugin {
10 | /**
11 | * Register the component.
12 | *
13 | * @param {Object} options
14 | */
15 | constructor(options) {
16 | this.options = _.merge(
17 | {
18 | output: 'palette.json',
19 | blacklist: ['transparent', 'inherit'],
20 | priority: 'tailwind',
21 | pretty: false,
22 | tailwind: {
23 | config: './tailwind.config.js',
24 | shades: false,
25 | path: 'colors',
26 | },
27 | sass: {
28 | path: 'resources/assets/styles/config',
29 | files: ['variables.scss'],
30 | variables: ['colors'],
31 | },
32 | },
33 | options || {}
34 | );
35 |
36 | this.palette = this.options.priority.includes('tailwind')
37 | ? this.build(this.tailwind(), this.sass())
38 | : this.build(this.sass(), this.tailwind());
39 | }
40 |
41 | /**
42 | * Add Palette to the webpack build process.
43 | *
44 | * @param {Object} compiler
45 | */
46 | apply(compiler) {
47 | const palette = JSON.stringify(
48 | this.palette,
49 | null,
50 | this.options.pretty ? 2 : null
51 | );
52 |
53 | if (compiler.hooks) {
54 | if (webpack.version.startsWith('5')) {
55 | compiler.hooks.thisCompilation.tap(
56 | this.constructor.name,
57 | (compilation) => {
58 | Object.assign(compilation.assets, {
59 | [this.options.output]: {
60 | source() {
61 | return palette;
62 | },
63 | size() {
64 | return palette.length;
65 | },
66 | },
67 | });
68 | }
69 | );
70 | } else {
71 | compiler.hooks.emit.tapAsync(
72 | this.constructor.name,
73 | (compilation, callback) => {
74 | Object.assign(compilation.assets, {
75 | [this.options.output]: {
76 | source() {
77 | return palette;
78 | },
79 | size() {
80 | return palette.length;
81 | },
82 | },
83 | });
84 |
85 | callback();
86 | }
87 | );
88 | }
89 | }
90 | }
91 |
92 | /**
93 | * Builds a flattened array containing descriptive color objects in a format
94 | * compatible with the WordPress `editor-color-palette` theme support feature.
95 | *
96 | * @see {@link https://developer.wordpress.org/block-editor/developers/themes/theme-support/}
97 | * @param {Object} objects
98 | */
99 | build(...objects) {
100 | const collection = _.uniqBy(_.union(...objects), 'name');
101 |
102 | const [colors, maybeColors] = _.partition(
103 | collection,
104 | (value) => !!d3Color(value.color)
105 | );
106 | const [falsePositives, notColors] = _.partition(maybeColors, (value) =>
107 | /^(?:rgb|hsl)a?\(.+?\)$/i.test(value.color)
108 | );
109 | const [grayscale, notGrayscale] = _.partition(
110 | colors,
111 | (value) =>
112 | this.isGrayscale(value.color) || this.maybeGrayscale(value.color)
113 | );
114 |
115 | return [
116 | [...notGrayscale, ...falsePositives, ...notColors],
117 | grayscale,
118 | ].flatMap((color) => _.sortBy(color, 'name'));
119 | }
120 |
121 | /**
122 | * Fetch and parse Sass theme colors if they are available.
123 | */
124 | sass() {
125 | if (!this.options.sass || !this.options.sass.files) {
126 | return;
127 | }
128 |
129 | const paths = this.options.sass.path
130 | ? _.endsWith('/', this.options.sass.path)
131 | ? this.options.sass.path
132 | : [this.options.sass.path, '/'].join('')
133 | : null;
134 |
135 | const files = [this.options.sass.files].map((file) => {
136 | if (this.exists([paths, file].join(''))) {
137 | return [paths, file].join('');
138 | }
139 | });
140 |
141 | if (!files) {
142 | return;
143 | }
144 |
145 | const variables = require('sass-export')
146 | .exporter({ inputFiles: files })
147 | .getArray();
148 |
149 | if (!variables.length) {
150 | return;
151 | }
152 |
153 | return variables
154 | .filter(
155 | (key) =>
156 | [this.options.sass.variables].some(
157 | (value) =>
158 | key.name ===
159 | (_.startsWith(value, '$') ? value : ['$', value].join(''))
160 | ) && key.mapValue
161 | )
162 | .flatMap((colors) =>
163 | colors.mapValue.map((color) =>
164 | this.transform(color.name, color.compiledValue, true)
165 | )
166 | );
167 | }
168 |
169 | /**
170 | * Fetch and parse Tailwind theme colors if they are available.
171 | */
172 | tailwind() {
173 | if (!this.options.tailwind || !this.exists(this.options.tailwind.config)) {
174 | return [];
175 | }
176 |
177 | const config = require('tailwindcss/resolveConfig')(
178 | require(path.resolve(this.options.tailwind.config))
179 | );
180 |
181 | this.tailwind = _.get(
182 | config,
183 | `theme.${this.options.tailwind.path || 'colors'}`,
184 | {}
185 | );
186 |
187 | return Object.keys(this.tailwind)
188 | .flatMap((key) => {
189 | if (!key || this.options.blacklist.includes(key)) {
190 | return;
191 | }
192 |
193 | if (_.isString(this.tailwind[key])) {
194 | return this.transform(key);
195 | }
196 |
197 | if (
198 | !this.options.tailwind.shades &&
199 | this.tailwind[key].hasOwnProperty('500')
200 | ) {
201 | return this.transform(key, '500');
202 | }
203 |
204 | if (_.isArray(this.options.tailwind.shades)) {
205 | return Object.keys(this.tailwind[key])
206 | .filter((value) => this.options.tailwind.shades.includes(value))
207 | .map((value) => this.transform(key, value));
208 | }
209 |
210 | if (_.isObject(this.options.tailwind.shades)) {
211 | return Object.keys(this.tailwind[key])
212 | .filter((value) =>
213 | Object.keys(this.options.tailwind.shades).includes(value)
214 | )
215 | .map((value) => this.transform(key, value));
216 | }
217 |
218 | return Object.keys(this.tailwind[key]).map((value) =>
219 | this.transform(key, value)
220 | );
221 | })
222 | .filter((value) => !!value);
223 | }
224 |
225 | /**
226 | * Transform a color key and value into a more descriptive object.
227 | *
228 | * @param {String} key
229 | * @param {String} value
230 | * @param {Boolean} isSass
231 | */
232 | transform(key, value, isSass = false) {
233 | if (isSass) {
234 | return {
235 | name: this.title(key),
236 | slug: key,
237 | color: value,
238 | };
239 | }
240 |
241 | if (!value) {
242 | return {
243 | name: this.title(key),
244 | slug: key,
245 | color: this.tailwind[key],
246 | };
247 | }
248 |
249 | return {
250 | name: isNaN(value)
251 | ? this.title(value)
252 | : this.options.tailwind.shades
253 | ? this.title(key, value)
254 | : this.title(key),
255 | slug: `${key}-${value}`,
256 | color: this.tailwind[key][value],
257 | };
258 | }
259 |
260 | /**
261 | * Returns a title cased string.
262 | *
263 | * @param {String} value
264 | * @param {String} description
265 | */
266 | title(value, description) {
267 | value = _.startCase(_.camelCase(value));
268 |
269 | if (
270 | !_.isEmpty(description) &&
271 | _.isObject(this.options.tailwind.shades) &&
272 | _.has(this.options.tailwind.shades, description)
273 | ) {
274 | return _.trim(`${this.options.tailwind.shades[description]} ${value}`);
275 | }
276 |
277 | return (
278 | value + (!_.isEmpty(description) ? ` (${this.title(description)})` : '')
279 | );
280 | }
281 |
282 | /**
283 | * Checks if a file exists.
284 | *
285 | * @param {String|Array} files
286 | */
287 | exists(files) {
288 | if (Array.isArray(files) && files.length) {
289 | return (this.options.sass.files =
290 | files.filter((file) => {
291 | return fs.existsSync(file);
292 | }) || false);
293 | }
294 |
295 | return fs.existsSync(files);
296 | }
297 |
298 | /**
299 | * Check if a color is grayscale.
300 | *
301 | * @param {String} color
302 | */
303 | isGrayscale(color) {
304 | const { r, g, b } = d3Color(color);
305 |
306 | return r === g && r === b;
307 | }
308 |
309 | /**
310 | * Build a curve to find colors that visually look like grayscale.
311 | *
312 | * Shout out to Austin Pray
313 | * for the big brain plays on color sorting.
314 | *
315 | * @param {String} color
316 | */
317 | maybeGrayscale(color) {
318 | const { h, s, v } = d3Hsv(color);
319 |
320 | /**
321 | * HSV is a cylinder where the central vertical axis comprises
322 | * the neutral, achromatic, or gray colors.
323 | * (image: https://w.wiki/Fsg)
324 | *
325 | * Let's build a curve to find colors that look like grayscale...
326 | *
327 | * v = 1.3/(1+8.5*s)
328 | * https://www.wolframalpha.com/input/?i=plot+v+%3D+1.3%2F%281%2B8.5*s%29+from+v%3D0+to+1+and+s%3D0+to+1
329 | *
330 | * Good enough for government work. Now let's see if the value
331 | * falls below the curve.
332 | */
333 | return v < 1.3 / (1 + 8.5 * s);
334 | }
335 | }
336 |
337 | module.exports = PaletteWebpackPlugin;
338 |
--------------------------------------------------------------------------------
/src/mix.js:
--------------------------------------------------------------------------------
1 | const mix = require('laravel-mix');
2 | const PalettePlugin = require('./index');
3 |
4 | class Palette {
5 | /**
6 | * The optional name to be used when called by Mix.
7 | */
8 | name() {
9 | return ['colors', 'palette'];
10 | }
11 |
12 | /**
13 | * Register the component.
14 | *
15 | * @param {Object} options
16 | */
17 | register(options) {
18 | this.options = options || {};
19 | }
20 |
21 | /**
22 | * Plugins to be merged with the master webpack config.
23 | */
24 | webpackPlugins() {
25 | return new PalettePlugin(this.options);
26 | }
27 | }
28 |
29 | mix.extend('palette', new Palette());
30 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@eslint/eslintrc@^1.3.1":
6 | version "1.3.1"
7 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d"
8 | integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==
9 | dependencies:
10 | ajv "^6.12.4"
11 | debug "^4.3.2"
12 | espree "^9.4.0"
13 | globals "^13.15.0"
14 | ignore "^5.2.0"
15 | import-fresh "^3.2.1"
16 | js-yaml "^4.1.0"
17 | minimatch "^3.1.2"
18 | strip-json-comments "^3.1.1"
19 |
20 | "@humanwhocodes/config-array@^0.10.4":
21 | version "0.10.4"
22 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
23 | integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
24 | dependencies:
25 | "@humanwhocodes/object-schema" "^1.2.1"
26 | debug "^4.1.1"
27 | minimatch "^3.0.4"
28 |
29 | "@humanwhocodes/gitignore-to-minimatch@^1.0.2":
30 | version "1.0.2"
31 | resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
32 | integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
33 |
34 | "@humanwhocodes/module-importer@^1.0.1":
35 | version "1.0.1"
36 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
37 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
38 |
39 | "@humanwhocodes/object-schema@^1.2.1":
40 | version "1.2.1"
41 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
42 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
43 |
44 | "@nodelib/fs.scandir@2.1.5":
45 | version "2.1.5"
46 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
47 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
48 | dependencies:
49 | "@nodelib/fs.stat" "2.0.5"
50 | run-parallel "^1.1.9"
51 |
52 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
53 | version "2.0.5"
54 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
55 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
56 |
57 | "@nodelib/fs.walk@^1.2.3":
58 | version "1.2.8"
59 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
60 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
61 | dependencies:
62 | "@nodelib/fs.scandir" "2.1.5"
63 | fastq "^1.6.0"
64 |
65 | acorn-jsx@^5.3.2:
66 | version "5.3.2"
67 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
68 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
69 |
70 | acorn@^8.8.0:
71 | version "8.8.0"
72 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
73 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
74 |
75 | ajv@^6.10.0, ajv@^6.12.4:
76 | version "6.12.6"
77 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
78 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
79 | dependencies:
80 | fast-deep-equal "^3.1.1"
81 | fast-json-stable-stringify "^2.0.0"
82 | json-schema-traverse "^0.4.1"
83 | uri-js "^4.2.2"
84 |
85 | ansi-regex@^5.0.1:
86 | version "5.0.1"
87 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
88 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
89 |
90 | ansi-styles@^4.1.0:
91 | version "4.3.0"
92 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
93 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
94 | dependencies:
95 | color-convert "^2.0.1"
96 |
97 | anymatch@~3.1.2:
98 | version "3.1.2"
99 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
100 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
101 | dependencies:
102 | normalize-path "^3.0.0"
103 | picomatch "^2.0.4"
104 |
105 | argparse@^2.0.1:
106 | version "2.0.1"
107 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
108 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
109 |
110 | array-union@^2.1.0:
111 | version "2.1.0"
112 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
113 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
114 |
115 | balanced-match@^1.0.0:
116 | version "1.0.2"
117 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
118 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
119 |
120 | binary-extensions@^2.0.0:
121 | version "2.2.0"
122 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
123 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
124 |
125 | brace-expansion@^1.1.7:
126 | version "1.1.11"
127 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
128 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
129 | dependencies:
130 | balanced-match "^1.0.0"
131 | concat-map "0.0.1"
132 |
133 | braces@^3.0.2, braces@~3.0.2:
134 | version "3.0.2"
135 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
136 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
137 | dependencies:
138 | fill-range "^7.0.1"
139 |
140 | callsites@^3.0.0:
141 | version "3.1.0"
142 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
143 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
144 |
145 | chalk@^4.0.0:
146 | version "4.1.2"
147 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
148 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
149 | dependencies:
150 | ansi-styles "^4.1.0"
151 | supports-color "^7.1.0"
152 |
153 | "chokidar@>=3.0.0 <4.0.0":
154 | version "3.5.3"
155 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
156 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
157 | dependencies:
158 | anymatch "~3.1.2"
159 | braces "~3.0.2"
160 | glob-parent "~5.1.2"
161 | is-binary-path "~2.1.0"
162 | is-glob "~4.0.1"
163 | normalize-path "~3.0.0"
164 | readdirp "~3.6.0"
165 | optionalDependencies:
166 | fsevents "~2.3.2"
167 |
168 | color-convert@^2.0.1:
169 | version "2.0.1"
170 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
171 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
172 | dependencies:
173 | color-name "~1.1.4"
174 |
175 | color-name@~1.1.4:
176 | version "1.1.4"
177 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
178 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
179 |
180 | concat-map@0.0.1:
181 | version "0.0.1"
182 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
183 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
184 |
185 | cross-spawn@^7.0.2:
186 | version "7.0.3"
187 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
188 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
189 | dependencies:
190 | path-key "^3.1.0"
191 | shebang-command "^2.0.0"
192 | which "^2.0.1"
193 |
194 | d3-color@1:
195 | version "1.4.1"
196 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
197 | integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
198 |
199 | d3-color@^2.0.0:
200 | version "2.0.0"
201 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e"
202 | integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==
203 |
204 | d3-hsv@^0.1.0:
205 | version "0.1.0"
206 | resolved "https://registry.yarnpkg.com/d3-hsv/-/d3-hsv-0.1.0.tgz#c95be89b34177a29e70a0848db95d7f0261ea99b"
207 | integrity sha512-HcIU73raRodnYiGDMzFbI8wyWkQtd+aAgX2sypAKnJ7UP93P9bOEhhrxWL4krcyp1ec2LFOUpvC8mFBt38YokQ==
208 | dependencies:
209 | d3-color "1"
210 |
211 | debug@^4.1.1, debug@^4.3.2:
212 | version "4.3.4"
213 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
214 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
215 | dependencies:
216 | ms "2.1.2"
217 |
218 | deep-is@^0.1.3:
219 | version "0.1.4"
220 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
221 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
222 |
223 | dir-glob@^3.0.1:
224 | version "3.0.1"
225 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
226 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
227 | dependencies:
228 | path-type "^4.0.0"
229 |
230 | doctrine@^3.0.0:
231 | version "3.0.0"
232 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
233 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
234 | dependencies:
235 | esutils "^2.0.2"
236 |
237 | escape-string-regexp@^4.0.0:
238 | version "4.0.0"
239 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
240 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
241 |
242 | eslint-scope@^7.1.1:
243 | version "7.1.1"
244 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
245 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
246 | dependencies:
247 | esrecurse "^4.3.0"
248 | estraverse "^5.2.0"
249 |
250 | eslint-utils@^3.0.0:
251 | version "3.0.0"
252 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
253 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
254 | dependencies:
255 | eslint-visitor-keys "^2.0.0"
256 |
257 | eslint-visitor-keys@^2.0.0:
258 | version "2.1.0"
259 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
260 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
261 |
262 | eslint-visitor-keys@^3.3.0:
263 | version "3.3.0"
264 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
265 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
266 |
267 | eslint@^8.23.0:
268 | version "8.23.0"
269 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040"
270 | integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==
271 | dependencies:
272 | "@eslint/eslintrc" "^1.3.1"
273 | "@humanwhocodes/config-array" "^0.10.4"
274 | "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
275 | "@humanwhocodes/module-importer" "^1.0.1"
276 | ajv "^6.10.0"
277 | chalk "^4.0.0"
278 | cross-spawn "^7.0.2"
279 | debug "^4.3.2"
280 | doctrine "^3.0.0"
281 | escape-string-regexp "^4.0.0"
282 | eslint-scope "^7.1.1"
283 | eslint-utils "^3.0.0"
284 | eslint-visitor-keys "^3.3.0"
285 | espree "^9.4.0"
286 | esquery "^1.4.0"
287 | esutils "^2.0.2"
288 | fast-deep-equal "^3.1.3"
289 | file-entry-cache "^6.0.1"
290 | find-up "^5.0.0"
291 | functional-red-black-tree "^1.0.1"
292 | glob-parent "^6.0.1"
293 | globals "^13.15.0"
294 | globby "^11.1.0"
295 | grapheme-splitter "^1.0.4"
296 | ignore "^5.2.0"
297 | import-fresh "^3.0.0"
298 | imurmurhash "^0.1.4"
299 | is-glob "^4.0.0"
300 | js-yaml "^4.1.0"
301 | json-stable-stringify-without-jsonify "^1.0.1"
302 | levn "^0.4.1"
303 | lodash.merge "^4.6.2"
304 | minimatch "^3.1.2"
305 | natural-compare "^1.4.0"
306 | optionator "^0.9.1"
307 | regexpp "^3.2.0"
308 | strip-ansi "^6.0.1"
309 | strip-json-comments "^3.1.0"
310 | text-table "^0.2.0"
311 |
312 | espree@^9.4.0:
313 | version "9.4.0"
314 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a"
315 | integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==
316 | dependencies:
317 | acorn "^8.8.0"
318 | acorn-jsx "^5.3.2"
319 | eslint-visitor-keys "^3.3.0"
320 |
321 | esquery@^1.4.0:
322 | version "1.4.0"
323 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
324 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
325 | dependencies:
326 | estraverse "^5.1.0"
327 |
328 | esrecurse@^4.3.0:
329 | version "4.3.0"
330 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
331 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
332 | dependencies:
333 | estraverse "^5.2.0"
334 |
335 | estraverse@^5.1.0, estraverse@^5.2.0:
336 | version "5.3.0"
337 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
338 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
339 |
340 | esutils@^2.0.2:
341 | version "2.0.3"
342 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
343 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
344 |
345 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
346 | version "3.1.3"
347 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
348 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
349 |
350 | fast-glob@^3.2.9:
351 | version "3.2.11"
352 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
353 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
354 | dependencies:
355 | "@nodelib/fs.stat" "^2.0.2"
356 | "@nodelib/fs.walk" "^1.2.3"
357 | glob-parent "^5.1.2"
358 | merge2 "^1.3.0"
359 | micromatch "^4.0.4"
360 |
361 | fast-json-stable-stringify@^2.0.0:
362 | version "2.1.0"
363 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
364 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
365 |
366 | fast-levenshtein@^2.0.6:
367 | version "2.0.6"
368 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
369 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
370 |
371 | fastq@^1.6.0:
372 | version "1.13.0"
373 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
374 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
375 | dependencies:
376 | reusify "^1.0.4"
377 |
378 | file-entry-cache@^6.0.1:
379 | version "6.0.1"
380 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
381 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
382 | dependencies:
383 | flat-cache "^3.0.4"
384 |
385 | fill-range@^7.0.1:
386 | version "7.0.1"
387 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
388 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
389 | dependencies:
390 | to-regex-range "^5.0.1"
391 |
392 | find-up@^5.0.0:
393 | version "5.0.0"
394 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
395 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
396 | dependencies:
397 | locate-path "^6.0.0"
398 | path-exists "^4.0.0"
399 |
400 | flat-cache@^3.0.4:
401 | version "3.0.4"
402 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
403 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
404 | dependencies:
405 | flatted "^3.1.0"
406 | rimraf "^3.0.2"
407 |
408 | flatted@^3.1.0:
409 | version "3.2.7"
410 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
411 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
412 |
413 | fs.realpath@^1.0.0:
414 | version "1.0.0"
415 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
416 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
417 |
418 | fsevents@~2.3.2:
419 | version "2.3.2"
420 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
421 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
422 |
423 | functional-red-black-tree@^1.0.1:
424 | version "1.0.1"
425 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
426 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
427 |
428 | glob-parent@^5.1.2, glob-parent@~5.1.2:
429 | version "5.1.2"
430 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
431 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
432 | dependencies:
433 | is-glob "^4.0.1"
434 |
435 | glob-parent@^6.0.1:
436 | version "6.0.2"
437 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
438 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
439 | dependencies:
440 | is-glob "^4.0.3"
441 |
442 | glob@^7.1.3, glob@^7.1.6:
443 | version "7.2.3"
444 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
445 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
446 | dependencies:
447 | fs.realpath "^1.0.0"
448 | inflight "^1.0.4"
449 | inherits "2"
450 | minimatch "^3.1.1"
451 | once "^1.3.0"
452 | path-is-absolute "^1.0.0"
453 |
454 | globals@^13.15.0:
455 | version "13.17.0"
456 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"
457 | integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==
458 | dependencies:
459 | type-fest "^0.20.2"
460 |
461 | globby@^11.1.0:
462 | version "11.1.0"
463 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
464 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
465 | dependencies:
466 | array-union "^2.1.0"
467 | dir-glob "^3.0.1"
468 | fast-glob "^3.2.9"
469 | ignore "^5.2.0"
470 | merge2 "^1.4.1"
471 | slash "^3.0.0"
472 |
473 | grapheme-splitter@^1.0.4:
474 | version "1.0.4"
475 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
476 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
477 |
478 | has-flag@^4.0.0:
479 | version "4.0.0"
480 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
481 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
482 |
483 | husky@^8.0.1:
484 | version "8.0.1"
485 | resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9"
486 | integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==
487 |
488 | ignore@^5.2.0:
489 | version "5.2.0"
490 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
491 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
492 |
493 | immutable@^4.0.0:
494 | version "4.1.0"
495 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
496 | integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==
497 |
498 | import-fresh@^3.0.0, import-fresh@^3.2.1:
499 | version "3.3.0"
500 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
501 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
502 | dependencies:
503 | parent-module "^1.0.0"
504 | resolve-from "^4.0.0"
505 |
506 | imurmurhash@^0.1.4:
507 | version "0.1.4"
508 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
509 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
510 |
511 | inflight@^1.0.4:
512 | version "1.0.6"
513 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
514 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
515 | dependencies:
516 | once "^1.3.0"
517 | wrappy "1"
518 |
519 | inherits@2:
520 | version "2.0.4"
521 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
522 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
523 |
524 | is-binary-path@~2.1.0:
525 | version "2.1.0"
526 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
527 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
528 | dependencies:
529 | binary-extensions "^2.0.0"
530 |
531 | is-extglob@^2.1.1:
532 | version "2.1.1"
533 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
534 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
535 |
536 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
537 | version "4.0.3"
538 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
539 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
540 | dependencies:
541 | is-extglob "^2.1.1"
542 |
543 | is-number@^7.0.0:
544 | version "7.0.0"
545 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
546 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
547 |
548 | isexe@^2.0.0:
549 | version "2.0.0"
550 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
551 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
552 |
553 | js-yaml@^4.1.0:
554 | version "4.1.0"
555 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
556 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
557 | dependencies:
558 | argparse "^2.0.1"
559 |
560 | json-schema-traverse@^0.4.1:
561 | version "0.4.1"
562 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
563 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
564 |
565 | json-stable-stringify-without-jsonify@^1.0.1:
566 | version "1.0.1"
567 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
568 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
569 |
570 | levn@^0.4.1:
571 | version "0.4.1"
572 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
573 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
574 | dependencies:
575 | prelude-ls "^1.2.1"
576 | type-check "~0.4.0"
577 |
578 | locate-path@^6.0.0:
579 | version "6.0.0"
580 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
581 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
582 | dependencies:
583 | p-locate "^5.0.0"
584 |
585 | lodash.merge@^4.6.2:
586 | version "4.6.2"
587 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
588 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
589 |
590 | lodash@^4.17.20:
591 | version "4.17.21"
592 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
593 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
594 |
595 | merge2@^1.3.0, merge2@^1.4.1:
596 | version "1.4.1"
597 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
598 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
599 |
600 | micromatch@^4.0.4:
601 | version "4.0.5"
602 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
603 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
604 | dependencies:
605 | braces "^3.0.2"
606 | picomatch "^2.3.1"
607 |
608 | minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
609 | version "3.1.2"
610 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
611 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
612 | dependencies:
613 | brace-expansion "^1.1.7"
614 |
615 | minimist@^1.2.5:
616 | version "1.2.6"
617 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
618 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
619 |
620 | ms@2.1.2:
621 | version "2.1.2"
622 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
623 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
624 |
625 | natural-compare@^1.4.0:
626 | version "1.4.0"
627 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
628 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
629 |
630 | normalize-path@^3.0.0, normalize-path@~3.0.0:
631 | version "3.0.0"
632 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
633 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
634 |
635 | once@^1.3.0:
636 | version "1.4.0"
637 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
638 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
639 | dependencies:
640 | wrappy "1"
641 |
642 | optionator@^0.9.1:
643 | version "0.9.1"
644 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
645 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
646 | dependencies:
647 | deep-is "^0.1.3"
648 | fast-levenshtein "^2.0.6"
649 | levn "^0.4.1"
650 | prelude-ls "^1.2.1"
651 | type-check "^0.4.0"
652 | word-wrap "^1.2.3"
653 |
654 | p-limit@^3.0.2:
655 | version "3.1.0"
656 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
657 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
658 | dependencies:
659 | yocto-queue "^0.1.0"
660 |
661 | p-locate@^5.0.0:
662 | version "5.0.0"
663 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
664 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
665 | dependencies:
666 | p-limit "^3.0.2"
667 |
668 | parent-module@^1.0.0:
669 | version "1.0.1"
670 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
671 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
672 | dependencies:
673 | callsites "^3.0.0"
674 |
675 | path-exists@^4.0.0:
676 | version "4.0.0"
677 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
678 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
679 |
680 | path-is-absolute@^1.0.0:
681 | version "1.0.1"
682 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
683 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
684 |
685 | path-key@^3.1.0:
686 | version "3.1.1"
687 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
688 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
689 |
690 | path-type@^4.0.0:
691 | version "4.0.0"
692 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
693 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
694 |
695 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
696 | version "2.3.1"
697 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
698 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
699 |
700 | prelude-ls@^1.2.1:
701 | version "1.2.1"
702 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
703 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
704 |
705 | punycode@^2.1.0:
706 | version "2.1.1"
707 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
708 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
709 |
710 | queue-microtask@^1.2.2:
711 | version "1.2.3"
712 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
713 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
714 |
715 | readdirp@~3.6.0:
716 | version "3.6.0"
717 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
718 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
719 | dependencies:
720 | picomatch "^2.2.1"
721 |
722 | regexpp@^3.2.0:
723 | version "3.2.0"
724 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
725 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
726 |
727 | resolve-from@^4.0.0:
728 | version "4.0.0"
729 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
730 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
731 |
732 | reusify@^1.0.4:
733 | version "1.0.4"
734 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
735 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
736 |
737 | rimraf@^3.0.2:
738 | version "3.0.2"
739 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
740 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
741 | dependencies:
742 | glob "^7.1.3"
743 |
744 | run-parallel@^1.1.9:
745 | version "1.2.0"
746 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
747 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
748 | dependencies:
749 | queue-microtask "^1.2.2"
750 |
751 | sass-export@^2.1.0:
752 | version "2.1.2"
753 | resolved "https://registry.yarnpkg.com/sass-export/-/sass-export-2.1.2.tgz#93cfac5eff20f47ca2f559d75bd12a5b370b81d6"
754 | integrity sha512-p6bLjnD/0l+aoVkoToClGSUgIK3PsL3x9/lratp4kVtcvYqoM/JFCxnhcumW8lFVkF8o7K9kWQ6q8upC22S0dA==
755 | dependencies:
756 | glob "^7.1.6"
757 | minimist "^1.2.5"
758 | sass "^1.32.8"
759 |
760 | sass@^1.32.8:
761 | version "1.54.9"
762 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.9.tgz#b05f14ed572869218d1a76961de60cd647221762"
763 | integrity sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==
764 | dependencies:
765 | chokidar ">=3.0.0 <4.0.0"
766 | immutable "^4.0.0"
767 | source-map-js ">=0.6.2 <2.0.0"
768 |
769 | shebang-command@^2.0.0:
770 | version "2.0.0"
771 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
772 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
773 | dependencies:
774 | shebang-regex "^3.0.0"
775 |
776 | shebang-regex@^3.0.0:
777 | version "3.0.0"
778 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
779 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
780 |
781 | slash@^3.0.0:
782 | version "3.0.0"
783 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
784 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
785 |
786 | "source-map-js@>=0.6.2 <2.0.0":
787 | version "1.0.2"
788 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
789 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
790 |
791 | strip-ansi@^6.0.1:
792 | version "6.0.1"
793 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
794 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
795 | dependencies:
796 | ansi-regex "^5.0.1"
797 |
798 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
799 | version "3.1.1"
800 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
801 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
802 |
803 | supports-color@^7.1.0:
804 | version "7.2.0"
805 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
806 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
807 | dependencies:
808 | has-flag "^4.0.0"
809 |
810 | text-table@^0.2.0:
811 | version "0.2.0"
812 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
813 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
814 |
815 | to-regex-range@^5.0.1:
816 | version "5.0.1"
817 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
818 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
819 | dependencies:
820 | is-number "^7.0.0"
821 |
822 | type-check@^0.4.0, type-check@~0.4.0:
823 | version "0.4.0"
824 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
825 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
826 | dependencies:
827 | prelude-ls "^1.2.1"
828 |
829 | type-fest@^0.20.2:
830 | version "0.20.2"
831 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
832 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
833 |
834 | uri-js@^4.2.2:
835 | version "4.4.1"
836 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
837 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
838 | dependencies:
839 | punycode "^2.1.0"
840 |
841 | which@^2.0.1:
842 | version "2.0.2"
843 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
844 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
845 | dependencies:
846 | isexe "^2.0.0"
847 |
848 | word-wrap@^1.2.3:
849 | version "1.2.3"
850 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
851 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
852 |
853 | wrappy@1:
854 | version "1.0.2"
855 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
856 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
857 |
858 | yocto-queue@^0.1.0:
859 | version "0.1.0"
860 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
861 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
862 |
--------------------------------------------------------------------------------