├── .editorconfig
├── .gitignore
├── .rollup.js
├── .tape.js
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── INSTALL.md
├── LICENSE.md
├── README.md
├── index.js
├── lib
├── custom-media-from-root.js
├── get-custom-media-from-imports.js
├── media-ast-from-string.js
├── transform-atrules.js
├── transform-media-list.js
└── write-custom-media-to-exports.js
├── package.json
├── test
├── basic.css
├── basic.expect.css
├── basic.import.expect.css
├── basic.preserve.expect.css
├── export-media.css
├── export-media.js
├── export-media.json
├── export-media.mjs
├── import-css.css
├── import-media.css
├── import-media.js
├── import-media.json
├── import.css
├── import.empty.expect.css
├── import.expect.css
└── import.plugin.expect.css
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | indent_style = tab
7 | insert_final_newline = true
8 | trim_trailing_whitespace = true
9 |
10 | [*.md]
11 | trim_trailing_whitespace = false
12 |
13 | [*.{json,md,yml}]
14 | indent_size = 2
15 | indent_style = space
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | index.*.*
3 | package-lock.json
4 | *.log*
5 | *.result.css
6 | .*
7 | !.editorconfig
8 | !.gitignore
9 | !.rollup.js
10 | !.tape.js
11 | !.travis.yml
12 |
--------------------------------------------------------------------------------
/.rollup.js:
--------------------------------------------------------------------------------
1 | import babel from '@rollup/plugin-babel';
2 |
3 | export default {
4 | input: 'index.js',
5 | output: [
6 | { file: 'index.cjs.js', format: 'cjs', sourcemap: true, exports: 'default' },
7 | { file: 'index.es.mjs', format: 'es', sourcemap: true, exports: 'default' }
8 | ],
9 | plugins: [
10 | babel({
11 | babelHelpers: 'bundled',
12 | plugins: [
13 | '@babel/plugin-syntax-dynamic-import'
14 | ],
15 | presets: [
16 | ['@babel/env', { modules: false, targets: { node: 10 } }]
17 | ]
18 | })
19 | ]
20 | };
21 |
--------------------------------------------------------------------------------
/.tape.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'basic': {
3 | message: 'supports basic usage'
4 | },
5 | 'basic:preserve': {
6 | message: 'supports { preserve: true } usage',
7 | options: {
8 | preserve: true
9 | }
10 | },
11 | 'import': {
12 | message: 'supports { importFrom: { customMedia: { ... } } } usage',
13 | options: {
14 | importFrom: {
15 | customMedia: {
16 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
17 | '--not-mq-a': 'not all and (--mq-a)'
18 | }
19 | }
20 | }
21 | },
22 | 'import:import-fn': {
23 | message: 'supports { importFrom() } usage',
24 | options: {
25 | importFrom() {
26 | return {
27 | customMedia: {
28 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
29 | '--not-mq-a': 'not all and (--mq-a)'
30 | }
31 | };
32 | }
33 | },
34 | expect: 'import.expect.css',
35 | result: 'import.result.css'
36 | },
37 | 'import:import-fn-promise': {
38 | message: 'supports { async importFrom() } usage',
39 | options: {
40 | importFrom() {
41 | return new Promise(resolve => {
42 | resolve({
43 | customMedia: {
44 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
45 | '--not-mq-a': 'not all and (--mq-a)'
46 | }
47 | })
48 | });
49 | }
50 | },
51 | expect: 'import.expect.css',
52 | result: 'import.result.css'
53 | },
54 | 'import:json': {
55 | message: 'supports { importFrom: "test/import-media.json" } usage',
56 | options: {
57 | importFrom: 'test/import-media.json'
58 | },
59 | expect: 'import.expect.css',
60 | result: 'import.result.css'
61 | },
62 | 'import:js': {
63 | message: 'supports { importFrom: "test/import-media.js" } usage',
64 | options: {
65 | importFrom: 'test/import-media.js'
66 | },
67 | expect: 'import.expect.css',
68 | result: 'import.result.css'
69 | },
70 | 'import:css': {
71 | message: 'supports { importFrom: "test/import-media.css" } usage',
72 | options: {
73 | importFrom: 'test/import-media.css'
74 | },
75 | expect: 'import.expect.css',
76 | result: 'import.result.css'
77 | },
78 | 'import:css-from': {
79 | message: 'supports { importFrom: { from: "test/import-media.css" } } usage',
80 | options: {
81 | importFrom: { from: 'test/import-media.css' }
82 | },
83 | expect: 'import.expect.css',
84 | result: 'import.result.css'
85 | },
86 | 'import:css-from-type': {
87 | message: 'supports { importFrom: [ { from: "test/import-media.css", type: "css" } ] } usage',
88 | options: {
89 | importFrom: [ { from: 'test/import-media.css', type: 'css' } ]
90 | },
91 | expect: 'import.expect.css',
92 | result: 'import.result.css'
93 | },
94 | 'import:empty': {
95 | message: 'supports { importFrom: {} } usage',
96 | options: {
97 | importFrom: {}
98 | }
99 | },
100 | 'basic:export': {
101 | message: 'supports { exportTo: { customMedia: { ... } } } usage',
102 | options: {
103 | exportTo: (global.__exportMediaObject = global.__exportMediaObject || {
104 | customMedia: null
105 | })
106 | },
107 | expect: 'basic.expect.css',
108 | result: 'basic.result.css',
109 | after() {
110 | if (__exportMediaObject.customMedia['--mq-a'] !== '(max-width: 30em), (max-height: 30em)') {
111 | throw new Error('The exportTo function failed');
112 | }
113 | }
114 | },
115 | 'basic:export-fn': {
116 | message: 'supports { exportTo() } usage',
117 | options: {
118 | exportTo(customMedia) {
119 | if (customMedia['--mq-a'] !== '(max-width: 30em), (max-height: 30em)') {
120 | throw new Error('The exportTo function failed');
121 | }
122 | }
123 | },
124 | expect: 'basic.expect.css',
125 | result: 'basic.result.css'
126 | },
127 | 'basic:export-fn-promise': {
128 | message: 'supports { async exportTo() } usage',
129 | options: {
130 | exportTo(customMedia) {
131 | return new Promise((resolve, reject) => {
132 | if (customMedia['--mq-a'] !== '(max-width: 30em), (max-height: 30em)') {
133 | reject('The exportTo function failed');
134 | } else {
135 | resolve();
136 | }
137 | });
138 | }
139 | },
140 | expect: 'basic.expect.css',
141 | result: 'basic.result.css'
142 | },
143 | 'basic:export-json': {
144 | message: 'supports { exportTo: "test/export-media.json" } usage',
145 | options: {
146 | exportTo: 'test/export-media.json'
147 | },
148 | expect: 'basic.expect.css',
149 | result: 'basic.result.css',
150 | before() {
151 | global.__exportMediaString = require('fs').readFileSync('test/export-media.json', 'utf8');
152 | },
153 | after() {
154 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.json', 'utf8')) {
155 | throw new Error('The original file did not match the freshly exported copy');
156 | }
157 | }
158 | },
159 | 'basic:export-js': {
160 | message: 'supports { exportTo: "test/export-media.js" } usage',
161 | options: {
162 | exportTo: 'test/export-media.js'
163 | },
164 | expect: 'basic.expect.css',
165 | result: 'basic.result.css',
166 | before() {
167 | global.__exportMediaString = require('fs').readFileSync('test/export-media.js', 'utf8');
168 | },
169 | after() {
170 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.js', 'utf8')) {
171 | throw new Error('The original file did not match the freshly exported copy');
172 | }
173 | }
174 | },
175 | 'basic:export-mjs': {
176 | message: 'supports { exportTo: "test/export-media.mjs" } usage',
177 | options: {
178 | exportTo: 'test/export-media.mjs'
179 | },
180 | expect: 'basic.expect.css',
181 | result: 'basic.result.css',
182 | before() {
183 | global.__exportMediaString = require('fs').readFileSync('test/export-media.mjs', 'utf8');
184 | },
185 | after() {
186 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.mjs', 'utf8')) {
187 | throw new Error('The original file did not match the freshly exported copy');
188 | }
189 | }
190 | },
191 | 'basic:export-css': {
192 | message: 'supports { exportTo: "test/export-media.css" } usage',
193 | options: {
194 | exportTo: 'test/export-media.css'
195 | },
196 | expect: 'basic.expect.css',
197 | result: 'basic.result.css',
198 | before() {
199 | global.__exportMediaString = require('fs').readFileSync('test/export-media.css', 'utf8');
200 | },
201 | after() {
202 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.css', 'utf8')) {
203 | throw new Error('The original file did not match the freshly exported copy');
204 | }
205 | }
206 | },
207 | 'basic:export-css-to': {
208 | message: 'supports { exportTo: { to: "test/export-media.css" } } usage',
209 | options: {
210 | exportTo: { to: 'test/export-media.css' }
211 | },
212 | expect: 'basic.expect.css',
213 | result: 'basic.result.css',
214 | before() {
215 | global.__exportMediaString = require('fs').readFileSync('test/export-media.css', 'utf8');
216 | },
217 | after() {
218 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.css', 'utf8')) {
219 | throw new Error('The original file did not match the freshly exported copy');
220 | }
221 | }
222 | },
223 | 'basic:export-css-to-type': {
224 | message: 'supports { exportTo: { to: "test/export-media.css", type: "css" } } usage',
225 | options: {
226 | exportTo: { to: 'test/export-media.css', type: 'css' }
227 | },
228 | expect: 'basic.expect.css',
229 | result: 'basic.result.css',
230 | before() {
231 | global.__exportMediaString = require('fs').readFileSync('test/export-media.css', 'utf8');
232 | },
233 | after() {
234 | if (global.__exportMediaString !== require('fs').readFileSync('test/export-media.css', 'utf8')) {
235 | throw new Error('The original file did not match the freshly exported copy');
236 | }
237 | }
238 | }
239 | };
240 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # https://docs.travis-ci.com/user/travis-lint
2 |
3 | language: node_js
4 |
5 | node_js:
6 | - 14
7 | - 12
8 | - 10
9 |
10 | install:
11 | - npm install --ignore-scripts
12 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changes to PostCSS Custom Media
2 |
3 | ### 8.0.0 (January 12, 2021)
4 |
5 | - Added: Support for PostCSS v8
6 |
7 | ### 7.0.8 (March 30, 2019)
8 |
9 | - Fixed: Issue importing from `.pcss` files
10 | - Updated: `postcss` to 7.0.14 (patch)
11 |
12 | ### 7.0.7 (October 19, 2018)
13 |
14 | - Fixed: Issue combining custom media media queries with `and`
15 |
16 | ### 7.0.6 (October 12, 2018)
17 |
18 | - Fixed: Issue combining multiple custom media
19 |
20 | ### 7.0.5 (October 5, 2018)
21 |
22 | - Fixed: Possible issues resolving paths to imports and exports
23 | - Added: Imports from `customMedia` and `custom-media` simultaneously
24 | - Updated: `postcss` to 7.0.5
25 |
26 | ### 7.0.4 (September 23, 2018)
27 |
28 | - Added: `importFromPlugins` option to process imports
29 |
30 | ### 7.0.3 (September 20, 2018)
31 |
32 | - Fixed: Do not break on an empty `importFrom` object
33 |
34 | ### 7.0.2 (September 15, 2018)
35 |
36 | - Fixed: An issue with re-assigning params as a non-string
37 |
38 | ### 7.0.1 (September 14, 2018)
39 |
40 | - Fixed: An issue with how opposing queries are resolved.
41 |
42 | ### 7.0.0 (September 14, 2018)
43 |
44 | - Added: New `preserve` option to preserve custom media and atrules using them
45 | - Added: New `exportTo` function to specify where to export custom media
46 | - Added: New `importFrom` option to specify where to import custom media
47 | - Added: Support for PostCSS v7
48 | - Added: Support for Node v6+
49 |
50 | # 6.0.0 (May 12, 2017)
51 |
52 | - Added: compatibility with postcss v6.x
53 |
54 | # 5.0.1 (February 3, 2016)
55 |
56 | - Fixed: circular dependencies are properly detected
57 | ([#17](https://github.com/postcss/postcss-custom-media/pull/17))
58 |
59 | # 5.0.0 (August 25, 2015)
60 |
61 | - Removed: compatibility with postcss v4.x
62 | - Added: compatibility with postcss v5.x
63 |
64 | # 4.1.0 (06 30, 2015)
65 |
66 | - Added: Allow custom media to reference each other
67 | ([#10](https://github.com/postcss/postcss-custom-media/pull/10))
68 |
69 | # 4.0.0 (May 17, 2015)
70 |
71 | - Changed: warning messages are now sent via postcss messages api (^4.1.0)
72 | - Added: automatic custom media `--` prefixing
73 | ([#11](https://github.com/postcss/postcss-custom-media/issues/11))
74 | - Added: `preserve` allows you to preserve custom media query defintions
75 | - Added: `appendExtensions` allows you (when `preserve` is truthy) to append your extensions as media queries
76 |
77 | # 3.0.0 (January 29, 2015)
78 |
79 | - Added: compatibility with postcss v4.x
80 | - Removed: compatibility with postcss v3.x
81 |
82 | # 2.0.0 [Yanked]
83 |
84 | _You never saw this version (this is a bad release that points to 1.0.0)._
85 |
86 | # 1.3.0 (November 25, 2014)
87 |
88 | - Changed: better gnu message
89 |
90 | # 1.2.1 (October 9, 2014)
91 |
92 | - Fixed: npm description
93 |
94 | # 1.2.0 (October 1, 2014)
95 |
96 | - Added: support for multiples media in query list (ref [#rework-custom-media/5](https://github.com/reworkcss/rework-custom-media/pull/5))
97 |
98 | # 1.1.0 (September 30, 2014)
99 |
100 | - Added: support for js-defined media queries (fix [#3](https://github.com/postcss/postcss-custom-media/issues/3))
101 |
102 | # 1.0.1 (September 16, 2014)
103 |
104 | - Added: Allow whitespace around custom media name (fix [#2](https://github.com/postcss/postcss-custom-media/issues/2))
105 |
106 | # 1.0.0 (August 12, 2014)
107 |
108 | ✨ First release based on [rework-custom-media](https://github.com/reworkcss/rework-custom-media) v0.1.1
109 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to PostCSS Custom Media
2 |
3 | You want to help? You rock! Now, take a moment to be sure your contributions
4 | make sense to everyone else.
5 |
6 | ## Reporting Issues
7 |
8 | Found a problem? Want a new feature?
9 |
10 | - See if your issue or idea has [already been reported].
11 | - Provide a [reduced test case] or a [live example].
12 |
13 | Remember, a bug is a _demonstrable problem_ caused by _our_ code.
14 |
15 | ## Submitting Pull Requests
16 |
17 | Pull requests are the greatest contributions, so be sure they are focused in
18 | scope and avoid unrelated commits.
19 |
20 | 1. To begin; [fork this project], clone your fork, and add our upstream.
21 | ```bash
22 | # Clone your fork of the repo into the current directory
23 | git clone git@github.com:YOUR_USER/postcss-custom-media.git
24 |
25 | # Navigate to the newly cloned directory
26 | cd postcss-custom-media
27 |
28 | # Assign the original repo to a remote called "upstream"
29 | git remote add upstream git@github.com:postcss/postcss-custom-media.git
30 |
31 | # Install the tools necessary for testing
32 | npm install
33 | ```
34 |
35 | 2. Create a branch for your feature or fix:
36 | ```bash
37 | # Move into a new branch for your feature
38 | git checkout -b feature/thing
39 | ```
40 | ```bash
41 | # Move into a new branch for your fix
42 | git checkout -b fix/something
43 | ```
44 |
45 | 3. If your code follows our practices, then push your feature branch:
46 | ```bash
47 | # Test current code
48 | npm test
49 | ```
50 | ```bash
51 | # Push the branch for your new feature
52 | git push origin feature/thing
53 | ```
54 | ```bash
55 | # Or, push the branch for your update
56 | git push origin update/something
57 | ```
58 |
59 | That’s it! Now [open a pull request] with a clear title and description.
60 |
61 | [already been reported]: issues
62 | [fork this project]: fork
63 | [live example]: https://codepen.io/pen
64 | [open a pull request]: https://help.github.com/articles/using-pull-requests/
65 | [reduced test case]: https://css-tricks.com/reduced-test-cases/
66 |
--------------------------------------------------------------------------------
/INSTALL.md:
--------------------------------------------------------------------------------
1 | # Installing PostCSS Custom Media
2 |
3 | [PostCSS Custom Media] runs in all Node environments, with special instructions for:
4 |
5 | | [Node](#node) | [PostCSS CLI](#postcss-cli) | [Webpack](#webpack) | [Create React App](#create-react-app) | [Gulp](#gulp) | [Grunt](#grunt) |
6 | | --- | --- | --- | --- | --- | --- |
7 |
8 | ## Node
9 |
10 | Add [PostCSS Custom Media] to your project:
11 |
12 | ```bash
13 | npm install postcss-custom-media --save-dev
14 | ```
15 |
16 | Use [PostCSS Custom Media] to process your CSS:
17 |
18 | ```js
19 | const postcssCustomMedia = require('postcss-custom-media');
20 |
21 | postcssCustomMedia.process(YOUR_CSS /*, processOptions, pluginOptions */);
22 | ```
23 |
24 | Or use it as a [PostCSS] plugin:
25 |
26 | ```js
27 | const postcss = require('postcss');
28 | const postcssCustomMedia = require('postcss-custom-media');
29 |
30 | postcss([
31 | postcssCustomMedia(/* pluginOptions */)
32 | ]).process(YOUR_CSS /*, processOptions */);
33 | ```
34 |
35 | ## PostCSS CLI
36 |
37 | Add [PostCSS CLI] to your project:
38 |
39 | ```bash
40 | npm install postcss-cli --save-dev
41 | ```
42 |
43 | Use [PostCSS Custom Media] in your `postcss.config.js` configuration file:
44 |
45 | ```js
46 | const postcssCustomMedia = require('postcss-custom-media');
47 |
48 | module.exports = {
49 | plugins: [
50 | postcssCustomMedia(/* pluginOptions */)
51 | ]
52 | }
53 | ```
54 |
55 | ## Webpack
56 |
57 | Add [PostCSS Loader] to your project:
58 |
59 | ```bash
60 | npm install postcss-loader --save-dev
61 | ```
62 |
63 | Use [PostCSS Custom Media] in your Webpack configuration:
64 |
65 | ```js
66 | const postcssCustomMedia = require('postcss-custom-media');
67 |
68 | module.exports = {
69 | module: {
70 | rules: [
71 | {
72 | test: /\.css$/,
73 | use: [
74 | 'style-loader',
75 | { loader: 'css-loader', options: { importLoaders: 1 } },
76 | { loader: 'postcss-loader', options: {
77 | ident: 'postcss',
78 | plugins: () => [
79 | postcssCustomMedia(/* pluginOptions */)
80 | ]
81 | } }
82 | ]
83 | }
84 | ]
85 | }
86 | }
87 | ```
88 |
89 | ## Create React App
90 |
91 | Add [React App Rewired] and [React App Rewire PostCSS] to your project:
92 |
93 | ```bash
94 | npm install react-app-rewired react-app-rewire-postcss --save-dev
95 | ```
96 |
97 | Use [React App Rewire PostCSS] and [PostCSS Custom Media] in your
98 | `config-overrides.js` file:
99 |
100 | ```js
101 | const reactAppRewirePostcss = require('react-app-rewire-postcss');
102 | const postcssCustomMedia = require('postcss-custom-media');
103 |
104 | module.exports = config => reactAppRewirePostcss(config, {
105 | plugins: () => [
106 | postcssCustomMedia(/* pluginOptions */)
107 | ]
108 | });
109 | ```
110 |
111 | ## Gulp
112 |
113 | Add [Gulp PostCSS] to your project:
114 |
115 | ```bash
116 | npm install gulp-postcss --save-dev
117 | ```
118 |
119 | Use [PostCSS Custom Media] in your Gulpfile:
120 |
121 | ```js
122 | const postcss = require('gulp-postcss');
123 | const postcssCustomMedia = require('postcss-custom-media');
124 |
125 | gulp.task('css', () => gulp.src('./src/*.css').pipe(
126 | postcss([
127 | postcssCustomMedia(/* pluginOptions */)
128 | ])
129 | ).pipe(
130 | gulp.dest('.')
131 | ));
132 | ```
133 |
134 | ## Grunt
135 |
136 | Add [Grunt PostCSS] to your project:
137 |
138 | ```bash
139 | npm install grunt-postcss --save-dev
140 | ```
141 |
142 | Use [PostCSS Custom Media] in your Gruntfile:
143 |
144 | ```js
145 | const postcssCustomMedia = require('postcss-custom-media');
146 |
147 | grunt.loadNpmTasks('grunt-postcss');
148 |
149 | grunt.initConfig({
150 | postcss: {
151 | options: {
152 | use: [
153 | postcssCustomMedia(/* pluginOptions */)
154 | ]
155 | },
156 | dist: {
157 | src: '*.css'
158 | }
159 | }
160 | });
161 | ```
162 |
163 | [Gulp PostCSS]: https://github.com/postcss/gulp-postcss
164 | [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
165 | [PostCSS]: https://github.com/postcss/postcss
166 | [PostCSS CLI]: https://github.com/postcss/postcss-cli
167 | [PostCSS Loader]: https://github.com/postcss/postcss-loader
168 | [PostCSS Custom Media]: https://github.com/postcss/postcss-custom-media
169 | [React App Rewire PostCSS]: https://github.com/csstools/react-app-rewire-postcss
170 | [React App Rewired]: https://github.com/timarney/react-app-rewired
171 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # The MIT License (MIT)
2 |
3 | Copyright © PostCSS
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9 | of the Software, and to permit persons to whom the Software is furnished to do
10 | so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
3 |
4 | # PostCSS Custom Media [
][postcss]
5 |
6 | [![NPM Version][npm-img]][npm-url]
7 | [![CSS Standard Status][css-img]][css-url]
8 | [![Build Status][cli-img]][cli-url]
9 | [![Support Chat][git-img]][git-url]
10 |
11 | [PostCSS Custom Media] lets you use Custom Media Queries in CSS, following the
12 | [CSS Media Queries] specification.
13 |
14 | ```pcss
15 | @custom-media --small-viewport (max-width: 30em);
16 |
17 | @media (--small-viewport) {
18 | /* styles for small viewport */
19 | }
20 |
21 | /* becomes */
22 |
23 | @media (max-width: 30em) {
24 | /* styles for small viewport */
25 | }
26 | ```
27 |
28 | ## Usage
29 |
30 | Add [PostCSS Custom Media] to your project:
31 |
32 | ```bash
33 | npm install postcss-custom-media --save-dev
34 | ```
35 |
36 | Use [PostCSS Custom Media] to process your CSS:
37 |
38 | ```js
39 | const postcssCustomMedia = require('postcss-custom-media');
40 |
41 | postcssCustomMedia.process(YOUR_CSS /*, processOptions, pluginOptions */);
42 | ```
43 |
44 | Or use it as a [PostCSS] plugin:
45 |
46 | ```js
47 | const postcss = require('postcss');
48 | const postcssCustomMedia = require('postcss-custom-media');
49 |
50 | postcss([
51 | postcssCustomMedia(/* pluginOptions */)
52 | ]).process(YOUR_CSS /*, processOptions */);
53 | ```
54 |
55 | [PostCSS Custom Media] runs in all Node environments, with special instructions for:
56 |
57 | | [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) |
58 | | --- | --- | --- | --- | --- | --- |
59 |
60 | ## Options
61 |
62 | ### preserve
63 |
64 | The `preserve` option determines whether custom media and atrules using custom
65 | media should be preserved in their original form.
66 |
67 | ```pcss
68 | @custom-media --small-viewport (max-width: 30em);
69 |
70 | @media (--small-viewport) {
71 | /* styles for small viewport */
72 | }
73 |
74 | /* becomes */
75 |
76 | @custom-media --small-viewport (max-width: 30em);
77 |
78 | @media (max-width: 30em) {
79 | /* styles for small viewport */
80 | }
81 |
82 | @media (--small-viewport) {
83 | /* styles for small viewport */
84 | }
85 | ```
86 |
87 | ### importFrom
88 |
89 | The `importFrom` option specifies sources where custom media can be imported
90 | from, which might be CSS, JS, and JSON files, functions, and directly passed
91 | objects.
92 |
93 | ```js
94 | postcssCustomMedia({
95 | importFrom: 'path/to/file.css' // => @custom-selector --small-viewport (max-width: 30em);
96 | });
97 | ```
98 |
99 | ```pcss
100 | @media (max-width: 30em) {
101 | /* styles for small viewport */
102 | }
103 |
104 | @media (--small-viewport) {
105 | /* styles for small viewport */
106 | }
107 | ```
108 |
109 | Multiple sources can be passed into this option, and they will be parsed in the
110 | order they are received. JavaScript files, JSON files, functions, and objects
111 | will need to namespace custom media using the `customMedia` or
112 | `custom-media` key.
113 |
114 | ```js
115 | postcssCustomMedia({
116 | importFrom: [
117 | 'path/to/file.css',
118 | 'and/then/this.js',
119 | 'and/then/that.json',
120 | {
121 | customMedia: { '--small-viewport': '(max-width: 30em)' }
122 | },
123 | () => {
124 | const customMedia = { '--small-viewport': '(max-width: 30em)' };
125 |
126 | return { customMedia };
127 | }
128 | ]
129 | });
130 | ```
131 |
132 | ### exportTo
133 |
134 | The `exportTo` option specifies destinations where custom media can be exported
135 | to, which might be CSS, JS, and JSON files, functions, and directly passed
136 | objects.
137 |
138 | ```js
139 | postcssCustomMedia({
140 | exportTo: 'path/to/file.css' // @custom-media --small-viewport (max-width: 30em);
141 | });
142 | ```
143 |
144 | Multiple destinations can be passed into this option, and they will be parsed
145 | in the order they are received. JavaScript files, JSON files, and objects will
146 | need to namespace custom media using the `customMedia` or
147 | `custom-media` key.
148 |
149 | ```js
150 | const cachedObject = { customMedia: {} };
151 |
152 | postcssCustomMedia({
153 | exportTo: [
154 | 'path/to/file.css', // @custom-media --small-viewport (max-width: 30em);
155 | 'and/then/this.js', // module.exports = { customMedia: { '--small-viewport': '(max-width: 30em)' } }
156 | 'and/then/this.mjs', // export const customMedia = { '--small-viewport': '(max-width: 30em)' } }
157 | 'and/then/that.json', // { "custom-media": { "--small-viewport": "(max-width: 30em)" } }
158 | cachedObject,
159 | customMedia => {
160 | customMedia // { '--small-viewport': '(max-width: 30em)' }
161 | }
162 | ]
163 | });
164 | ```
165 |
166 | See example exports written to [CSS](test/export-media.css),
167 | [JS](test/export-media.js), [MJS](test/export-media.mjs), and
168 | [JSON](test/export-media.json).
169 |
170 | [cli-img]: https://img.shields.io/travis/postcss/postcss-custom-media/master.svg
171 | [cli-url]: https://travis-ci.org/postcss/postcss-custom-media
172 | [css-img]: https://cssdb.org/badge/custom-media-queries.svg
173 | [css-url]: https://cssdb.org/#custom-media-queries
174 | [git-img]: https://img.shields.io/badge/support-chat-blue.svg
175 | [git-url]: https://gitter.im/postcss/postcss
176 | [npm-img]: https://img.shields.io/npm/v/postcss-custom-media.svg
177 | [npm-url]: https://www.npmjs.com/package/postcss-custom-media
178 |
179 | [CSS Media Queries]: https://drafts.csswg.org/mediaqueries-5/#custom-mq
180 | [PostCSS]: https://github.com/postcss/postcss
181 | [PostCSS Custom Media]: https://github.com/postcss/postcss-custom-media
182 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | import getCustomMediaFromRoot from './lib/custom-media-from-root';
2 | import getCustomMediaFromImports from './lib/get-custom-media-from-imports';
3 | import transformAtrules from './lib/transform-atrules';
4 | import writeCustomMediaToExports from './lib/write-custom-media-to-exports';
5 |
6 | const creator = opts => {
7 | // whether to preserve custom media and at-rules using them
8 | const preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : false;
9 |
10 | // sources to import custom media from
11 | const importFrom = [].concat(Object(opts).importFrom || []);
12 |
13 | // destinations to export custom media to
14 | const exportTo = [].concat(Object(opts).exportTo || []);
15 |
16 | // promise any custom media are imported
17 | const customMediaImportsPromise = getCustomMediaFromImports(importFrom);
18 |
19 | return {
20 | postcssPlugin: 'postcss-custom-media',
21 | Once: async (root, helpers) => {
22 |
23 | // combine rules from root and from imports
24 | helpers.customMedia = Object.assign(
25 | await customMediaImportsPromise,
26 | getCustomMediaFromRoot(root, { preserve })
27 | );
28 |
29 | await writeCustomMediaToExports(helpers.customMedia, exportTo);
30 | },
31 | AtRule: {
32 | media: (atrule, helpers) => {
33 | transformAtrules(atrule, {preserve}, helpers)
34 | }
35 | }
36 | }
37 | }
38 |
39 | creator.postcss = true
40 |
41 | export default creator
42 |
--------------------------------------------------------------------------------
/lib/custom-media-from-root.js:
--------------------------------------------------------------------------------
1 | import mediaASTFromString from './media-ast-from-string';
2 |
3 | // return custom selectors from the css root, conditionally removing them
4 | export default (root, opts) => {
5 | // initialize custom selectors
6 | const customMedias = {};
7 |
8 | // for each custom selector atrule that is a child of the css root
9 | root.nodes.slice().forEach(node => {
10 | if (isCustomMedia(node)) {
11 | // extract the name and selectors from the params of the custom selector
12 | const [, name, selectors] = node.params.match(customMediaParamsRegExp);
13 |
14 | // write the parsed selectors to the custom selector
15 | customMedias[name] = mediaASTFromString(selectors);
16 |
17 | // conditionally remove the custom selector atrule
18 | if (!Object(opts).preserve) {
19 | node.remove();
20 | }
21 | }
22 | });
23 |
24 | return customMedias;
25 | };
26 |
27 | // match the custom selector name
28 | const customMediaNameRegExp = /^custom-media$/i;
29 |
30 | // match the custom selector params
31 | const customMediaParamsRegExp = /^(--[A-z][\w-]*)\s+([\W\w]+)\s*$/;
32 |
33 | // whether the atrule is a custom selector
34 | const isCustomMedia = node => node.type === 'atrule' && customMediaNameRegExp.test(node.name) && customMediaParamsRegExp.test(node.params);
35 |
--------------------------------------------------------------------------------
/lib/get-custom-media-from-imports.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs';
2 | import path from 'path';
3 | import { parse } from 'postcss';
4 | import getMediaAstFromMediaString from './media-ast-from-string';
5 | import getCustomMedia from './custom-media-from-root';
6 |
7 | /* Get Custom Media from CSS File
8 | /* ========================================================================== */
9 |
10 | async function getCustomMediaFromCSSFile(from) {
11 | const css = await readFile(from);
12 | const root = parse(css, { from });
13 |
14 | return getCustomMedia(root, { preserve: true });
15 | }
16 |
17 | /* Get Custom Media from Object
18 | /* ========================================================================== */
19 |
20 | function getCustomMediaFromObject(object) {
21 | const customMedia = Object.assign(
22 | {},
23 | Object(object).customMedia,
24 | Object(object)['custom-media']
25 | );
26 |
27 | for (const key in customMedia) {
28 | customMedia[key] = getMediaAstFromMediaString(customMedia[key]);
29 | }
30 |
31 | return customMedia;
32 | }
33 |
34 | /* Get Custom Media from JSON file
35 | /* ========================================================================== */
36 |
37 | async function getCustomMediaFromJSONFile(from) {
38 | const object = await readJSON(from);
39 |
40 | return getCustomMediaFromObject(object);
41 | }
42 |
43 | /* Get Custom Media from JS file
44 | /* ========================================================================== */
45 |
46 | async function getCustomMediaFromJSFile(from) {
47 | const object = await import(from);
48 |
49 | return getCustomMediaFromObject(object);
50 | }
51 |
52 | /* Get Custom Media from Sources
53 | /* ========================================================================== */
54 |
55 | export default function getCustomMediaFromSources(sources) {
56 | return sources.map(source => {
57 | if (source instanceof Promise) {
58 | return source;
59 | } else if (source instanceof Function) {
60 | return source();
61 | }
62 |
63 | // read the source as an object
64 | const opts = source === Object(source) ? source : { from: String(source) };
65 |
66 | // skip objects with custom media
67 | if (Object(opts).customMedia || Object(opts)['custom-media']) {
68 | return opts
69 | }
70 |
71 | // source pathname
72 | const from = path.resolve(String(opts.from || ''));
73 |
74 | // type of file being read from
75 | const type = (opts.type || path.extname(from).slice(1)).toLowerCase();
76 |
77 | return { type, from };
78 | }).reduce(async (customMedia, source) => {
79 | const { type, from } = await source;
80 |
81 | if (type === 'css' || type === 'pcss') {
82 | return Object.assign(await customMedia, await getCustomMediaFromCSSFile(from));
83 | }
84 |
85 | if (type === 'js') {
86 | return Object.assign(await customMedia, await getCustomMediaFromJSFile(from));
87 | }
88 |
89 | if (type === 'json') {
90 | return Object.assign(await customMedia, await getCustomMediaFromJSONFile(from));
91 | }
92 |
93 | return Object.assign(await customMedia, getCustomMediaFromObject(await source));
94 | }, {});
95 | }
96 |
97 | /* Helper utilities
98 | /* ========================================================================== */
99 |
100 | const readFile = from => new Promise((resolve, reject) => {
101 | fs.readFile(from, 'utf8', (error, result) => {
102 | if (error) {
103 | reject(error);
104 | } else {
105 | resolve(result);
106 | }
107 | });
108 | });
109 |
110 | const readJSON = async from => JSON.parse(await readFile(from));
111 |
--------------------------------------------------------------------------------
/lib/media-ast-from-string.js:
--------------------------------------------------------------------------------
1 | function parse(string, splitByAnd) {
2 | const array = [];
3 | let buffer = '';
4 | let split = false;
5 | let func = 0;
6 | let i = -1;
7 |
8 | while (++i < string.length) {
9 | const char = string[i];
10 |
11 | if (char === '(') {
12 | func += 1;
13 | } else if (char === ')') {
14 | if (func > 0) {
15 | func -= 1;
16 | }
17 | } else if (func === 0) {
18 | if (splitByAnd && andRegExp.test(buffer + char)) {
19 | split = true;
20 | } else if (!splitByAnd && char === ',') {
21 | split = true;
22 | }
23 | }
24 |
25 | if (split) {
26 | array.push(splitByAnd ? new MediaExpression(buffer + char) : new MediaQuery(buffer));
27 |
28 | buffer = '';
29 | split = false;
30 | } else {
31 | buffer += char
32 | }
33 | }
34 |
35 | if (buffer !== '') {
36 | array.push(splitByAnd ? new MediaExpression(buffer) : new MediaQuery(buffer));
37 | }
38 |
39 | return array;
40 | }
41 |
42 | class MediaQueryList {
43 | constructor(string) {
44 | this.nodes = parse(string);
45 | }
46 |
47 | invert() {
48 | this.nodes.forEach(node => {
49 | node.invert();
50 | })
51 |
52 | return this;
53 | }
54 |
55 | clone() {
56 | return new MediaQueryList(String(this));
57 | }
58 |
59 | toString() {
60 | return this.nodes.join(',');
61 | }
62 | }
63 |
64 | class MediaQuery {
65 | constructor(string) {
66 | const [, before, media, after ] = string.match(spaceWrapRegExp);
67 | const [, modifier = '', afterModifier = ' ', type = '', beforeAnd = '', and = '', beforeExpression = '', expression1 = '', expression2 = ''] = media.match(mediaRegExp) || [];
68 | const raws = { before, after, afterModifier, originalModifier: modifier || '', beforeAnd, and, beforeExpression };
69 | const nodes = parse(expression1 || expression2, true);
70 |
71 | Object.assign(this, {
72 | modifier,
73 | type,
74 | raws,
75 | nodes
76 | });
77 | }
78 |
79 | clone(overrides) {
80 | const instance = new MediaQuery(String(this));
81 |
82 | Object.assign(instance, overrides);
83 |
84 | return instance;
85 | }
86 |
87 | invert() {
88 | this.modifier = this.modifier ? '' : this.raws.originalModifier;
89 |
90 | return this;
91 | }
92 |
93 | toString() {
94 | const { raws } = this;
95 |
96 | return `${raws.before}${this.modifier}${this.modifier ? `${raws.afterModifier}` : ''}${this.type}${raws.beforeAnd}${raws.and}${raws.beforeExpression}${this.nodes.join('')}${this.raws.after}`;
97 | }
98 | }
99 |
100 | class MediaExpression {
101 | constructor(string) {
102 | const [, value, after = '', and = '', afterAnd = '' ] = string.match(andRegExp) || [null, string];
103 | const raws = { after, and, afterAnd };
104 |
105 | Object.assign(this, { value, raws });
106 | }
107 |
108 | clone(overrides) {
109 | const instance = new MediaExpression(String(this));
110 |
111 | Object.assign(instance, overrides);
112 |
113 | return instance;
114 | }
115 |
116 | toString() {
117 | const { raws } = this;
118 |
119 | return `${this.value}${raws.after}${raws.and}${raws.afterAnd}`;
120 | }
121 | }
122 |
123 | const modifierRE = '(not|only)';
124 | const typeRE = '(all|print|screen|speech)';
125 | const noExpressionRE = '([\\W\\w]*)';
126 | const expressionRE = '([\\W\\w]+)';
127 | const noSpaceRE = '(\\s*)';
128 | const spaceRE = '(\\s+)';
129 | const andRE = '(?:(\\s+)(and))';
130 | const andRegExp = new RegExp(`^${expressionRE}(?:${andRE}${spaceRE})$`, 'i');
131 | const spaceWrapRegExp = new RegExp(`^${noSpaceRE}${noExpressionRE}${noSpaceRE}$`);
132 | const mediaRegExp = new RegExp(`^(?:${modifierRE}${spaceRE})?(?:${typeRE}(?:${andRE}${spaceRE}${expressionRE})?|${expressionRE})$`, 'i');
133 |
134 | export default string => new MediaQueryList(string);
135 |
--------------------------------------------------------------------------------
/lib/transform-atrules.js:
--------------------------------------------------------------------------------
1 | import transformMediaList from "./transform-media-list";
2 | import mediaASTFromString from "./media-ast-from-string";
3 |
4 | // transform custom pseudo selectors with custom selectors
5 | export default (atrule, { preserve }, { customMedia }) => {
6 | if (customPseudoRegExp.test(atrule.params)) {
7 | // prevent infinite loops when using 'preserve' option
8 | if (!atrule[visitedFlag]) {
9 | atrule[visitedFlag] = true;
10 |
11 | const mediaAST = mediaASTFromString(atrule.params);
12 | const params = String(transformMediaList(mediaAST, customMedia));
13 |
14 | if (preserve) {
15 | // keep an original copy
16 | const node = atrule.cloneAfter();
17 | node[visitedFlag] = true;
18 | }
19 | // replace the variable with the params from @custom-media rule
20 | // skip if the variable is undefined
21 | if (params != null) {
22 | atrule.params = params;
23 | }
24 | }
25 | }
26 | };
27 |
28 | const visitedFlag = Symbol("customMediaVisited");
29 | const customPseudoRegExp = /\(--[A-z][\w-]*\)/;
30 |
--------------------------------------------------------------------------------
/lib/transform-media-list.js:
--------------------------------------------------------------------------------
1 | // return transformed medias, replacing custom pseudo medias with custom medias
2 | export default function transformMediaList(mediaList, customMedias) {
3 | let index = mediaList.nodes.length - 1;
4 |
5 | while (index >= 0) {
6 | const transformedMedias = transformMedia(mediaList.nodes[index], customMedias);
7 |
8 | if (transformedMedias.length) {
9 | mediaList.nodes.splice(index, 1, ...transformedMedias);
10 | }
11 |
12 | --index;
13 | }
14 |
15 | return mediaList;
16 | }
17 |
18 | // return custom pseudo medias replaced with custom medias
19 | function transformMedia(media, customMedias) {
20 | const transpiledMedias = [];
21 |
22 | for (const index in media.nodes) {
23 | const { value, nodes } = media.nodes[index];
24 | const key = value.replace(customPseudoRegExp, '$1');
25 |
26 | if (key in customMedias) {
27 | for (const replacementMedia of customMedias[key].nodes) {
28 | // use the first available modifier unless they cancel each other out
29 | const modifier = media.modifier !== replacementMedia.modifier
30 | ? media.modifier || replacementMedia.modifier
31 | : '';
32 | const mediaClone = media.clone({
33 | modifier,
34 | // conditionally use the raws from the first available modifier
35 | raws: !modifier || media.modifier
36 | ? { ...media.raws }
37 | : { ...replacementMedia.raws },
38 | type: media.type || replacementMedia.type,
39 | });
40 |
41 | // conditionally include more replacement raws when the type is present
42 | if (mediaClone.type === replacementMedia.type) {
43 | Object.assign(mediaClone.raws, {
44 | and: replacementMedia.raws.and,
45 | beforeAnd: replacementMedia.raws.beforeAnd,
46 | beforeExpression: replacementMedia.raws.beforeExpression
47 | });
48 | }
49 |
50 | mediaClone.nodes.splice(index, 1, ...replacementMedia.clone().nodes.map(node => {
51 | // use raws and spacing from the current usage
52 | if (media.nodes[index].raws.and) {
53 | node.raws = { ...media.nodes[index].raws };
54 | }
55 |
56 | node.spaces = { ...media.nodes[index].spaces };
57 |
58 | return node;
59 | }));
60 |
61 | // remove the currently transformed key to prevent recursion
62 | const nextCustomMedia = getCustomMediasWithoutKey(customMedias, key);
63 | const retranspiledMedias = transformMedia(mediaClone, nextCustomMedia);
64 |
65 | if (retranspiledMedias.length) {
66 | transpiledMedias.push(...retranspiledMedias);
67 | } else {
68 | transpiledMedias.push(mediaClone);
69 | }
70 | }
71 |
72 | return transpiledMedias;
73 | } else if (nodes && nodes.length) {
74 | transformMediaList(media.nodes[index], customMedias);
75 | }
76 | }
77 |
78 | return transpiledMedias;
79 | }
80 |
81 | const customPseudoRegExp = /\((--[A-z][\w-]*)\)/;
82 |
83 | const getCustomMediasWithoutKey = (customMedias, key) => {
84 | const nextCustomMedias = Object.assign({}, customMedias);
85 |
86 | delete nextCustomMedias[key];
87 |
88 | return nextCustomMedias;
89 | };
90 |
--------------------------------------------------------------------------------
/lib/write-custom-media-to-exports.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs';
2 | import path from 'path';
3 |
4 | /* Write Custom Media from CSS File
5 | /* ========================================================================== */
6 |
7 | async function writeCustomMediaToCssFile(to, customMedia) {
8 | const cssContent = Object.keys(customMedia).reduce((cssLines, name) => {
9 | cssLines.push(`@custom-media ${name} ${customMedia[name]};`);
10 |
11 | return cssLines;
12 | }, []).join('\n');
13 | const css = `${cssContent}\n`;
14 |
15 | await writeFile(to, css);
16 | }
17 |
18 | /* Write Custom Media from JSON file
19 | /* ========================================================================== */
20 |
21 | async function writeCustomMediaToJsonFile(to, customMedia) {
22 | const jsonContent = JSON.stringify({
23 | 'custom-media': customMedia
24 | }, null, ' ');
25 | const json = `${jsonContent}\n`;
26 |
27 | await writeFile(to, json);
28 | }
29 |
30 | /* Write Custom Media from Common JS file
31 | /* ========================================================================== */
32 |
33 | async function writeCustomMediaToCjsFile(to, customMedia) {
34 | const jsContents = Object.keys(customMedia).reduce((jsLines, name) => {
35 | jsLines.push(`\t\t'${escapeForJS(name)}': '${escapeForJS(customMedia[name])}'`);
36 |
37 | return jsLines;
38 | }, []).join(',\n');
39 | const js = `module.exports = {\n\tcustomMedia: {\n${jsContents}\n\t}\n};\n`;
40 |
41 | await writeFile(to, js);
42 | }
43 |
44 | /* Write Custom Media from Module JS file
45 | /* ========================================================================== */
46 |
47 | async function writeCustomMediaToMjsFile(to, customMedia) {
48 | const mjsContents = Object.keys(customMedia).reduce((mjsLines, name) => {
49 | mjsLines.push(`\t'${escapeForJS(name)}': '${escapeForJS(customMedia[name])}'`);
50 |
51 | return mjsLines;
52 | }, []).join(',\n');
53 | const mjs = `export const customMedia = {\n${mjsContents}\n};\n`;
54 |
55 | await writeFile(to, mjs);
56 | }
57 |
58 | /* Write Custom Media to Exports
59 | /* ========================================================================== */
60 |
61 | export default function writeCustomMediaToExports(customMedia, destinations) {
62 | return Promise.all(destinations.map(async destination => {
63 | if (destination instanceof Function) {
64 | await destination(defaultCustomMediaToJSON(customMedia));
65 | } else {
66 | // read the destination as an object
67 | const opts = destination === Object(destination) ? destination : { to: String(destination) };
68 |
69 | // transformer for custom media into a JSON-compatible object
70 | const toJSON = opts.toJSON || defaultCustomMediaToJSON;
71 |
72 | if ('customMedia' in opts) {
73 | // write directly to an object as customMedia
74 | opts.customMedia = toJSON(customMedia);
75 | } else if ('custom-media' in opts) {
76 | // write directly to an object as custom-media
77 | opts['custom-media'] = toJSON(customMedia);
78 | } else {
79 | // destination pathname
80 | const to = String(opts.to || '');
81 |
82 | // type of file being written to
83 | const type = (opts.type || path.extname(to).slice(1)).toLowerCase();
84 |
85 | // transformed custom media
86 | const customMediaJSON = toJSON(customMedia);
87 |
88 | if (type === 'css') {
89 | await writeCustomMediaToCssFile(to, customMediaJSON);
90 | }
91 |
92 | if (type === 'js') {
93 | await writeCustomMediaToCjsFile(to, customMediaJSON);
94 | }
95 |
96 | if (type === 'json') {
97 | await writeCustomMediaToJsonFile(to, customMediaJSON);
98 | }
99 |
100 | if (type === 'mjs') {
101 | await writeCustomMediaToMjsFile(to, customMediaJSON);
102 | }
103 | }
104 | }
105 | }));
106 | }
107 |
108 | /* Helper utilities
109 | /* ========================================================================== */
110 |
111 | const defaultCustomMediaToJSON = customMedia => {
112 | return Object.keys(customMedia).reduce((customMediaJSON, key) => {
113 | customMediaJSON[key] = String(customMedia[key]);
114 |
115 | return customMediaJSON;
116 | }, {});
117 | };
118 |
119 | const writeFile = (to, text) => new Promise((resolve, reject) => {
120 | fs.writeFile(to, text, error => {
121 | if (error) {
122 | reject(error);
123 | } else {
124 | resolve();
125 | }
126 | });
127 | });
128 |
129 | const escapeForJS = string => string.replace(/\\([\s\S])|(')/g, '\\$1$2').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
130 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "postcss-custom-media",
3 | "version": "8.0.0",
4 | "description": "Use Custom Media Queries in CSS",
5 | "author": "Jonathan Neal ",
6 | "contributors": [
7 | "Maxime Thirouin"
8 | ],
9 | "license": "MIT",
10 | "repository": "postcss/postcss-custom-media",
11 | "homepage": "https://github.com/postcss/postcss-custom-media#readme",
12 | "bugs": "https://github.com/postcss/postcss-custom-media/issues",
13 | "main": "index.cjs.js",
14 | "module": "index.es.mjs",
15 | "files": [
16 | "index.cjs.js",
17 | "index.es.mjs"
18 | ],
19 | "scripts": {
20 | "prepublishOnly": "npm test",
21 | "pretest": "rollup -c .rollup.js --silent",
22 | "test": "echo 'Running tests...'; npm run test:js && npm run test:tape",
23 | "test:js": "eslint *.js lib/*.js --cache --ignore-path .gitignore --quiet",
24 | "test:tape": "postcss-tape"
25 | },
26 | "engines": {
27 | "node": ">=10.0.0"
28 | },
29 | "peerDependencies": {
30 | "postcss": "^8.1.0"
31 | },
32 | "devDependencies": {
33 | "@babel/core": "^7.11.6",
34 | "@babel/plugin-syntax-dynamic-import": "^7.8.3",
35 | "@babel/preset-env": "^7.11.5",
36 | "@rollup/plugin-babel": "^5.2.1",
37 | "babel-eslint": "^10.1.0",
38 | "eslint": "^7.10.0",
39 | "postcss": "^8.1.0",
40 | "postcss-tape": "^6.0.0",
41 | "pre-commit": "^1.2.2",
42 | "rollup": "^2.28.2"
43 | },
44 | "eslintConfig": {
45 | "env": {
46 | "browser": true,
47 | "es6": true,
48 | "node": true
49 | },
50 | "extends": "eslint:recommended",
51 | "parser": "babel-eslint",
52 | "parserOptions": {
53 | "ecmaVersion": 2018,
54 | "impliedStrict": true,
55 | "sourceType": "module"
56 | }
57 | },
58 | "keywords": [
59 | "postcss",
60 | "css",
61 | "postcss-plugin",
62 | "custom",
63 | "media",
64 | "query",
65 | "queries",
66 | "w3c",
67 | "csswg",
68 | "atrule",
69 | "at-rule",
70 | "specification"
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/test/basic.css:
--------------------------------------------------------------------------------
1 | @custom-media --mq-a (max-width: 30em), (max-height: 30em);
2 | @custom-media --mq-b screen and (max-width: 30em);
3 | @custom-media --not-mq-a not all and (--mq-a);
4 |
5 | @media (--mq-a) {
6 | body {
7 | order: 1;
8 | }
9 | }
10 |
11 | @media (--mq-b) {
12 | body {
13 | order: 1;
14 | }
15 | }
16 |
17 | @media (--mq-a), (--mq-a) {
18 | body {
19 | order: 1;
20 | }
21 | }
22 |
23 | @media not all and (--mq-a) {
24 | body {
25 | order: 2;
26 | }
27 | }
28 |
29 | @media (--not-mq-a) {
30 | body {
31 | order: 1;
32 | }
33 | }
34 |
35 | @media not all and (--not-mq-a) {
36 | body {
37 | order: 2;
38 | }
39 | }
40 |
41 | @custom-media --circular-mq-a (--circular-mq-b);
42 | @custom-media --circular-mq-b (--circular-mq-a);
43 |
44 | @media (--circular-mq-a) {
45 | body {
46 | order: 3;
47 | }
48 | }
49 |
50 | @media (--circular-mq-b) {
51 | body {
52 | order: 4;
53 | }
54 | }
55 |
56 | @media (--unresolved-mq) {
57 | body {
58 | order: 5;
59 | }
60 | }
61 |
62 | @custom-media --min (min-width: 320px);
63 | @custom-media --max (max-width: 640px);
64 |
65 | @media (--min) and (--max) {
66 | body {
67 | order: 6;
68 | }
69 | }
70 |
71 | @custom-media --concat (min-width: 320px) and (max-width: 640px);
72 |
73 | @media (--concat) {
74 | body {
75 | order: 7;
76 | }
77 | }
78 |
79 | @media (--concat) and (min-aspect-ratio: 16/9) {
80 | body {
81 | order: 8;
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/test/basic.expect.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 30em),(max-height: 30em) {
2 | body {
3 | order: 1;
4 | }
5 | }
6 |
7 | @media screen and (max-width: 30em) {
8 | body {
9 | order: 1;
10 | }
11 | }
12 |
13 | @media (max-width: 30em),(max-height: 30em), (max-width: 30em), (max-height: 30em) {
14 | body {
15 | order: 1;
16 | }
17 | }
18 |
19 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
20 | body {
21 | order: 2;
22 | }
23 | }
24 |
25 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
26 | body {
27 | order: 1;
28 | }
29 | }
30 |
31 | @media all and (max-width: 30em),all and (max-height: 30em) {
32 | body {
33 | order: 2;
34 | }
35 | }
36 |
37 | @media (--circular-mq-a) {
38 | body {
39 | order: 3;
40 | }
41 | }
42 |
43 | @media (--circular-mq-b) {
44 | body {
45 | order: 4;
46 | }
47 | }
48 |
49 | @media (--unresolved-mq) {
50 | body {
51 | order: 5;
52 | }
53 | }
54 |
55 | @media (min-width: 320px) and (max-width: 640px) {
56 | body {
57 | order: 6;
58 | }
59 | }
60 |
61 | @media (min-width: 320px) and (max-width: 640px) {
62 | body {
63 | order: 7;
64 | }
65 | }
66 |
67 | @media (min-width: 320px) and (max-width: 640px) and (min-aspect-ratio: 16/9) {
68 | body {
69 | order: 8;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/test/basic.import.expect.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/csstools/postcss-custom-media/a9a0ce03d75915c9dfff24becd698a9649a7bb93/test/basic.import.expect.css
--------------------------------------------------------------------------------
/test/basic.preserve.expect.css:
--------------------------------------------------------------------------------
1 | @custom-media --mq-a (max-width: 30em), (max-height: 30em);
2 | @custom-media --mq-b screen and (max-width: 30em);
3 | @custom-media --not-mq-a not all and (--mq-a);
4 |
5 | @media (max-width: 30em),(max-height: 30em) {
6 | body {
7 | order: 1;
8 | }
9 | }
10 |
11 | @media (--mq-a) {
12 | body {
13 | order: 1;
14 | }
15 | }
16 |
17 | @media screen and (max-width: 30em) {
18 | body {
19 | order: 1;
20 | }
21 | }
22 |
23 | @media (--mq-b) {
24 | body {
25 | order: 1;
26 | }
27 | }
28 |
29 | @media (max-width: 30em),(max-height: 30em), (max-width: 30em), (max-height: 30em) {
30 | body {
31 | order: 1;
32 | }
33 | }
34 |
35 | @media (--mq-a), (--mq-a) {
36 | body {
37 | order: 1;
38 | }
39 | }
40 |
41 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
42 | body {
43 | order: 2;
44 | }
45 | }
46 |
47 | @media not all and (--mq-a) {
48 | body {
49 | order: 2;
50 | }
51 | }
52 |
53 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
54 | body {
55 | order: 1;
56 | }
57 | }
58 |
59 | @media (--not-mq-a) {
60 | body {
61 | order: 1;
62 | }
63 | }
64 |
65 | @media all and (max-width: 30em),all and (max-height: 30em) {
66 | body {
67 | order: 2;
68 | }
69 | }
70 |
71 | @media not all and (--not-mq-a) {
72 | body {
73 | order: 2;
74 | }
75 | }
76 |
77 | @custom-media --circular-mq-a (--circular-mq-b);
78 | @custom-media --circular-mq-b (--circular-mq-a);
79 |
80 | @media (--circular-mq-a) {
81 | body {
82 | order: 3;
83 | }
84 | }
85 |
86 | @media (--circular-mq-a) {
87 | body {
88 | order: 3;
89 | }
90 | }
91 |
92 | @media (--circular-mq-b) {
93 | body {
94 | order: 4;
95 | }
96 | }
97 |
98 | @media (--circular-mq-b) {
99 | body {
100 | order: 4;
101 | }
102 | }
103 |
104 | @media (--unresolved-mq) {
105 | body {
106 | order: 5;
107 | }
108 | }
109 |
110 | @media (--unresolved-mq) {
111 | body {
112 | order: 5;
113 | }
114 | }
115 |
116 | @custom-media --min (min-width: 320px);
117 | @custom-media --max (max-width: 640px);
118 |
119 | @media (min-width: 320px) and (max-width: 640px) {
120 | body {
121 | order: 6;
122 | }
123 | }
124 |
125 | @media (--min) and (--max) {
126 | body {
127 | order: 6;
128 | }
129 | }
130 |
131 | @custom-media --concat (min-width: 320px) and (max-width: 640px);
132 |
133 | @media (min-width: 320px) and (max-width: 640px) {
134 | body {
135 | order: 7;
136 | }
137 | }
138 |
139 | @media (--concat) {
140 | body {
141 | order: 7;
142 | }
143 | }
144 |
145 | @media (min-width: 320px) and (max-width: 640px) and (min-aspect-ratio: 16/9) {
146 | body {
147 | order: 8;
148 | }
149 | }
150 |
151 | @media (--concat) and (min-aspect-ratio: 16/9) {
152 | body {
153 | order: 8;
154 | }
155 | }
156 |
--------------------------------------------------------------------------------
/test/export-media.css:
--------------------------------------------------------------------------------
1 | @custom-media --mq-a (max-width: 30em), (max-height: 30em);
2 | @custom-media --mq-b screen and (max-width: 30em);
3 | @custom-media --not-mq-a not all and (--mq-a);
4 | @custom-media --circular-mq-a (--circular-mq-b);
5 | @custom-media --circular-mq-b (--circular-mq-a);
6 | @custom-media --min (min-width: 320px);
7 | @custom-media --max (max-width: 640px);
8 | @custom-media --concat (min-width: 320px) and (max-width: 640px);
9 |
--------------------------------------------------------------------------------
/test/export-media.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | customMedia: {
3 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
4 | '--mq-b': 'screen and (max-width: 30em)',
5 | '--not-mq-a': 'not all and (--mq-a)',
6 | '--circular-mq-a': '(--circular-mq-b)',
7 | '--circular-mq-b': '(--circular-mq-a)',
8 | '--min': '(min-width: 320px)',
9 | '--max': '(max-width: 640px)',
10 | '--concat': '(min-width: 320px) and (max-width: 640px)'
11 | }
12 | };
13 |
--------------------------------------------------------------------------------
/test/export-media.json:
--------------------------------------------------------------------------------
1 | {
2 | "custom-media": {
3 | "--mq-a": "(max-width: 30em), (max-height: 30em)",
4 | "--mq-b": "screen and (max-width: 30em)",
5 | "--not-mq-a": "not all and (--mq-a)",
6 | "--circular-mq-a": "(--circular-mq-b)",
7 | "--circular-mq-b": "(--circular-mq-a)",
8 | "--min": "(min-width: 320px)",
9 | "--max": "(max-width: 640px)",
10 | "--concat": "(min-width: 320px) and (max-width: 640px)"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/test/export-media.mjs:
--------------------------------------------------------------------------------
1 | export const customMedia = {
2 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
3 | '--mq-b': 'screen and (max-width: 30em)',
4 | '--not-mq-a': 'not all and (--mq-a)',
5 | '--circular-mq-a': '(--circular-mq-b)',
6 | '--circular-mq-b': '(--circular-mq-a)',
7 | '--min': '(min-width: 320px)',
8 | '--max': '(max-width: 640px)',
9 | '--concat': '(min-width: 320px) and (max-width: 640px)'
10 | };
11 |
--------------------------------------------------------------------------------
/test/import-css.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/csstools/postcss-custom-media/a9a0ce03d75915c9dfff24becd698a9649a7bb93/test/import-css.css
--------------------------------------------------------------------------------
/test/import-media.css:
--------------------------------------------------------------------------------
1 | @custom-media --mq-a (max-width: 30em), (max-height: 30em);
2 | @custom-media --not-mq-a not all and (--mq-a);
3 |
--------------------------------------------------------------------------------
/test/import-media.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | customMedia: {
3 | '--mq-a': '(max-width: 30em), (max-height: 30em)',
4 | '--not-mq-a': 'not all and (--mq-a)'
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/import-media.json:
--------------------------------------------------------------------------------
1 | {
2 | "customMedia": {
3 | "--mq-a": "(max-width: 30em), (max-height: 30em)",
4 | "--not-mq-a": "not all and (--mq-a)"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/import.css:
--------------------------------------------------------------------------------
1 | @media (--mq-a) {
2 | body {
3 | order: 1;
4 | }
5 | }
6 |
7 | @media (--mq-a), (--mq-a) {
8 | body {
9 | order: 1;
10 | }
11 | }
12 |
13 | @media not all and (--mq-a) {
14 | body {
15 | order: 2;
16 | }
17 | }
18 |
19 | @media (--not-mq-a) {
20 | body {
21 | order: 1;
22 | }
23 | }
24 |
25 | @media not all and (--not-mq-a) {
26 | body {
27 | order: 2;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/test/import.empty.expect.css:
--------------------------------------------------------------------------------
1 | @media (--mq-a) {
2 | body {
3 | order: 1;
4 | }
5 | }
6 |
7 | @media (--mq-a), (--mq-a) {
8 | body {
9 | order: 1;
10 | }
11 | }
12 |
13 | @media not all and (--mq-a) {
14 | body {
15 | order: 2;
16 | }
17 | }
18 |
19 | @media (--not-mq-a) {
20 | body {
21 | order: 1;
22 | }
23 | }
24 |
25 | @media not all and (--not-mq-a) {
26 | body {
27 | order: 2;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/test/import.expect.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 30em),(max-height: 30em) {
2 | body {
3 | order: 1;
4 | }
5 | }
6 |
7 | @media (max-width: 30em),(max-height: 30em), (max-width: 30em), (max-height: 30em) {
8 | body {
9 | order: 1;
10 | }
11 | }
12 |
13 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
14 | body {
15 | order: 2;
16 | }
17 | }
18 |
19 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
20 | body {
21 | order: 1;
22 | }
23 | }
24 |
25 | @media all and (max-width: 30em),all and (max-height: 30em) {
26 | body {
27 | order: 2;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/test/import.plugin.expect.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 30em),(max-height: 30em) {
2 | body {
3 | order: 1;
4 | }
5 | }
6 |
7 | @media (max-width: 30em),(max-height: 30em), (max-width: 30em), (max-height: 30em) {
8 | body {
9 | order: 1;
10 | }
11 | }
12 |
13 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
14 | body {
15 | order: 2;
16 | }
17 | }
18 |
19 | @media not all and (max-width: 30em),not all and (max-height: 30em) {
20 | body {
21 | order: 1;
22 | }
23 | }
24 |
25 | @media all and (max-width: 30em),all and (max-height: 30em) {
26 | body {
27 | order: 2;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11":
6 | version "7.12.11"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7":
13 | version "7.12.7"
14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
15 | integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
16 |
17 | "@babel/core@^7.11.6":
18 | version "7.12.10"
19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
20 | integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
21 | dependencies:
22 | "@babel/code-frame" "^7.10.4"
23 | "@babel/generator" "^7.12.10"
24 | "@babel/helper-module-transforms" "^7.12.1"
25 | "@babel/helpers" "^7.12.5"
26 | "@babel/parser" "^7.12.10"
27 | "@babel/template" "^7.12.7"
28 | "@babel/traverse" "^7.12.10"
29 | "@babel/types" "^7.12.10"
30 | convert-source-map "^1.7.0"
31 | debug "^4.1.0"
32 | gensync "^1.0.0-beta.1"
33 | json5 "^2.1.2"
34 | lodash "^4.17.19"
35 | semver "^5.4.1"
36 | source-map "^0.5.0"
37 |
38 | "@babel/generator@^7.12.10", "@babel/generator@^7.12.11":
39 | version "7.12.11"
40 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
41 | integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
42 | dependencies:
43 | "@babel/types" "^7.12.11"
44 | jsesc "^2.5.1"
45 | source-map "^0.5.0"
46 |
47 | "@babel/helper-annotate-as-pure@^7.10.4":
48 | version "7.12.10"
49 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d"
50 | integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==
51 | dependencies:
52 | "@babel/types" "^7.12.10"
53 |
54 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
55 | version "7.10.4"
56 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
57 | integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==
58 | dependencies:
59 | "@babel/helper-explode-assignable-expression" "^7.10.4"
60 | "@babel/types" "^7.10.4"
61 |
62 | "@babel/helper-compilation-targets@^7.12.5":
63 | version "7.12.5"
64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831"
65 | integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==
66 | dependencies:
67 | "@babel/compat-data" "^7.12.5"
68 | "@babel/helper-validator-option" "^7.12.1"
69 | browserslist "^4.14.5"
70 | semver "^5.5.0"
71 |
72 | "@babel/helper-create-class-features-plugin@^7.12.1":
73 | version "7.12.1"
74 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e"
75 | integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==
76 | dependencies:
77 | "@babel/helper-function-name" "^7.10.4"
78 | "@babel/helper-member-expression-to-functions" "^7.12.1"
79 | "@babel/helper-optimise-call-expression" "^7.10.4"
80 | "@babel/helper-replace-supers" "^7.12.1"
81 | "@babel/helper-split-export-declaration" "^7.10.4"
82 |
83 | "@babel/helper-create-regexp-features-plugin@^7.12.1":
84 | version "7.12.7"
85 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f"
86 | integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==
87 | dependencies:
88 | "@babel/helper-annotate-as-pure" "^7.10.4"
89 | regexpu-core "^4.7.1"
90 |
91 | "@babel/helper-define-map@^7.10.4":
92 | version "7.10.5"
93 | resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
94 | integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==
95 | dependencies:
96 | "@babel/helper-function-name" "^7.10.4"
97 | "@babel/types" "^7.10.5"
98 | lodash "^4.17.19"
99 |
100 | "@babel/helper-explode-assignable-expression@^7.10.4":
101 | version "7.12.1"
102 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633"
103 | integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==
104 | dependencies:
105 | "@babel/types" "^7.12.1"
106 |
107 | "@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11":
108 | version "7.12.11"
109 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42"
110 | integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==
111 | dependencies:
112 | "@babel/helper-get-function-arity" "^7.12.10"
113 | "@babel/template" "^7.12.7"
114 | "@babel/types" "^7.12.11"
115 |
116 | "@babel/helper-get-function-arity@^7.12.10":
117 | version "7.12.10"
118 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
119 | integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==
120 | dependencies:
121 | "@babel/types" "^7.12.10"
122 |
123 | "@babel/helper-hoist-variables@^7.10.4":
124 | version "7.10.4"
125 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
126 | integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==
127 | dependencies:
128 | "@babel/types" "^7.10.4"
129 |
130 | "@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7":
131 | version "7.12.7"
132 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855"
133 | integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==
134 | dependencies:
135 | "@babel/types" "^7.12.7"
136 |
137 | "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
138 | version "7.12.5"
139 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
140 | integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
141 | dependencies:
142 | "@babel/types" "^7.12.5"
143 |
144 | "@babel/helper-module-transforms@^7.12.1":
145 | version "7.12.1"
146 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
147 | integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
148 | dependencies:
149 | "@babel/helper-module-imports" "^7.12.1"
150 | "@babel/helper-replace-supers" "^7.12.1"
151 | "@babel/helper-simple-access" "^7.12.1"
152 | "@babel/helper-split-export-declaration" "^7.11.0"
153 | "@babel/helper-validator-identifier" "^7.10.4"
154 | "@babel/template" "^7.10.4"
155 | "@babel/traverse" "^7.12.1"
156 | "@babel/types" "^7.12.1"
157 | lodash "^4.17.19"
158 |
159 | "@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10":
160 | version "7.12.10"
161 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d"
162 | integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==
163 | dependencies:
164 | "@babel/types" "^7.12.10"
165 |
166 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
167 | version "7.10.4"
168 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
169 | integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
170 |
171 | "@babel/helper-remap-async-to-generator@^7.12.1":
172 | version "7.12.1"
173 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd"
174 | integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==
175 | dependencies:
176 | "@babel/helper-annotate-as-pure" "^7.10.4"
177 | "@babel/helper-wrap-function" "^7.10.4"
178 | "@babel/types" "^7.12.1"
179 |
180 | "@babel/helper-replace-supers@^7.12.1":
181 | version "7.12.11"
182 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d"
183 | integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==
184 | dependencies:
185 | "@babel/helper-member-expression-to-functions" "^7.12.7"
186 | "@babel/helper-optimise-call-expression" "^7.12.10"
187 | "@babel/traverse" "^7.12.10"
188 | "@babel/types" "^7.12.11"
189 |
190 | "@babel/helper-simple-access@^7.12.1":
191 | version "7.12.1"
192 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
193 | integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==
194 | dependencies:
195 | "@babel/types" "^7.12.1"
196 |
197 | "@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
198 | version "7.12.1"
199 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
200 | integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
201 | dependencies:
202 | "@babel/types" "^7.12.1"
203 |
204 | "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11":
205 | version "7.12.11"
206 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a"
207 | integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==
208 | dependencies:
209 | "@babel/types" "^7.12.11"
210 |
211 | "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11":
212 | version "7.12.11"
213 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
214 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
215 |
216 | "@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11":
217 | version "7.12.11"
218 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f"
219 | integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==
220 |
221 | "@babel/helper-wrap-function@^7.10.4":
222 | version "7.12.3"
223 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9"
224 | integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==
225 | dependencies:
226 | "@babel/helper-function-name" "^7.10.4"
227 | "@babel/template" "^7.10.4"
228 | "@babel/traverse" "^7.10.4"
229 | "@babel/types" "^7.10.4"
230 |
231 | "@babel/helpers@^7.12.5":
232 | version "7.12.5"
233 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
234 | integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==
235 | dependencies:
236 | "@babel/template" "^7.10.4"
237 | "@babel/traverse" "^7.12.5"
238 | "@babel/types" "^7.12.5"
239 |
240 | "@babel/highlight@^7.10.4":
241 | version "7.10.4"
242 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
243 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
244 | dependencies:
245 | "@babel/helper-validator-identifier" "^7.10.4"
246 | chalk "^2.0.0"
247 | js-tokens "^4.0.0"
248 |
249 | "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0":
250 | version "7.12.11"
251 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
252 | integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
253 |
254 | "@babel/plugin-proposal-async-generator-functions@^7.12.1":
255 | version "7.12.12"
256 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566"
257 | integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==
258 | dependencies:
259 | "@babel/helper-plugin-utils" "^7.10.4"
260 | "@babel/helper-remap-async-to-generator" "^7.12.1"
261 | "@babel/plugin-syntax-async-generators" "^7.8.0"
262 |
263 | "@babel/plugin-proposal-class-properties@^7.12.1":
264 | version "7.12.1"
265 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
266 | integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==
267 | dependencies:
268 | "@babel/helper-create-class-features-plugin" "^7.12.1"
269 | "@babel/helper-plugin-utils" "^7.10.4"
270 |
271 | "@babel/plugin-proposal-dynamic-import@^7.12.1":
272 | version "7.12.1"
273 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc"
274 | integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==
275 | dependencies:
276 | "@babel/helper-plugin-utils" "^7.10.4"
277 | "@babel/plugin-syntax-dynamic-import" "^7.8.0"
278 |
279 | "@babel/plugin-proposal-export-namespace-from@^7.12.1":
280 | version "7.12.1"
281 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4"
282 | integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==
283 | dependencies:
284 | "@babel/helper-plugin-utils" "^7.10.4"
285 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
286 |
287 | "@babel/plugin-proposal-json-strings@^7.12.1":
288 | version "7.12.1"
289 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c"
290 | integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==
291 | dependencies:
292 | "@babel/helper-plugin-utils" "^7.10.4"
293 | "@babel/plugin-syntax-json-strings" "^7.8.0"
294 |
295 | "@babel/plugin-proposal-logical-assignment-operators@^7.12.1":
296 | version "7.12.1"
297 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751"
298 | integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==
299 | dependencies:
300 | "@babel/helper-plugin-utils" "^7.10.4"
301 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
302 |
303 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1":
304 | version "7.12.1"
305 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c"
306 | integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==
307 | dependencies:
308 | "@babel/helper-plugin-utils" "^7.10.4"
309 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
310 |
311 | "@babel/plugin-proposal-numeric-separator@^7.12.7":
312 | version "7.12.7"
313 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b"
314 | integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==
315 | dependencies:
316 | "@babel/helper-plugin-utils" "^7.10.4"
317 | "@babel/plugin-syntax-numeric-separator" "^7.10.4"
318 |
319 | "@babel/plugin-proposal-object-rest-spread@^7.12.1":
320 | version "7.12.1"
321 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069"
322 | integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
323 | dependencies:
324 | "@babel/helper-plugin-utils" "^7.10.4"
325 | "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
326 | "@babel/plugin-transform-parameters" "^7.12.1"
327 |
328 | "@babel/plugin-proposal-optional-catch-binding@^7.12.1":
329 | version "7.12.1"
330 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942"
331 | integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==
332 | dependencies:
333 | "@babel/helper-plugin-utils" "^7.10.4"
334 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
335 |
336 | "@babel/plugin-proposal-optional-chaining@^7.12.7":
337 | version "7.12.7"
338 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c"
339 | integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==
340 | dependencies:
341 | "@babel/helper-plugin-utils" "^7.10.4"
342 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
343 | "@babel/plugin-syntax-optional-chaining" "^7.8.0"
344 |
345 | "@babel/plugin-proposal-private-methods@^7.12.1":
346 | version "7.12.1"
347 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389"
348 | integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==
349 | dependencies:
350 | "@babel/helper-create-class-features-plugin" "^7.12.1"
351 | "@babel/helper-plugin-utils" "^7.10.4"
352 |
353 | "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
354 | version "7.12.1"
355 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072"
356 | integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==
357 | dependencies:
358 | "@babel/helper-create-regexp-features-plugin" "^7.12.1"
359 | "@babel/helper-plugin-utils" "^7.10.4"
360 |
361 | "@babel/plugin-syntax-async-generators@^7.8.0":
362 | version "7.8.4"
363 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
364 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
365 | dependencies:
366 | "@babel/helper-plugin-utils" "^7.8.0"
367 |
368 | "@babel/plugin-syntax-class-properties@^7.12.1":
369 | version "7.12.1"
370 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978"
371 | integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==
372 | dependencies:
373 | "@babel/helper-plugin-utils" "^7.10.4"
374 |
375 | "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
376 | version "7.8.3"
377 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
378 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
379 | dependencies:
380 | "@babel/helper-plugin-utils" "^7.8.0"
381 |
382 | "@babel/plugin-syntax-export-namespace-from@^7.8.3":
383 | version "7.8.3"
384 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
385 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
386 | dependencies:
387 | "@babel/helper-plugin-utils" "^7.8.3"
388 |
389 | "@babel/plugin-syntax-json-strings@^7.8.0":
390 | version "7.8.3"
391 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
392 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
393 | dependencies:
394 | "@babel/helper-plugin-utils" "^7.8.0"
395 |
396 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
397 | version "7.10.4"
398 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
399 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
400 | dependencies:
401 | "@babel/helper-plugin-utils" "^7.10.4"
402 |
403 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
404 | version "7.8.3"
405 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
406 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
407 | dependencies:
408 | "@babel/helper-plugin-utils" "^7.8.0"
409 |
410 | "@babel/plugin-syntax-numeric-separator@^7.10.4":
411 | version "7.10.4"
412 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
413 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
414 | dependencies:
415 | "@babel/helper-plugin-utils" "^7.10.4"
416 |
417 | "@babel/plugin-syntax-object-rest-spread@^7.8.0":
418 | version "7.8.3"
419 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
420 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
421 | dependencies:
422 | "@babel/helper-plugin-utils" "^7.8.0"
423 |
424 | "@babel/plugin-syntax-optional-catch-binding@^7.8.0":
425 | version "7.8.3"
426 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
427 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
428 | dependencies:
429 | "@babel/helper-plugin-utils" "^7.8.0"
430 |
431 | "@babel/plugin-syntax-optional-chaining@^7.8.0":
432 | version "7.8.3"
433 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
434 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
435 | dependencies:
436 | "@babel/helper-plugin-utils" "^7.8.0"
437 |
438 | "@babel/plugin-syntax-top-level-await@^7.12.1":
439 | version "7.12.1"
440 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0"
441 | integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==
442 | dependencies:
443 | "@babel/helper-plugin-utils" "^7.10.4"
444 |
445 | "@babel/plugin-transform-arrow-functions@^7.12.1":
446 | version "7.12.1"
447 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3"
448 | integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==
449 | dependencies:
450 | "@babel/helper-plugin-utils" "^7.10.4"
451 |
452 | "@babel/plugin-transform-async-to-generator@^7.12.1":
453 | version "7.12.1"
454 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1"
455 | integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==
456 | dependencies:
457 | "@babel/helper-module-imports" "^7.12.1"
458 | "@babel/helper-plugin-utils" "^7.10.4"
459 | "@babel/helper-remap-async-to-generator" "^7.12.1"
460 |
461 | "@babel/plugin-transform-block-scoped-functions@^7.12.1":
462 | version "7.12.1"
463 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9"
464 | integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==
465 | dependencies:
466 | "@babel/helper-plugin-utils" "^7.10.4"
467 |
468 | "@babel/plugin-transform-block-scoping@^7.12.11":
469 | version "7.12.12"
470 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca"
471 | integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==
472 | dependencies:
473 | "@babel/helper-plugin-utils" "^7.10.4"
474 |
475 | "@babel/plugin-transform-classes@^7.12.1":
476 | version "7.12.1"
477 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6"
478 | integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==
479 | dependencies:
480 | "@babel/helper-annotate-as-pure" "^7.10.4"
481 | "@babel/helper-define-map" "^7.10.4"
482 | "@babel/helper-function-name" "^7.10.4"
483 | "@babel/helper-optimise-call-expression" "^7.10.4"
484 | "@babel/helper-plugin-utils" "^7.10.4"
485 | "@babel/helper-replace-supers" "^7.12.1"
486 | "@babel/helper-split-export-declaration" "^7.10.4"
487 | globals "^11.1.0"
488 |
489 | "@babel/plugin-transform-computed-properties@^7.12.1":
490 | version "7.12.1"
491 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852"
492 | integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==
493 | dependencies:
494 | "@babel/helper-plugin-utils" "^7.10.4"
495 |
496 | "@babel/plugin-transform-destructuring@^7.12.1":
497 | version "7.12.1"
498 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847"
499 | integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==
500 | dependencies:
501 | "@babel/helper-plugin-utils" "^7.10.4"
502 |
503 | "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4":
504 | version "7.12.1"
505 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975"
506 | integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==
507 | dependencies:
508 | "@babel/helper-create-regexp-features-plugin" "^7.12.1"
509 | "@babel/helper-plugin-utils" "^7.10.4"
510 |
511 | "@babel/plugin-transform-duplicate-keys@^7.12.1":
512 | version "7.12.1"
513 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228"
514 | integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==
515 | dependencies:
516 | "@babel/helper-plugin-utils" "^7.10.4"
517 |
518 | "@babel/plugin-transform-exponentiation-operator@^7.12.1":
519 | version "7.12.1"
520 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0"
521 | integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==
522 | dependencies:
523 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
524 | "@babel/helper-plugin-utils" "^7.10.4"
525 |
526 | "@babel/plugin-transform-for-of@^7.12.1":
527 | version "7.12.1"
528 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa"
529 | integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==
530 | dependencies:
531 | "@babel/helper-plugin-utils" "^7.10.4"
532 |
533 | "@babel/plugin-transform-function-name@^7.12.1":
534 | version "7.12.1"
535 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667"
536 | integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==
537 | dependencies:
538 | "@babel/helper-function-name" "^7.10.4"
539 | "@babel/helper-plugin-utils" "^7.10.4"
540 |
541 | "@babel/plugin-transform-literals@^7.12.1":
542 | version "7.12.1"
543 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57"
544 | integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==
545 | dependencies:
546 | "@babel/helper-plugin-utils" "^7.10.4"
547 |
548 | "@babel/plugin-transform-member-expression-literals@^7.12.1":
549 | version "7.12.1"
550 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad"
551 | integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==
552 | dependencies:
553 | "@babel/helper-plugin-utils" "^7.10.4"
554 |
555 | "@babel/plugin-transform-modules-amd@^7.12.1":
556 | version "7.12.1"
557 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9"
558 | integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==
559 | dependencies:
560 | "@babel/helper-module-transforms" "^7.12.1"
561 | "@babel/helper-plugin-utils" "^7.10.4"
562 | babel-plugin-dynamic-import-node "^2.3.3"
563 |
564 | "@babel/plugin-transform-modules-commonjs@^7.12.1":
565 | version "7.12.1"
566 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648"
567 | integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==
568 | dependencies:
569 | "@babel/helper-module-transforms" "^7.12.1"
570 | "@babel/helper-plugin-utils" "^7.10.4"
571 | "@babel/helper-simple-access" "^7.12.1"
572 | babel-plugin-dynamic-import-node "^2.3.3"
573 |
574 | "@babel/plugin-transform-modules-systemjs@^7.12.1":
575 | version "7.12.1"
576 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086"
577 | integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==
578 | dependencies:
579 | "@babel/helper-hoist-variables" "^7.10.4"
580 | "@babel/helper-module-transforms" "^7.12.1"
581 | "@babel/helper-plugin-utils" "^7.10.4"
582 | "@babel/helper-validator-identifier" "^7.10.4"
583 | babel-plugin-dynamic-import-node "^2.3.3"
584 |
585 | "@babel/plugin-transform-modules-umd@^7.12.1":
586 | version "7.12.1"
587 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902"
588 | integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==
589 | dependencies:
590 | "@babel/helper-module-transforms" "^7.12.1"
591 | "@babel/helper-plugin-utils" "^7.10.4"
592 |
593 | "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1":
594 | version "7.12.1"
595 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753"
596 | integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==
597 | dependencies:
598 | "@babel/helper-create-regexp-features-plugin" "^7.12.1"
599 |
600 | "@babel/plugin-transform-new-target@^7.12.1":
601 | version "7.12.1"
602 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0"
603 | integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==
604 | dependencies:
605 | "@babel/helper-plugin-utils" "^7.10.4"
606 |
607 | "@babel/plugin-transform-object-super@^7.12.1":
608 | version "7.12.1"
609 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e"
610 | integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==
611 | dependencies:
612 | "@babel/helper-plugin-utils" "^7.10.4"
613 | "@babel/helper-replace-supers" "^7.12.1"
614 |
615 | "@babel/plugin-transform-parameters@^7.12.1":
616 | version "7.12.1"
617 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d"
618 | integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==
619 | dependencies:
620 | "@babel/helper-plugin-utils" "^7.10.4"
621 |
622 | "@babel/plugin-transform-property-literals@^7.12.1":
623 | version "7.12.1"
624 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd"
625 | integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==
626 | dependencies:
627 | "@babel/helper-plugin-utils" "^7.10.4"
628 |
629 | "@babel/plugin-transform-regenerator@^7.12.1":
630 | version "7.12.1"
631 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753"
632 | integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==
633 | dependencies:
634 | regenerator-transform "^0.14.2"
635 |
636 | "@babel/plugin-transform-reserved-words@^7.12.1":
637 | version "7.12.1"
638 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8"
639 | integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==
640 | dependencies:
641 | "@babel/helper-plugin-utils" "^7.10.4"
642 |
643 | "@babel/plugin-transform-shorthand-properties@^7.12.1":
644 | version "7.12.1"
645 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3"
646 | integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==
647 | dependencies:
648 | "@babel/helper-plugin-utils" "^7.10.4"
649 |
650 | "@babel/plugin-transform-spread@^7.12.1":
651 | version "7.12.1"
652 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e"
653 | integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==
654 | dependencies:
655 | "@babel/helper-plugin-utils" "^7.10.4"
656 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
657 |
658 | "@babel/plugin-transform-sticky-regex@^7.12.7":
659 | version "7.12.7"
660 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad"
661 | integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==
662 | dependencies:
663 | "@babel/helper-plugin-utils" "^7.10.4"
664 |
665 | "@babel/plugin-transform-template-literals@^7.12.1":
666 | version "7.12.1"
667 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843"
668 | integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==
669 | dependencies:
670 | "@babel/helper-plugin-utils" "^7.10.4"
671 |
672 | "@babel/plugin-transform-typeof-symbol@^7.12.10":
673 | version "7.12.10"
674 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b"
675 | integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==
676 | dependencies:
677 | "@babel/helper-plugin-utils" "^7.10.4"
678 |
679 | "@babel/plugin-transform-unicode-escapes@^7.12.1":
680 | version "7.12.1"
681 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709"
682 | integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==
683 | dependencies:
684 | "@babel/helper-plugin-utils" "^7.10.4"
685 |
686 | "@babel/plugin-transform-unicode-regex@^7.12.1":
687 | version "7.12.1"
688 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb"
689 | integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==
690 | dependencies:
691 | "@babel/helper-create-regexp-features-plugin" "^7.12.1"
692 | "@babel/helper-plugin-utils" "^7.10.4"
693 |
694 | "@babel/preset-env@^7.11.5":
695 | version "7.12.11"
696 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9"
697 | integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==
698 | dependencies:
699 | "@babel/compat-data" "^7.12.7"
700 | "@babel/helper-compilation-targets" "^7.12.5"
701 | "@babel/helper-module-imports" "^7.12.5"
702 | "@babel/helper-plugin-utils" "^7.10.4"
703 | "@babel/helper-validator-option" "^7.12.11"
704 | "@babel/plugin-proposal-async-generator-functions" "^7.12.1"
705 | "@babel/plugin-proposal-class-properties" "^7.12.1"
706 | "@babel/plugin-proposal-dynamic-import" "^7.12.1"
707 | "@babel/plugin-proposal-export-namespace-from" "^7.12.1"
708 | "@babel/plugin-proposal-json-strings" "^7.12.1"
709 | "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1"
710 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1"
711 | "@babel/plugin-proposal-numeric-separator" "^7.12.7"
712 | "@babel/plugin-proposal-object-rest-spread" "^7.12.1"
713 | "@babel/plugin-proposal-optional-catch-binding" "^7.12.1"
714 | "@babel/plugin-proposal-optional-chaining" "^7.12.7"
715 | "@babel/plugin-proposal-private-methods" "^7.12.1"
716 | "@babel/plugin-proposal-unicode-property-regex" "^7.12.1"
717 | "@babel/plugin-syntax-async-generators" "^7.8.0"
718 | "@babel/plugin-syntax-class-properties" "^7.12.1"
719 | "@babel/plugin-syntax-dynamic-import" "^7.8.0"
720 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
721 | "@babel/plugin-syntax-json-strings" "^7.8.0"
722 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
723 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
724 | "@babel/plugin-syntax-numeric-separator" "^7.10.4"
725 | "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
726 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
727 | "@babel/plugin-syntax-optional-chaining" "^7.8.0"
728 | "@babel/plugin-syntax-top-level-await" "^7.12.1"
729 | "@babel/plugin-transform-arrow-functions" "^7.12.1"
730 | "@babel/plugin-transform-async-to-generator" "^7.12.1"
731 | "@babel/plugin-transform-block-scoped-functions" "^7.12.1"
732 | "@babel/plugin-transform-block-scoping" "^7.12.11"
733 | "@babel/plugin-transform-classes" "^7.12.1"
734 | "@babel/plugin-transform-computed-properties" "^7.12.1"
735 | "@babel/plugin-transform-destructuring" "^7.12.1"
736 | "@babel/plugin-transform-dotall-regex" "^7.12.1"
737 | "@babel/plugin-transform-duplicate-keys" "^7.12.1"
738 | "@babel/plugin-transform-exponentiation-operator" "^7.12.1"
739 | "@babel/plugin-transform-for-of" "^7.12.1"
740 | "@babel/plugin-transform-function-name" "^7.12.1"
741 | "@babel/plugin-transform-literals" "^7.12.1"
742 | "@babel/plugin-transform-member-expression-literals" "^7.12.1"
743 | "@babel/plugin-transform-modules-amd" "^7.12.1"
744 | "@babel/plugin-transform-modules-commonjs" "^7.12.1"
745 | "@babel/plugin-transform-modules-systemjs" "^7.12.1"
746 | "@babel/plugin-transform-modules-umd" "^7.12.1"
747 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1"
748 | "@babel/plugin-transform-new-target" "^7.12.1"
749 | "@babel/plugin-transform-object-super" "^7.12.1"
750 | "@babel/plugin-transform-parameters" "^7.12.1"
751 | "@babel/plugin-transform-property-literals" "^7.12.1"
752 | "@babel/plugin-transform-regenerator" "^7.12.1"
753 | "@babel/plugin-transform-reserved-words" "^7.12.1"
754 | "@babel/plugin-transform-shorthand-properties" "^7.12.1"
755 | "@babel/plugin-transform-spread" "^7.12.1"
756 | "@babel/plugin-transform-sticky-regex" "^7.12.7"
757 | "@babel/plugin-transform-template-literals" "^7.12.1"
758 | "@babel/plugin-transform-typeof-symbol" "^7.12.10"
759 | "@babel/plugin-transform-unicode-escapes" "^7.12.1"
760 | "@babel/plugin-transform-unicode-regex" "^7.12.1"
761 | "@babel/preset-modules" "^0.1.3"
762 | "@babel/types" "^7.12.11"
763 | core-js-compat "^3.8.0"
764 | semver "^5.5.0"
765 |
766 | "@babel/preset-modules@^0.1.3":
767 | version "0.1.4"
768 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
769 | integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
770 | dependencies:
771 | "@babel/helper-plugin-utils" "^7.0.0"
772 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
773 | "@babel/plugin-transform-dotall-regex" "^7.4.4"
774 | "@babel/types" "^7.4.4"
775 | esutils "^2.0.2"
776 |
777 | "@babel/runtime@^7.8.4":
778 | version "7.12.5"
779 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
780 | integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
781 | dependencies:
782 | regenerator-runtime "^0.13.4"
783 |
784 | "@babel/template@^7.10.4", "@babel/template@^7.12.7":
785 | version "7.12.7"
786 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
787 | integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
788 | dependencies:
789 | "@babel/code-frame" "^7.10.4"
790 | "@babel/parser" "^7.12.7"
791 | "@babel/types" "^7.12.7"
792 |
793 | "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.7.0":
794 | version "7.12.12"
795 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
796 | integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==
797 | dependencies:
798 | "@babel/code-frame" "^7.12.11"
799 | "@babel/generator" "^7.12.11"
800 | "@babel/helper-function-name" "^7.12.11"
801 | "@babel/helper-split-export-declaration" "^7.12.11"
802 | "@babel/parser" "^7.12.11"
803 | "@babel/types" "^7.12.12"
804 | debug "^4.1.0"
805 | globals "^11.1.0"
806 | lodash "^4.17.19"
807 |
808 | "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
809 | version "7.12.12"
810 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
811 | integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
812 | dependencies:
813 | "@babel/helper-validator-identifier" "^7.12.11"
814 | lodash "^4.17.19"
815 | to-fast-properties "^2.0.0"
816 |
817 | "@eslint/eslintrc@^0.2.2":
818 | version "0.2.2"
819 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
820 | integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==
821 | dependencies:
822 | ajv "^6.12.4"
823 | debug "^4.1.1"
824 | espree "^7.3.0"
825 | globals "^12.1.0"
826 | ignore "^4.0.6"
827 | import-fresh "^3.2.1"
828 | js-yaml "^3.13.1"
829 | lodash "^4.17.19"
830 | minimatch "^3.0.4"
831 | strip-json-comments "^3.1.1"
832 |
833 | "@rollup/plugin-babel@^5.2.1":
834 | version "5.2.2"
835 | resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz#e5623a01dd8e37e004ba87f2de218c611727d9b2"
836 | integrity sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA==
837 | dependencies:
838 | "@babel/helper-module-imports" "^7.10.4"
839 | "@rollup/pluginutils" "^3.1.0"
840 |
841 | "@rollup/pluginutils@^3.1.0":
842 | version "3.1.0"
843 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
844 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
845 | dependencies:
846 | "@types/estree" "0.0.39"
847 | estree-walker "^1.0.1"
848 | picomatch "^2.2.2"
849 |
850 | "@types/estree@0.0.39":
851 | version "0.0.39"
852 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
853 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
854 |
855 | acorn-jsx@^5.3.1:
856 | version "5.3.1"
857 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
858 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
859 |
860 | acorn@^7.4.0:
861 | version "7.4.1"
862 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
863 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
864 |
865 | ajv@^6.10.0, ajv@^6.12.4:
866 | version "6.12.6"
867 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
868 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
869 | dependencies:
870 | fast-deep-equal "^3.1.1"
871 | fast-json-stable-stringify "^2.0.0"
872 | json-schema-traverse "^0.4.1"
873 | uri-js "^4.2.2"
874 |
875 | ajv@^7.0.2:
876 | version "7.0.3"
877 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2"
878 | integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==
879 | dependencies:
880 | fast-deep-equal "^3.1.1"
881 | json-schema-traverse "^1.0.0"
882 | require-from-string "^2.0.2"
883 | uri-js "^4.2.2"
884 |
885 | ansi-colors@^4.1.1:
886 | version "4.1.1"
887 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
888 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
889 |
890 | ansi-regex@^5.0.0:
891 | version "5.0.0"
892 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
893 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
894 |
895 | ansi-styles@^3.2.1:
896 | version "3.2.1"
897 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
898 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
899 | dependencies:
900 | color-convert "^1.9.0"
901 |
902 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
903 | version "4.3.0"
904 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
905 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
906 | dependencies:
907 | color-convert "^2.0.1"
908 |
909 | argparse@^1.0.7:
910 | version "1.0.10"
911 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
912 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
913 | dependencies:
914 | sprintf-js "~1.0.2"
915 |
916 | astral-regex@^2.0.0:
917 | version "2.0.0"
918 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
919 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
920 |
921 | babel-eslint@^10.1.0:
922 | version "10.1.0"
923 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
924 | integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
925 | dependencies:
926 | "@babel/code-frame" "^7.0.0"
927 | "@babel/parser" "^7.7.0"
928 | "@babel/traverse" "^7.7.0"
929 | "@babel/types" "^7.7.0"
930 | eslint-visitor-keys "^1.0.0"
931 | resolve "^1.12.0"
932 |
933 | babel-plugin-dynamic-import-node@^2.3.3:
934 | version "2.3.3"
935 | resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
936 | integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
937 | dependencies:
938 | object.assign "^4.1.0"
939 |
940 | balanced-match@^1.0.0:
941 | version "1.0.0"
942 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
943 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
944 |
945 | brace-expansion@^1.1.7:
946 | version "1.1.11"
947 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
948 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
949 | dependencies:
950 | balanced-match "^1.0.0"
951 | concat-map "0.0.1"
952 |
953 | browserslist@^4.14.5, browserslist@^4.16.0:
954 | version "4.16.1"
955 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766"
956 | integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==
957 | dependencies:
958 | caniuse-lite "^1.0.30001173"
959 | colorette "^1.2.1"
960 | electron-to-chromium "^1.3.634"
961 | escalade "^3.1.1"
962 | node-releases "^1.1.69"
963 |
964 | buffer-from@^1.0.0:
965 | version "1.1.1"
966 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
967 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
968 |
969 | call-bind@^1.0.0:
970 | version "1.0.2"
971 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
972 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
973 | dependencies:
974 | function-bind "^1.1.1"
975 | get-intrinsic "^1.0.2"
976 |
977 | callsites@^3.0.0:
978 | version "3.1.0"
979 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
980 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
981 |
982 | caniuse-lite@^1.0.30001173:
983 | version "1.0.30001174"
984 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz#0f2aca2153fd88ceb07a2bb982fc2acb787623c4"
985 | integrity sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==
986 |
987 | chalk@^2.0.0:
988 | version "2.4.2"
989 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
990 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
991 | dependencies:
992 | ansi-styles "^3.2.1"
993 | escape-string-regexp "^1.0.5"
994 | supports-color "^5.3.0"
995 |
996 | chalk@^4.0.0:
997 | version "4.1.0"
998 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
999 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
1000 | dependencies:
1001 | ansi-styles "^4.1.0"
1002 | supports-color "^7.1.0"
1003 |
1004 | color-convert@^1.9.0:
1005 | version "1.9.3"
1006 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1007 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1008 | dependencies:
1009 | color-name "1.1.3"
1010 |
1011 | color-convert@^2.0.1:
1012 | version "2.0.1"
1013 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1014 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1015 | dependencies:
1016 | color-name "~1.1.4"
1017 |
1018 | color-name@1.1.3:
1019 | version "1.1.3"
1020 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1021 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
1022 |
1023 | color-name@~1.1.4:
1024 | version "1.1.4"
1025 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1026 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1027 |
1028 | colorette@^1.2.1:
1029 | version "1.2.1"
1030 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
1031 | integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
1032 |
1033 | concat-map@0.0.1:
1034 | version "0.0.1"
1035 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1036 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
1037 |
1038 | concat-stream@^1.4.7:
1039 | version "1.6.2"
1040 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
1041 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
1042 | dependencies:
1043 | buffer-from "^1.0.0"
1044 | inherits "^2.0.3"
1045 | readable-stream "^2.2.2"
1046 | typedarray "^0.0.6"
1047 |
1048 | convert-source-map@^1.7.0:
1049 | version "1.7.0"
1050 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
1051 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
1052 | dependencies:
1053 | safe-buffer "~5.1.1"
1054 |
1055 | core-js-compat@^3.8.0:
1056 | version "3.8.2"
1057 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c"
1058 | integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==
1059 | dependencies:
1060 | browserslist "^4.16.0"
1061 | semver "7.0.0"
1062 |
1063 | core-util-is@~1.0.0:
1064 | version "1.0.2"
1065 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
1066 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
1067 |
1068 | cross-spawn@^5.0.1:
1069 | version "5.1.0"
1070 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
1071 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
1072 | dependencies:
1073 | lru-cache "^4.0.1"
1074 | shebang-command "^1.2.0"
1075 | which "^1.2.9"
1076 |
1077 | cross-spawn@^7.0.2:
1078 | version "7.0.3"
1079 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1080 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1081 | dependencies:
1082 | path-key "^3.1.0"
1083 | shebang-command "^2.0.0"
1084 | which "^2.0.1"
1085 |
1086 | debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
1087 | version "4.3.1"
1088 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
1089 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
1090 | dependencies:
1091 | ms "2.1.2"
1092 |
1093 | deep-is@^0.1.3:
1094 | version "0.1.3"
1095 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1096 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
1097 |
1098 | define-properties@^1.1.3:
1099 | version "1.1.3"
1100 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
1101 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
1102 | dependencies:
1103 | object-keys "^1.0.12"
1104 |
1105 | doctrine@^3.0.0:
1106 | version "3.0.0"
1107 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
1108 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
1109 | dependencies:
1110 | esutils "^2.0.2"
1111 |
1112 | electron-to-chromium@^1.3.634:
1113 | version "1.3.636"
1114 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz#6980bd90813a9fb744e43f5e848f16cea4930058"
1115 | integrity sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==
1116 |
1117 | emoji-regex@^8.0.0:
1118 | version "8.0.0"
1119 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
1120 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
1121 |
1122 | enquirer@^2.3.5:
1123 | version "2.3.6"
1124 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
1125 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
1126 | dependencies:
1127 | ansi-colors "^4.1.1"
1128 |
1129 | escalade@^3.1.1:
1130 | version "3.1.1"
1131 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
1132 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
1133 |
1134 | escape-string-regexp@^1.0.5:
1135 | version "1.0.5"
1136 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1137 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1138 |
1139 | eslint-scope@^5.1.1:
1140 | version "5.1.1"
1141 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
1142 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
1143 | dependencies:
1144 | esrecurse "^4.3.0"
1145 | estraverse "^4.1.1"
1146 |
1147 | eslint-utils@^2.1.0:
1148 | version "2.1.0"
1149 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
1150 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
1151 | dependencies:
1152 | eslint-visitor-keys "^1.1.0"
1153 |
1154 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
1155 | version "1.3.0"
1156 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
1157 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
1158 |
1159 | eslint-visitor-keys@^2.0.0:
1160 | version "2.0.0"
1161 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
1162 | integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
1163 |
1164 | eslint@^7.10.0:
1165 | version "7.17.0"
1166 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0"
1167 | integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==
1168 | dependencies:
1169 | "@babel/code-frame" "^7.0.0"
1170 | "@eslint/eslintrc" "^0.2.2"
1171 | ajv "^6.10.0"
1172 | chalk "^4.0.0"
1173 | cross-spawn "^7.0.2"
1174 | debug "^4.0.1"
1175 | doctrine "^3.0.0"
1176 | enquirer "^2.3.5"
1177 | eslint-scope "^5.1.1"
1178 | eslint-utils "^2.1.0"
1179 | eslint-visitor-keys "^2.0.0"
1180 | espree "^7.3.1"
1181 | esquery "^1.2.0"
1182 | esutils "^2.0.2"
1183 | file-entry-cache "^6.0.0"
1184 | functional-red-black-tree "^1.0.1"
1185 | glob-parent "^5.0.0"
1186 | globals "^12.1.0"
1187 | ignore "^4.0.6"
1188 | import-fresh "^3.0.0"
1189 | imurmurhash "^0.1.4"
1190 | is-glob "^4.0.0"
1191 | js-yaml "^3.13.1"
1192 | json-stable-stringify-without-jsonify "^1.0.1"
1193 | levn "^0.4.1"
1194 | lodash "^4.17.19"
1195 | minimatch "^3.0.4"
1196 | natural-compare "^1.4.0"
1197 | optionator "^0.9.1"
1198 | progress "^2.0.0"
1199 | regexpp "^3.1.0"
1200 | semver "^7.2.1"
1201 | strip-ansi "^6.0.0"
1202 | strip-json-comments "^3.1.0"
1203 | table "^6.0.4"
1204 | text-table "^0.2.0"
1205 | v8-compile-cache "^2.0.3"
1206 |
1207 | espree@^7.3.0, espree@^7.3.1:
1208 | version "7.3.1"
1209 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
1210 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
1211 | dependencies:
1212 | acorn "^7.4.0"
1213 | acorn-jsx "^5.3.1"
1214 | eslint-visitor-keys "^1.3.0"
1215 |
1216 | esprima@^4.0.0:
1217 | version "4.0.1"
1218 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
1219 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
1220 |
1221 | esquery@^1.2.0:
1222 | version "1.3.1"
1223 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
1224 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
1225 | dependencies:
1226 | estraverse "^5.1.0"
1227 |
1228 | esrecurse@^4.3.0:
1229 | version "4.3.0"
1230 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1231 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1232 | dependencies:
1233 | estraverse "^5.2.0"
1234 |
1235 | estraverse@^4.1.1:
1236 | version "4.3.0"
1237 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
1238 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
1239 |
1240 | estraverse@^5.1.0, estraverse@^5.2.0:
1241 | version "5.2.0"
1242 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
1243 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
1244 |
1245 | estree-walker@^1.0.1:
1246 | version "1.0.1"
1247 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
1248 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
1249 |
1250 | esutils@^2.0.2:
1251 | version "2.0.3"
1252 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1253 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1254 |
1255 | fast-deep-equal@^3.1.1:
1256 | version "3.1.3"
1257 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1258 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1259 |
1260 | fast-json-stable-stringify@^2.0.0:
1261 | version "2.1.0"
1262 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1263 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1264 |
1265 | fast-levenshtein@^2.0.6:
1266 | version "2.0.6"
1267 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1268 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
1269 |
1270 | file-entry-cache@^6.0.0:
1271 | version "6.0.0"
1272 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
1273 | integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==
1274 | dependencies:
1275 | flat-cache "^3.0.4"
1276 |
1277 | flat-cache@^3.0.4:
1278 | version "3.0.4"
1279 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
1280 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
1281 | dependencies:
1282 | flatted "^3.1.0"
1283 | rimraf "^3.0.2"
1284 |
1285 | flatted@^3.1.0:
1286 | version "3.1.0"
1287 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
1288 | integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
1289 |
1290 | fs.realpath@^1.0.0:
1291 | version "1.0.0"
1292 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1293 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1294 |
1295 | fsevents@~2.1.2:
1296 | version "2.1.3"
1297 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
1298 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
1299 |
1300 | function-bind@^1.1.1:
1301 | version "1.1.1"
1302 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1303 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1304 |
1305 | functional-red-black-tree@^1.0.1:
1306 | version "1.0.1"
1307 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
1308 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
1309 |
1310 | gensync@^1.0.0-beta.1:
1311 | version "1.0.0-beta.2"
1312 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1313 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1314 |
1315 | get-intrinsic@^1.0.2:
1316 | version "1.0.2"
1317 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49"
1318 | integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==
1319 | dependencies:
1320 | function-bind "^1.1.1"
1321 | has "^1.0.3"
1322 | has-symbols "^1.0.1"
1323 |
1324 | glob-parent@^5.0.0:
1325 | version "5.1.1"
1326 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
1327 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
1328 | dependencies:
1329 | is-glob "^4.0.1"
1330 |
1331 | glob@^7.1.3:
1332 | version "7.1.6"
1333 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
1334 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
1335 | dependencies:
1336 | fs.realpath "^1.0.0"
1337 | inflight "^1.0.4"
1338 | inherits "2"
1339 | minimatch "^3.0.4"
1340 | once "^1.3.0"
1341 | path-is-absolute "^1.0.0"
1342 |
1343 | globals@^11.1.0:
1344 | version "11.12.0"
1345 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1346 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1347 |
1348 | globals@^12.1.0:
1349 | version "12.4.0"
1350 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
1351 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
1352 | dependencies:
1353 | type-fest "^0.8.1"
1354 |
1355 | has-flag@^3.0.0:
1356 | version "3.0.0"
1357 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1358 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1359 |
1360 | has-flag@^4.0.0:
1361 | version "4.0.0"
1362 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1363 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1364 |
1365 | has-symbols@^1.0.1:
1366 | version "1.0.1"
1367 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
1368 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
1369 |
1370 | has@^1.0.3:
1371 | version "1.0.3"
1372 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1373 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1374 | dependencies:
1375 | function-bind "^1.1.1"
1376 |
1377 | ignore@^4.0.6:
1378 | version "4.0.6"
1379 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
1380 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
1381 |
1382 | import-fresh@^3.0.0, import-fresh@^3.2.1:
1383 | version "3.3.0"
1384 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1385 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1386 | dependencies:
1387 | parent-module "^1.0.0"
1388 | resolve-from "^4.0.0"
1389 |
1390 | imurmurhash@^0.1.4:
1391 | version "0.1.4"
1392 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1393 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1394 |
1395 | inflight@^1.0.4:
1396 | version "1.0.6"
1397 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1398 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1399 | dependencies:
1400 | once "^1.3.0"
1401 | wrappy "1"
1402 |
1403 | inherits@2, inherits@^2.0.3, inherits@~2.0.3:
1404 | version "2.0.4"
1405 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1406 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1407 |
1408 | is-core-module@^2.1.0:
1409 | version "2.2.0"
1410 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
1411 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
1412 | dependencies:
1413 | has "^1.0.3"
1414 |
1415 | is-extglob@^2.1.1:
1416 | version "2.1.1"
1417 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1418 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
1419 |
1420 | is-fullwidth-code-point@^3.0.0:
1421 | version "3.0.0"
1422 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1423 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1424 |
1425 | is-glob@^4.0.0, is-glob@^4.0.1:
1426 | version "4.0.1"
1427 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
1428 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
1429 | dependencies:
1430 | is-extglob "^2.1.1"
1431 |
1432 | isarray@~1.0.0:
1433 | version "1.0.0"
1434 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1435 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1436 |
1437 | isexe@^2.0.0:
1438 | version "2.0.0"
1439 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1440 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1441 |
1442 | js-tokens@^4.0.0:
1443 | version "4.0.0"
1444 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1445 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1446 |
1447 | js-yaml@^3.13.1:
1448 | version "3.14.1"
1449 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
1450 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
1451 | dependencies:
1452 | argparse "^1.0.7"
1453 | esprima "^4.0.0"
1454 |
1455 | jsesc@^2.5.1:
1456 | version "2.5.2"
1457 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1458 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1459 |
1460 | jsesc@~0.5.0:
1461 | version "0.5.0"
1462 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
1463 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
1464 |
1465 | json-schema-traverse@^0.4.1:
1466 | version "0.4.1"
1467 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1468 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1469 |
1470 | json-schema-traverse@^1.0.0:
1471 | version "1.0.0"
1472 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
1473 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
1474 |
1475 | json-stable-stringify-without-jsonify@^1.0.1:
1476 | version "1.0.1"
1477 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1478 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
1479 |
1480 | json5@^2.1.2:
1481 | version "2.1.3"
1482 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
1483 | integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
1484 | dependencies:
1485 | minimist "^1.2.5"
1486 |
1487 | levn@^0.4.1:
1488 | version "0.4.1"
1489 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1490 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1491 | dependencies:
1492 | prelude-ls "^1.2.1"
1493 | type-check "~0.4.0"
1494 |
1495 | lodash@^4.17.19, lodash@^4.17.20:
1496 | version "4.17.20"
1497 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
1498 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
1499 |
1500 | lru-cache@^4.0.1:
1501 | version "4.1.5"
1502 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
1503 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
1504 | dependencies:
1505 | pseudomap "^1.0.2"
1506 | yallist "^2.1.2"
1507 |
1508 | lru-cache@^6.0.0:
1509 | version "6.0.0"
1510 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1511 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1512 | dependencies:
1513 | yallist "^4.0.0"
1514 |
1515 | minimatch@^3.0.4:
1516 | version "3.0.4"
1517 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1518 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1519 | dependencies:
1520 | brace-expansion "^1.1.7"
1521 |
1522 | minimist@^1.2.5:
1523 | version "1.2.5"
1524 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1525 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1526 |
1527 | ms@2.1.2:
1528 | version "2.1.2"
1529 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1530 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1531 |
1532 | nanoid@^3.1.20:
1533 | version "3.1.20"
1534 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
1535 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
1536 |
1537 | natural-compare@^1.4.0:
1538 | version "1.4.0"
1539 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1540 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1541 |
1542 | node-releases@^1.1.69:
1543 | version "1.1.69"
1544 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6"
1545 | integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==
1546 |
1547 | object-keys@^1.0.12, object-keys@^1.1.1:
1548 | version "1.1.1"
1549 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1550 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1551 |
1552 | object.assign@^4.1.0:
1553 | version "4.1.2"
1554 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1555 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1556 | dependencies:
1557 | call-bind "^1.0.0"
1558 | define-properties "^1.1.3"
1559 | has-symbols "^1.0.1"
1560 | object-keys "^1.1.1"
1561 |
1562 | once@^1.3.0:
1563 | version "1.4.0"
1564 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1565 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1566 | dependencies:
1567 | wrappy "1"
1568 |
1569 | optionator@^0.9.1:
1570 | version "0.9.1"
1571 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
1572 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
1573 | dependencies:
1574 | deep-is "^0.1.3"
1575 | fast-levenshtein "^2.0.6"
1576 | levn "^0.4.1"
1577 | prelude-ls "^1.2.1"
1578 | type-check "^0.4.0"
1579 | word-wrap "^1.2.3"
1580 |
1581 | os-shim@^0.1.2:
1582 | version "0.1.3"
1583 | resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
1584 | integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=
1585 |
1586 | parent-module@^1.0.0:
1587 | version "1.0.1"
1588 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1589 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1590 | dependencies:
1591 | callsites "^3.0.0"
1592 |
1593 | path-is-absolute@^1.0.0:
1594 | version "1.0.1"
1595 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1596 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1597 |
1598 | path-key@^3.1.0:
1599 | version "3.1.1"
1600 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1601 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1602 |
1603 | path-parse@^1.0.6:
1604 | version "1.0.6"
1605 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1606 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1607 |
1608 | picomatch@^2.2.2:
1609 | version "2.2.2"
1610 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1611 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1612 |
1613 | postcss-tape@^6.0.0:
1614 | version "6.0.0"
1615 | resolved "https://registry.yarnpkg.com/postcss-tape/-/postcss-tape-6.0.0.tgz#7d351d507bebdff95ecbda0802dc82e394eeab83"
1616 | integrity sha512-gfwBh9NPzeSSTWwNnkhtPAtTGSr70/3zLyzIdjB54LwaKBe//QjlmX7PBsUN3EVRNIBhghAESQ+ugkUjLiCQVw==
1617 |
1618 | postcss@^8.1.0:
1619 | version "8.2.4"
1620 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
1621 | integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==
1622 | dependencies:
1623 | colorette "^1.2.1"
1624 | nanoid "^3.1.20"
1625 | source-map "^0.6.1"
1626 |
1627 | pre-commit@^1.2.2:
1628 | version "1.2.2"
1629 | resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6"
1630 | integrity sha1-287g7p3nI15X95xW186UZBpp7sY=
1631 | dependencies:
1632 | cross-spawn "^5.0.1"
1633 | spawn-sync "^1.0.15"
1634 | which "1.2.x"
1635 |
1636 | prelude-ls@^1.2.1:
1637 | version "1.2.1"
1638 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1639 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1640 |
1641 | process-nextick-args@~2.0.0:
1642 | version "2.0.1"
1643 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
1644 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1645 |
1646 | progress@^2.0.0:
1647 | version "2.0.3"
1648 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1649 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1650 |
1651 | pseudomap@^1.0.2:
1652 | version "1.0.2"
1653 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
1654 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
1655 |
1656 | punycode@^2.1.0:
1657 | version "2.1.1"
1658 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1659 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1660 |
1661 | readable-stream@^2.2.2:
1662 | version "2.3.7"
1663 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1664 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1665 | dependencies:
1666 | core-util-is "~1.0.0"
1667 | inherits "~2.0.3"
1668 | isarray "~1.0.0"
1669 | process-nextick-args "~2.0.0"
1670 | safe-buffer "~5.1.1"
1671 | string_decoder "~1.1.1"
1672 | util-deprecate "~1.0.1"
1673 |
1674 | regenerate-unicode-properties@^8.2.0:
1675 | version "8.2.0"
1676 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
1677 | integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
1678 | dependencies:
1679 | regenerate "^1.4.0"
1680 |
1681 | regenerate@^1.4.0:
1682 | version "1.4.2"
1683 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
1684 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
1685 |
1686 | regenerator-runtime@^0.13.4:
1687 | version "0.13.7"
1688 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
1689 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
1690 |
1691 | regenerator-transform@^0.14.2:
1692 | version "0.14.5"
1693 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
1694 | integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
1695 | dependencies:
1696 | "@babel/runtime" "^7.8.4"
1697 |
1698 | regexpp@^3.1.0:
1699 | version "3.1.0"
1700 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
1701 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
1702 |
1703 | regexpu-core@^4.7.1:
1704 | version "4.7.1"
1705 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
1706 | integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
1707 | dependencies:
1708 | regenerate "^1.4.0"
1709 | regenerate-unicode-properties "^8.2.0"
1710 | regjsgen "^0.5.1"
1711 | regjsparser "^0.6.4"
1712 | unicode-match-property-ecmascript "^1.0.4"
1713 | unicode-match-property-value-ecmascript "^1.2.0"
1714 |
1715 | regjsgen@^0.5.1:
1716 | version "0.5.2"
1717 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
1718 | integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
1719 |
1720 | regjsparser@^0.6.4:
1721 | version "0.6.6"
1722 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a"
1723 | integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==
1724 | dependencies:
1725 | jsesc "~0.5.0"
1726 |
1727 | require-from-string@^2.0.2:
1728 | version "2.0.2"
1729 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
1730 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
1731 |
1732 | resolve-from@^4.0.0:
1733 | version "4.0.0"
1734 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1735 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1736 |
1737 | resolve@^1.12.0:
1738 | version "1.19.0"
1739 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
1740 | integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
1741 | dependencies:
1742 | is-core-module "^2.1.0"
1743 | path-parse "^1.0.6"
1744 |
1745 | rimraf@^3.0.2:
1746 | version "3.0.2"
1747 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1748 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1749 | dependencies:
1750 | glob "^7.1.3"
1751 |
1752 | rollup@^2.28.2:
1753 | version "2.36.1"
1754 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.36.1.tgz#2174f0c25c7b400d57b05628d0e732c7ae8d2178"
1755 | integrity sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==
1756 | optionalDependencies:
1757 | fsevents "~2.1.2"
1758 |
1759 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1760 | version "5.1.2"
1761 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1762 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1763 |
1764 | semver@7.0.0:
1765 | version "7.0.0"
1766 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
1767 | integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
1768 |
1769 | semver@^5.4.1, semver@^5.5.0:
1770 | version "5.7.1"
1771 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1772 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1773 |
1774 | semver@^7.2.1:
1775 | version "7.3.4"
1776 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
1777 | integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
1778 | dependencies:
1779 | lru-cache "^6.0.0"
1780 |
1781 | shebang-command@^1.2.0:
1782 | version "1.2.0"
1783 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1784 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
1785 | dependencies:
1786 | shebang-regex "^1.0.0"
1787 |
1788 | shebang-command@^2.0.0:
1789 | version "2.0.0"
1790 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1791 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1792 | dependencies:
1793 | shebang-regex "^3.0.0"
1794 |
1795 | shebang-regex@^1.0.0:
1796 | version "1.0.0"
1797 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1798 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
1799 |
1800 | shebang-regex@^3.0.0:
1801 | version "3.0.0"
1802 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1803 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1804 |
1805 | slice-ansi@^4.0.0:
1806 | version "4.0.0"
1807 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
1808 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1809 | dependencies:
1810 | ansi-styles "^4.0.0"
1811 | astral-regex "^2.0.0"
1812 | is-fullwidth-code-point "^3.0.0"
1813 |
1814 | source-map@^0.5.0:
1815 | version "0.5.7"
1816 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1817 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1818 |
1819 | source-map@^0.6.1:
1820 | version "0.6.1"
1821 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1822 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1823 |
1824 | spawn-sync@^1.0.15:
1825 | version "1.0.15"
1826 | resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
1827 | integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY=
1828 | dependencies:
1829 | concat-stream "^1.4.7"
1830 | os-shim "^0.1.2"
1831 |
1832 | sprintf-js@~1.0.2:
1833 | version "1.0.3"
1834 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1835 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1836 |
1837 | string-width@^4.2.0:
1838 | version "4.2.0"
1839 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
1840 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
1841 | dependencies:
1842 | emoji-regex "^8.0.0"
1843 | is-fullwidth-code-point "^3.0.0"
1844 | strip-ansi "^6.0.0"
1845 |
1846 | string_decoder@~1.1.1:
1847 | version "1.1.1"
1848 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1849 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1850 | dependencies:
1851 | safe-buffer "~5.1.0"
1852 |
1853 | strip-ansi@^6.0.0:
1854 | version "6.0.0"
1855 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1856 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1857 | dependencies:
1858 | ansi-regex "^5.0.0"
1859 |
1860 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1861 | version "3.1.1"
1862 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1863 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1864 |
1865 | supports-color@^5.3.0:
1866 | version "5.5.0"
1867 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1868 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1869 | dependencies:
1870 | has-flag "^3.0.0"
1871 |
1872 | supports-color@^7.1.0:
1873 | version "7.2.0"
1874 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1875 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1876 | dependencies:
1877 | has-flag "^4.0.0"
1878 |
1879 | table@^6.0.4:
1880 | version "6.0.7"
1881 | resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
1882 | integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==
1883 | dependencies:
1884 | ajv "^7.0.2"
1885 | lodash "^4.17.20"
1886 | slice-ansi "^4.0.0"
1887 | string-width "^4.2.0"
1888 |
1889 | text-table@^0.2.0:
1890 | version "0.2.0"
1891 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1892 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1893 |
1894 | to-fast-properties@^2.0.0:
1895 | version "2.0.0"
1896 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1897 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1898 |
1899 | type-check@^0.4.0, type-check@~0.4.0:
1900 | version "0.4.0"
1901 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1902 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1903 | dependencies:
1904 | prelude-ls "^1.2.1"
1905 |
1906 | type-fest@^0.8.1:
1907 | version "0.8.1"
1908 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1909 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1910 |
1911 | typedarray@^0.0.6:
1912 | version "0.0.6"
1913 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1914 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
1915 |
1916 | unicode-canonical-property-names-ecmascript@^1.0.4:
1917 | version "1.0.4"
1918 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
1919 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
1920 |
1921 | unicode-match-property-ecmascript@^1.0.4:
1922 | version "1.0.4"
1923 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
1924 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
1925 | dependencies:
1926 | unicode-canonical-property-names-ecmascript "^1.0.4"
1927 | unicode-property-aliases-ecmascript "^1.0.4"
1928 |
1929 | unicode-match-property-value-ecmascript@^1.2.0:
1930 | version "1.2.0"
1931 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
1932 | integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
1933 |
1934 | unicode-property-aliases-ecmascript@^1.0.4:
1935 | version "1.1.0"
1936 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
1937 | integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
1938 |
1939 | uri-js@^4.2.2:
1940 | version "4.4.1"
1941 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1942 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1943 | dependencies:
1944 | punycode "^2.1.0"
1945 |
1946 | util-deprecate@~1.0.1:
1947 | version "1.0.2"
1948 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1949 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1950 |
1951 | v8-compile-cache@^2.0.3:
1952 | version "2.2.0"
1953 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
1954 | integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
1955 |
1956 | which@1.2.x:
1957 | version "1.2.14"
1958 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
1959 | integrity sha1-mofEN48D6CfOyvGs31bHNsAcFOU=
1960 | dependencies:
1961 | isexe "^2.0.0"
1962 |
1963 | which@^1.2.9:
1964 | version "1.3.1"
1965 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1966 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1967 | dependencies:
1968 | isexe "^2.0.0"
1969 |
1970 | which@^2.0.1:
1971 | version "2.0.2"
1972 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1973 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1974 | dependencies:
1975 | isexe "^2.0.0"
1976 |
1977 | word-wrap@^1.2.3:
1978 | version "1.2.3"
1979 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1980 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1981 |
1982 | wrappy@1:
1983 | version "1.0.2"
1984 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1985 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1986 |
1987 | yallist@^2.1.2:
1988 | version "2.1.2"
1989 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1990 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
1991 |
1992 | yallist@^4.0.0:
1993 | version "4.0.0"
1994 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1995 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1996 |
--------------------------------------------------------------------------------